Searched hist:"6 e1d8d1470b2c9335715f7d52e864f0bd91a5f59" (Results 1 – 1 of 1) sorted by relevance
/linux/drivers/net/wireless/broadcom/b43legacy/ |
H A D | dma.c | diff 6e1d8d1470b2c9335715f7d52e864f0bd91a5f59 Tue Apr 10 15:54:19 CEST 2018 Jia-Ju Bai <baijiaju1990@gmail.com> net: wireless: b43legacy: Replace GFP_ATOMIC with GFP_KERNEL in dma_tx_fragment
dma_tx_fragment() is never called in atomic context.
dma_tx_fragment() is only called by b43legacy_dma_tx(), which is only called by b43legacy_tx_work(). b43legacy_tx_work() is only set a parameter of INIT_WORK() in b43legacy_wireless_init().
Despite never getting called from atomic context, dma_tx_fragment() calls alloc_skb() with GFP_ATOMIC, which does not sleep for allocation. GFP_ATOMIC is not necessary and can be replaced with GFP_KERNEL, which can sleep and improve the possibility of sucessful allocation.
This is found by a static analysis tool named DCNS written by myself. And I also manually check it.
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|