diff options
author | Shengzhen Li <szli@marvell.com> | 2015-03-13 17:37:54 +0530 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2015-03-16 18:12:25 +0200 |
commit | b2713f67f7a4c3226772c5ac581c7f37d7c473f1 (patch) | |
tree | c17b7a7e0beaf3804be5b19cbcbaf2554a072f41 /drivers/net/wireless/mwifiex/pcie.c | |
parent | ea44f4d04c9356dc844af5312a376b6528cec7c5 (diff) | |
download | talos-op-linux-b2713f67f7a4c3226772c5ac581c7f37d7c473f1.tar.gz talos-op-linux-b2713f67f7a4c3226772c5ac581c7f37d7c473f1.zip |
mwifiex: avoid queue_work while work is ongoing
Current code does not check whether main_work_queue or
rx_work_queue is running when preparing to do queue_work,
this code fix add check before calling queue_work, reducing
unnecessary queue_work switch.
This change instead sets more_task flag to ensure we run main_process
superloop once again.
Signed-off-by: Shengzhen Li <szli@marvell.com>
Signed-off-by: Zhaoyang Liu <liuzy@marvell.com>
Reviewed-by: Cathy Luo <cluo@marvell.com>
Reviewed-by: Amitkumar Karwar <akarwar@marvell.com>
Reviewed-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/mwifiex/pcie.c')
-rw-r--r-- | drivers/net/wireless/mwifiex/pcie.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/mwifiex/pcie.c b/drivers/net/wireless/mwifiex/pcie.c index fc59c1db3615..b31c9a70ffaa 100644 --- a/drivers/net/wireless/mwifiex/pcie.c +++ b/drivers/net/wireless/mwifiex/pcie.c @@ -2101,7 +2101,7 @@ static irqreturn_t mwifiex_pcie_interrupt(int irq, void *context) goto exit; mwifiex_interrupt_status(adapter); - queue_work(adapter->workqueue, &adapter->main_work); + mwifiex_queue_main_work(adapter); exit: return IRQ_HANDLED; |