Patch "isdn: Fix a sleep-in-atomic bug" has been added to the 4.9-stable tree
This is a note to let you know that I've just added the patch titled
isdn: Fix a sleep-in-atomic bug
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
isdn-fix-a-sleep-in-atomic-bug.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
e8f4ae85439f34bec3b0ab69223a41809dab28c9Mon Sep 17 00:00:00 2001
From: Jia-Ju Bai <[email protected]>
Date: Wed, 31 May 2017 09:40:11 +0800
Subject: isdn: Fix a sleep-in-atomic bug
From: Jia-Ju Bai <[email protected]>
commit e8f4ae85439f34bec3b0ab69223a41809dab28c9 upstream.
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 sleepTo fixed it, the "GFP_KERNEL" is replaced with "GFP_ATOMIC".
--- drivers/isdn/i4l/isdn_ppp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/isdn/i4l/isdn_ppp.c +1 -1
@@ -2364,7 +2364,7 @@ static struct ippp_ccp_reset_state *isdn id);return NULL ; }else { - rs =kzalloc (sizeof (struct ippp_ccp_reset_state ),GFP_KERNEL ); + rs =kzalloc (sizeof (struct ippp_ccp_reset_state ),GFP_ATOMIC );if (!rs)return NULL ; rs->state = CCPResetIdle;
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/isdn-fix-a-sleep-in-atomic-bug.patch