[BUG] kaweth: a possible sleep-in-atomic bug in kaweth_start_xmit

From: Jia-Ju Bai
Date: Wed Dec 13 2017 - 03:57:38 EST


According to drivers/net/usb/kaweth.c, the driver may sleep under a spinlock.
The function call path is:
kaweth_start_xmit (acquire the spinlock)
kaweth_async_set_rx_mode
kaweth_control
kaweth_internal_control_msg
usb_start_wait_urb
wait_event_timeout --> may sleep
usb_kill_urb --> may sleep

I do not find a good way to fix it, so I only report.
This possible bug is found by my static analysis tool (DSAC) and checked by my code review.


Thanks,
Jia-Ju Bai