aboutsummaryrefslogtreecommitdiff
path: root/lib/netdev-notifier-error-inject.c
diff options
context:
space:
mode:
authorOliver Hartkopp <[email protected]>2022-05-20 20:32:39 +0200
committerMarc Kleine-Budde <[email protected]>2022-07-04 10:33:39 +0200
commitf1b4e32aca0811aa011c76e5d6cf2fa19224b386 (patch)
tree0f694194df3c23161ed53d97fb2a8b40436e9a6a /lib/netdev-notifier-error-inject.c
parent280e3a857d96f9ca8e24632788e1e7a0fec4e9f7 (diff)
can: bcm: use call_rcu() instead of costly synchronize_rcu()
In commit d5f9023fa61e ("can: bcm: delay release of struct bcm_op after synchronize_rcu()") Thadeu Lima de Souza Cascardo introduced two synchronize_rcu() calls in bcm_release() (only once at socket close) and in bcm_delete_rx_op() (called on removal of each single bcm_op). Unfortunately this slow removal of the bcm_op's affects user space applications like cansniffer where the modification of a filter removes 2048 bcm_op's which blocks the cansniffer application for 40(!) seconds. In commit 181d4447905d ("can: gw: use call_rcu() instead of costly synchronize_rcu()") Eric Dumazet replaced the synchronize_rcu() calls with several call_rcu()'s to safely remove the data structures after the removal of CAN ID subscriptions with can_rx_unregister() calls. This patch adopts Erics approach for the can-bcm which should be applicable since the removal of tasklet_kill() in bcm_remove_op() and the introduction of the HRTIMER_MODE_SOFT timer handling in Linux 5.4. Fixes: d5f9023fa61e ("can: bcm: delay release of struct bcm_op after synchronize_rcu()") # >= 5.4 Link: https://lore.kernel.org/all/[email protected] Cc: [email protected] Cc: Eric Dumazet <[email protected]> Cc: Norbert Slusarek <[email protected]> Cc: Thadeu Lima de Souza Cascardo <[email protected]> Signed-off-by: Oliver Hartkopp <[email protected]> Signed-off-by: Marc Kleine-Budde <[email protected]>
Diffstat (limited to 'lib/netdev-notifier-error-inject.c')
0 files changed, 0 insertions, 0 deletions