net: wireless: b43legacy: Replace GFP_ATOMIC with GFP_KERNEL in dma_tx_fragment
authorJia-Ju Bai <baijiaju1990@gmail.com>
Tue, 10 Apr 2018 13:54:19 +0000 (21:54 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 30 Apr 2018 10:26:58 +0000 (13:26 +0300)
commit6e1d8d1470b2c9335715f7d52e864f0bd91a5f59
tree134409eaa60efbf75041078a4f012277f0aa8711
parent7cce13954f0e6b16b4c18a3985387018f2e3e44e
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>
drivers/net/wireless/broadcom/b43legacy/dma.c