On Fri, May 24, 2013 at 1:32 PM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Tue, 2013-05-21 at 18:09 -0700, Thomas Pedersen wrote: >> Hey, Sorry for the late response. > > Me too :) > >> >> netif_carrier_off(sdata->dev); >> >> + if (sdata->dev->priv_flags & IFF_BRIDGE_PORT) >> >> + /* stop bridge transmissions */ >> >> + call_netdevice_notifiers(NETDEV_CHANGE, sdata->dev); >> > >> > Err, this seems like a really bad hack? I don't really think drivers >> > should call that? >> >> Why not? We're just notifying the bridge interface that this port has >> gone down, to avoid dereferencing a null pointer (on bridge flood >> traffic) after the mesh_bss has been removed. >> >> Is cfg80211_leave_mesh() an acceptable location for this fix? > > I'm not really convinced it's an acceptable fix in itself? Why should we > ever have to call netdev notifiers, that seems odd to me. Also why would > that prevent a crash? Wouldn't we just drop packets for the mesh if we > aren't joined in a mesh any more? Or something like that Accessing the > priv flags and then calling the netdev notifiers seems really strange to > me. If this was necessary, then wouldn't netif_carrier_off() do it > internally? OK I'll take a look at this and figure out a cleaner solution then. Thanks. -- Thomas -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html