Re: [PATCH 4.7 FIX] brcmfmac: fix lockup when removing P2P interface after event timeout

From: RafaÅ MiÅecki
Date: Fri Jun 17 2016 - 01:33:27 EST


On 17 June 2016 at 07:13, Kalle Valo <kvalo@xxxxxxxxxxxxxx> wrote:
> RafaÅ MiÅecki <zajec5@xxxxxxxxx> writes:
>
>> On 16 June 2016 at 17:10, Kalle Valo <kvalo@xxxxxxxxxxxxxx> wrote:
>>> RafaÅ MiÅecki <zajec5@xxxxxxxxx> writes:
>>>
>>>> Removing P2P interface is handled by sending a proper request to the
>>>> firmware. On success firmware triggers an event and driver's handler
>>>> removes a matching interface.
>>>>
>>>> However on event timeout we remove interface directly from the cfg80211
>>>> callback. Current code doesn't handle this case correctly as it always
>>>> assumes rtnl to be unlocked.
>>>>
>>>> Fix it by adding an extra rtnl_locked parameter to functions and calling
>>>> unregister_netdevice when needed.
>>>>
>>>> Signed-off-by: RafaÅ MiÅecki <zajec5@xxxxxxxxx>
>>>
>>> Failed to apply, please rebase:
>>>
>>> Applying: brcmfmac: fix lockup when removing P2P interface after event timeout
>>> Using index info to reconstruct a base tree...
>>> Falling back to patching base and 3-way merge...
>>> Auto-merging drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
>>> Auto-merging drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
>>> CONFLICT (content): Merge conflict in drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
>>> Auto-merging drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
>>> Auto-merging drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
>>> Failed to merge in the changes.
>>> Patch failed at 0001 brcmfmac: fix lockup when removing P2P interface after event timeout
>>
>> What tree did you try it on?
>>
>> I just went into a dir where I have cloned:
>> git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git
>>
>> My HEAD commit is:
>> 034fdd4 Merge ath-current from ath.git
>>
>> And I can apply this patch cleanly doing:
>> curl https://patchwork.kernel.org/patch/9138925/mbox/ | git am
>
> I was trying to apply this to wireless-drivers-next. I didn't get a
> confirmation from Arend and I didn't consider the fix important enough
> for 4.7. But of course I can reconsider if needed.

I think I agree it won't hurt to get it into -next. Noone earlier
reported this bug and it seems to be there for a long time. Also
applying it to -next will allow avoiding merge conflicts and immediate
development work on -next.

I'll resend this patch rebased on -next soon.

--
RafaÅ