Thread (2 messages) 2 messages, 2 authors, 2021-06-12

Re: [PATCH v2] can: bcm/raw/isotp: use per module netdevice notifier

From: Oliver Hartkopp <socketcan@hartkopp.net>
Date: 2021-06-08 19:00:27
Also in: linux-can

Possibly related (same subject, not in this thread)


On 07.06.21 18:15, Kirill Tkhai wrote:
On 05.06.2021 13:26, Tetsuo Handa wrote:
quoted
Updated patch is shown below.


 From 12c61ae3d06889c9bbc414f0230c05dc630f6409 Mon Sep 17 00:00:00 2001
From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date: Sat, 5 Jun 2021 19:18:21 +0900
Subject: [PATCH v2] can: bcm/raw/isotp: use per module netdevice notifier

syzbot is reporting hung task at register_netdevice_notifier() [1] and
unregister_netdevice_notifier() [2], for cleanup_net() might perform
time consuming operations while CAN driver's raw/bcm/isotp modules are
calling {register,unregister}_netdevice_notifier() on each socket.

Change raw/bcm/isotp modules to call register_netdevice_notifier() from
module's __init function and call unregister_netdevice_notifier() from
module's __exit function, as with gw/j1939 modules are doing.

Link: https://syzkaller.appspot.com/bug?id=391b9498827788b3cc6830226d4ff5be87107c30 [1]
Link: https://syzkaller.appspot.com/bug?id=1724d278c83ca6e6df100a2e320c10d991cf2bce [2]
Reported-by: syzbot <redacted>
Reported-by: syzbot <redacted>
Tested-by: syzbot <redacted>
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Reviewed-by: Kirill Tkhai <redacted>
Tested-by: Oliver Hartkopp <socketcan@hartkopp.net>

Hello Tetsuo and Kirill,

thanks for your effort and the review!

Indeed I really had problems to get behind the locking but now I got it 
(hopefully) :-)

At least I can confirm that the original functionality still works for 
all three affected CAN protocols (bcm/isotp/raw).

Many thanks and best regards,
Oliver
quoted
---
  net/can/bcm.c   | 59 +++++++++++++++++++++++++++++++++++-----------
  net/can/isotp.c | 61 +++++++++++++++++++++++++++++++++++++-----------
  net/can/raw.c   | 62 ++++++++++++++++++++++++++++++++++++++-----------
  3 files changed, 142 insertions(+), 40 deletions(-)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help