• Amitkumar Karwar's avatar
    mwifiex: use separate wait condition for each command node · efaaa8b8
    Amitkumar Karwar authored
    Currently global wait condition (adapter->cmd_wait_q.condition)
    is used while sending synchronous commands to FW. When two threads
    enter in mwifiex_send_cmd_sync() routine at the same time, both the
    threads wait for their command responses. Since wait condition is
    same for both, they wake up simultaneously after getting response
    of 1st command. After this when a thread is waiting for command
    response of 3rd command, it wakes up after getting response of 2nd
    command and so on. Therefore we don't wait for the response of last
    command(0xaa) during unload. Hence while next time loading the driver
    command time out is seen for INIT command.
    
    This problem is resolved by having separate wait condition flag for
    each command(except scan command). Since scan command is treated
    differently (by maintaining scan pending q etc.), newly defined flag
    (scan_wait_q_woken) is used as a scan wait condition.
    Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
    Signed-off-by: default avatarYogesh Ashok Powar <yogeshp@marvell.com>
    Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    efaaa8b8
main.c 23.1 KB