[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <35980039-f268-2db3-5c7d-19ab0c917d44@gmail.com>
Date: Sat, 1 Sep 2018 17:08:59 +0800
From: Jia-Ju Bai <baijiaju1990@...il.com>
To: amitkarwar@...il.com, nishants@...vell.com, gbhat@...vell.com,
huxinming820@...il.com, kvalo@...eaurora.org
Cc: linux-wireless@...r.kernel.org, netdev@...r.kernel.org,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: [BUG] net: wireless: mwifiex: A possible sleep-in-atomic-context bug
in mwifiex_wait_queue_complete()
mwifiex_usb_tx_complete() is a completion handler function for the
USB driver. So it should not sleep, but it is can sleep according to the
function call paths (from bottom to top) in Linux-4.16:
[FUNC] schedule_timeout
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c, 63:
schedule_timeout in mwifiex_wait_queue_complete
drivers/net/wireless/marvell/mwifiex/cmdevt.c, 673:
mwifiex_wait_queue_complete in mwifiex_send_cmd
drivers/net/wireless/marvell/mwifiex/main.c, 1046:
mwifiex_send_cmd in mwifiex_multi_chan_resync
drivers/net/wireless/marvell/mwifiex/usb.c, 288:
mwifiex_multi_chan_resync in mwifiex_usb_tx_complete
I do not find a good way to fix this bug, so I only report it.
This bug is found by my static analysis tool DSAC.
Best wishes,
Jia-Ju Bai
Powered by blists - more mailing lists