Search Linux Wireless

Re: [RFC 06/12] mac80211: notify bridge when leaving mesh

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 28, 2013 at 10:01 AM, Thomas Pedersen <thomas@xxxxxxxxxxx> wrote:
> 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.

After reverting this patch I can no longer trigger the crash it was
supposed to fix. Either something changed in the rebase, or it was
never needed. Will drop from the resubmission for now.

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




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux