Re: [PATCH net] r8152: fix the list rx_done may be used without initialization
From: Hayes WangDate: Tue, 14 Mar 2017 14:15:20 +0800 > The list rx_done would be initialized when the linking on occurs. > Therefore, if a napi is scheduled without any linking on before, > the following kernel panic would happen. > > BUG: unable to handle kernel NULL pointer dereference at 008 > IP: [] r8152_poll+0xe1e/0x1210 [r8152] > PGD 0 > Oops: 0002 [#1] SMP > > Signed-off-by: Hayes Wang Applied.
RE: [PATCH net] r8152: fix the list rx_done may be used without initialization
Petr Vorel [mailto:petr.vo...@gmail.com] > Sent: Tuesday, March 14, 2017 4:54 PM [...] > thanks for fixing! Does it work? Best Regards, Hayes
Re: [PATCH net] r8152: fix the list rx_done may be used without initialization
Hi Hayes, > The list rx_done would be initialized when the linking on occurs. > Therefore, if a napi is scheduled without any linking on before, > the following kernel panic would happen. > BUG: unable to handle kernel NULL pointer dereference at 008 > IP: [] r8152_poll+0xe1e/0x1210 [r8152] > PGD 0 > Oops: 0002 [#1] SMP thanks for fixing! Kind regards, Petr
[PATCH net] r8152: fix the list rx_done may be used without initialization
The list rx_done would be initialized when the linking on occurs. Therefore, if a napi is scheduled without any linking on before, the following kernel panic would happen. BUG: unable to handle kernel NULL pointer dereference at 008 IP: [] r8152_poll+0xe1e/0x1210 [r8152] PGD 0 Oops: 0002 [#1] SMP Signed-off-by: Hayes Wang--- drivers/net/usb/r8152.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 986243c..bb3eedd 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -1362,6 +1362,7 @@ static int alloc_all_mem(struct r8152 *tp) spin_lock_init(>rx_lock); spin_lock_init(>tx_lock); INIT_LIST_HEAD(>tx_free); + INIT_LIST_HEAD(>rx_done); skb_queue_head_init(>tx_queue); skb_queue_head_init(>rx_queue); -- 2.7.4