Thread (8 messages) flat view 8 messages, 3 authors, 2021-08-03

Re: [PATCH net-next 0/2] Convert switchdev_bridge_port_{,un}offload to notifiers

From: Grygorii Strashko <grygorii.strashko@ti.com>
Date: 2021-08-03 17:12:24


On 03/08/2021 17:36, Vladimir Oltean wrote:
The introduction of the explicit switchdev bridge port offloading API
has introduced dependency regressions between switchdev drivers and the
bridge, with some drivers where switchdev support was optional before
being now compiled as a module when the bridge is a module, or worse.

This patch makes the switchdev bridge port offload/unoffload events
visible on the blocking notifier call chain, so that the bridge can
indirectly do something when those events happen, without the driver
explicitly calling a symbol exported by the bridge driver.

Vladimir Oltean (2):
   net: make switchdev_bridge_port_{,unoffload} loosely coupled with the
     bridge
   Revert "net: build all switchdev drivers as modules when the bridge is
     a module"

  drivers/net/ethernet/microchip/sparx5/Kconfig |  1 -
  drivers/net/ethernet/ti/Kconfig               |  2 -
  drivers/net/ethernet/ti/am65-cpsw-nuss.c      |  2 +-
  drivers/net/ethernet/ti/cpsw_new.c            |  2 +-
  include/linux/if_bridge.h                     | 35 -------------
  include/net/switchdev.h                       | 46 +++++++++++++++++
  net/bridge/br.c                               | 51 ++++++++++++++++++-
  net/bridge/br_private.h                       | 30 +++++++++++
  net/bridge/br_switchdev.c                     | 36 ++++---------
  net/switchdev/switchdev.c                     | 48 +++++++++++++++++
  10 files changed, 185 insertions(+), 68 deletions(-)
I've tested builds, but was not able to test bridge itself on TI am57x platform.

1) See warning
[    3.958496] ------------[ cut here ]------------
[    3.963165] WARNING: CPU: 0 PID: 1 at lib/refcount.c:25 fib_create_info+0xae8/0xbd4
[    3.970855] refcount_t: addition on 0; use-after-free.
[    3.976043] Modules linked in: autofs4
[    3.979827] CPU: 0 PID: 1 Comm: systemd Not tainted 5.14.0-rc4-next-20210802-00002-g5003e4ac441d-dirty #5
[    3.989440] Hardware name: Generic DRA72X (Flattened Device Tree)
[    3.995574] [<c0111098>] (unwind_backtrace) from [<c010b834>] (show_stack+0x10/0x14)
[    4.003356] [<c010b834>] (show_stack) from [<c09da808>] (dump_stack_lvl+0x40/0x4c)
[    4.010986] [<c09da808>] (dump_stack_lvl) from [<c0137b44>] (__warn+0xd8/0x100)
[    4.018341] [<c0137b44>] (__warn) from [<c09d6368>] (warn_slowpath_fmt+0x94/0xbc)
[    4.025848] [<c09d6368>] (warn_slowpath_fmt) from [<c08f68d4>] (fib_create_info+0xae8/0xbd4)
[    4.034332] [<c08f68d4>] (fib_create_info) from [<c08f99c4>] (fib_table_insert+0x5c/0x604¢·†AËÕìÍ_¡

2) see warnings and "ip link add name br0 type bridge" just stuck
[  158.032135] unregister_netdevice: waiting for lo to become free. Usage count = 3

It might not be related to this series.


-- 
Best regards,
grygorii
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help