mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 12:44:11 +08:00
f146e872eb
The kernel may sleep under a rcu read lock in cfpkt_create_pfx, and the function call path is: cfcnfg_linkup_rsp (acquire the lock by rcu_read_lock) cfctrl_linkdown_req cfpkt_create cfpkt_create_pfx alloc_skb(GFP_KERNEL) --> may sleep cfserl_receive (acquire the lock by rcu_read_lock) cfpkt_split cfpkt_create_pfx alloc_skb(GFP_KERNEL) --> may sleep There is "in_interrupt" in cfpkt_create_pfx to decide use "GFP_KERNEL" or "GFP_ATOMIC". In this situation, "GFP_KERNEL" is used because the function is called under a rcu read lock, instead in interrupt. To fix it, only "GFP_ATOMIC" is used in cfpkt_create_pfx. Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
caif_dev.c | ||
caif_socket.c | ||
caif_usb.c | ||
cfcnfg.c | ||
cfctrl.c | ||
cfdbgl.c | ||
cfdgml.c | ||
cffrml.c | ||
cfmuxl.c | ||
cfpkt_skbuff.c | ||
cfrfml.c | ||
cfserl.c | ||
cfsrvl.c | ||
cfutill.c | ||
cfveil.c | ||
cfvidl.c | ||
chnl_net.c | ||
Kconfig | ||
Makefile |