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:
netdev
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(-)