--- zzzz-none-000/linux-2.6.28.10/net/bridge/br_stp.c 2009-05-02 18:54:43.000000000 +0000 +++ puma5-6360-529/linux-2.6.28.10/net/bridge/br_stp.c 2010-04-07 09:56:53.000000000 +0000 @@ -12,6 +12,7 @@ */ #include #include +#include #include "br_private.h" #include "br_private_stp.h" @@ -21,6 +22,11 @@ */ #define MESSAGE_AGE_INCR ((HZ < 256) ? 1 : (HZ/256)) +#if defined(CONFIG_FUSIV_KERNEL_AP_2_AP) || defined(CONFIG_FUSIV_KERNEL_AP_2_AP_MODULE) +#if (defined(CONFIG_MCAST_AP_SUPPORT) && CONFIG_MCAST_AP_SUPPORT) +void (*ap2apDelAllMulticastEntries_ptr) (void) = NULL; +#endif +#endif static const char *br_port_state_names[] = { [BR_STATE_DISABLED] = "disabled", [BR_STATE_LISTENING] = "listening", @@ -107,6 +113,11 @@ struct net_bridge_port *p; u16 root_port = 0; +#if defined(CONFIG_FUSIV_KERNEL_AP_2_AP) || defined(CONFIG_FUSIV_KERNEL_AP_2_AP_MODULE) +#if (defined(CONFIG_MCAST_AP_SUPPORT) && CONFIG_MCAST_AP_SUPPORT) + (*ap2apDelAllMulticastEntries_ptr)(); +#endif +#endif list_for_each_entry(p, &br->port_list, list) { if (br_should_become_root_port(p, root_port)) root_port = p->port_no; @@ -377,6 +388,7 @@ p->state = BR_STATE_FORWARDING; br_topology_change_detection(br); del_timer(&p->forward_delay_timer); + ti_hil_pp_event(TI_BRIDGE_PORT_FORWARD, (void *)p->dev); } else if (p->br->stp_enabled == BR_KERNEL_STP) p->state = BR_STATE_LISTENING; @@ -471,3 +483,10 @@ br_topology_change_acknowledge(p); } } + +#if defined(CONFIG_FUSIV_KERNEL_AP_2_AP) || defined(CONFIG_FUSIV_KERNEL_AP_2_AP_MODULE) +#if (defined(CONFIG_MCAST_AP_SUPPORT) && CONFIG_MCAST_AP_SUPPORT) +EXPORT_SYMBOL(ap2apDelAllMulticastEntries_ptr); +#endif +#endif +