• B
    mwifiex: fix negative cmd_pending count · 9908b074
    Bing Zhao 提交于
    cmd_pending is increased in mwifiex_wait_queue_complete() and
    decreased in mwifiex_complete_cmd() currently.
    If there are two or more commands in the cmd_pending_q the main
    worker thread will pick up next command from cmd_pending_q
    automatically after finishing current command. As a result
    mwifiex_wait_queue_complete() will not be called because
    the command is alreay completed. This leads to a negative
    number in cmd_pending count.
    
    Fix it by increasing cmd_pending when a cmd is queued into
    cmd_pending_q and decreasing when that cmd is recycled. For scan
    commands we don't perform inc/dec operations until it's moved
    from scan_pending_q to cmd_pending_q. This covers both
    synchronous and asynchronous commands.
    Reported-by: NDaniel Drake <dsd@laptop.org>
    Tested-by: NDaniel Drake <dsd@laptop.org>
    Tested-by: NMarco Cesarano <marco@marvell.com>
    Signed-off-by: NBing Zhao <bzhao@marvell.com>
    Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
    9908b074
init.c 22.6 KB