--- zzzz-none-000/linux-5.15.111/net/bridge/br.c 2023-05-11 14:00:40.000000000 +0000 +++ puma7-atom-6670-761/linux-5.15.111/net/bridge/br.c 2024-02-07 10:23:29.000000000 +0000 @@ -19,6 +19,10 @@ #include "br_private.h" +#ifdef CONFIG_TI_UNMANAGED_BRIDGE +extern int ti_unmanaged_bridge_handler (struct net_device *dev, unsigned long event); +#endif /* CONFIG_TI_UNMANAGED_BRIDGE */ + /* * Handle changes in state of network devices enslaved to a bridge. * @@ -36,6 +40,13 @@ bool changed_addr; int err; +#ifdef CONFIG_TI_UNMANAGED_BRIDGE + if (ti_unmanaged_bridge_handler(dev, event) == 0) + { + return NOTIFY_DONE; + } +#endif /* CONFIG_TI_UNMANAGED_BRIDGE */ + if (dev->priv_flags & IFF_EBRIDGE) { err = br_vlan_bridge_event(dev, event, ptr); if (err) @@ -407,6 +418,10 @@ brioctl_set(br_ioctl_stub); + err = br_flood_rl_init(); + if (err) + goto err_out7; + #if IS_ENABLED(CONFIG_ATM_LANE) br_fdb_test_addr_hook = br_fdb_test_addr; #endif @@ -417,8 +432,13 @@ "need this.\n"); #endif +#ifdef CONFIG_LTQ_MCAST_SNOOPING + br_mcast_snoop_init(); +#endif return 0; +err_out7: + br_netlink_fini(); err_out6: unregister_switchdev_blocking_notifier(&br_switchdev_blocking_notifier); err_out5: @@ -439,6 +459,7 @@ static void __exit br_deinit(void) { stp_proto_unregister(&br_stp_proto); + br_flood_rl_fini(); br_netlink_fini(); unregister_switchdev_blocking_notifier(&br_switchdev_blocking_notifier); unregister_switchdev_notifier(&br_switchdev_notifier); @@ -453,6 +474,9 @@ br_fdb_test_addr_hook = NULL; #endif br_fdb_fini(); +#ifdef CONFIG_LTQ_MCAST_SNOOPING + br_mcast_snoop_deinit(); +#endif } module_init(br_init)