mirror of
https://github.com/torvalds/linux
synced 2024-09-21 11:38:48 +00:00
isdn: Fix a sleep-in-atomic bug
The driver may sleep under a spin lock, the function call path is: isdn_ppp_mp_receive (acquire the lock) isdn_ppp_mp_reassembly isdn_ppp_push_higher isdn_ppp_decompress isdn_ppp_ccp_reset_trans isdn_ppp_ccp_reset_alloc_state kzalloc(GFP_KERNEL) --> may sleep To fixed it, the "GFP_KERNEL" is replaced with "GFP_ATOMIC". Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
06d2d6431b
commit
e8f4ae8543
|
@ -2364,7 +2364,7 @@ static struct ippp_ccp_reset_state *isdn_ppp_ccp_reset_alloc_state(struct ippp_s
|
||||||
id);
|
id);
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
rs = kzalloc(sizeof(struct ippp_ccp_reset_state), GFP_KERNEL);
|
rs = kzalloc(sizeof(struct ippp_ccp_reset_state), GFP_ATOMIC);
|
||||||
if (!rs)
|
if (!rs)
|
||||||
return NULL;
|
return NULL;
|
||||||
rs->state = CCPResetIdle;
|
rs->state = CCPResetIdle;
|
||||||
|
|
Loading…
Reference in a new issue