2018-09-03 14:45:54

by Stanislaw Gruszka

[permalink] [raw]
Subject: [PATCH 4.19] mt76x0: fix remove_interface

We wrongly use wcid_mask instead of vif_mask

Fixes: 95e444098a7b ("mt76x0: main file")
Reported-and-tested-by: Sid Hayn <[email protected]>
Signed-off-by: Stanislaw Gruszka <[email protected]>
---
drivers/net/wireless/mediatek/mt76/mt76x0/main.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/main.c b/drivers/net/wireless/mediatek/mt76/mt76x0/main.c
index cf6ffb1ba4a2..22bc9d368728 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x0/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x0/main.c
@@ -77,9 +77,8 @@ static void mt76x0_remove_interface(struct ieee80211_hw *hw,
{
struct mt76x0_dev *dev = hw->priv;
struct mt76_vif *mvif = (struct mt76_vif *) vif->drv_priv;
- unsigned int wcid = mvif->group_wcid.idx;

- dev->wcid_mask[wcid / BITS_PER_LONG] &= ~BIT(wcid % BITS_PER_LONG);
+ dev->vif_mask &= ~BIT(mvif->idx);
}

static int mt76x0_config(struct ieee80211_hw *hw, u32 changed)
--
2.7.5


2018-09-04 18:42:25

by Sid Hayn

[permalink] [raw]
Subject: Re: [PATCH 4.19] mt76x0: fix remove_interface

confirmed, I didn't intentionally remove the interface, but I do see
something about the interface being removed in wpa_supplicant output.

Thanks,
Zero
On Tue, Sep 4, 2018 at 10:23 AM Stanislaw Gruszka <[email protected]> wrote:
>
> On Mon, Sep 03, 2018 at 09:36:37AM -0400, Sid Hayn wrote:
> > Best I can say is that it seemed to happen after a failed connection. It
> > would connect and disconnect a few times and work fine, but if it failed to
> > connect for any reason (mostly mismatched settings between AP and
> > wpa_supplicant.conf) then the bug would occur. So, wpa_supplicant would up
> > the interface, try to connect, fail, down the interface and exit, then the
> > next loop of my script (with a different conf file) would start and
> > wpa_supplicant would be unable to up the interface.
> <snip>
> > > For bug fixes please always try to describe the bug and symptoms. I can
> > > add it this time. From the other thread I saw that 'ifconfig up' failed
> > > like this:
> > >
> > > SIOCSIFFLAGS: No space left on device
> > >
> > > But in what cases did that happen? (I assume not always)
>
> Problem will happen when we remove interface more than 8 times.
> I'm not sure at how this can be triggerd execpt by doing:
>
> iw dev <devname> interface add <name> type <type>
> iw dev <name> del
>
> but looks somehow this is triggerd by Sid scripts
> by just by using wpa_supplicant and ifconfig.
>
> Regards
> Stanislaw

2018-09-03 19:51:24

by Sid Hayn

[permalink] [raw]
Subject: Re: [PATCH 4.19] mt76x0: fix remove_interface

Best I can say is that it seemed to happen after a failed connection.
It would connect and disconnect a few times and work fine, but if it
failed to connect for any reason (mostly mismatched settings between
AP and wpa_supplicant.conf) then the bug would occur. So,
wpa_supplicant would up the interface, try to connect, fail, down the
interface and exit, then the next loop of my script (with a different
conf file) would start and wpa_supplicant would be unable to up the
interface.

Hope that made any sense, because it didn't to me :-)

-Zero
On Mon, Sep 3, 2018 at 12:48 PM Kalle Valo <[email protected]> wrote:
>
> Stanislaw Gruszka <[email protected]> writes:
>
> > We wrongly use wcid_mask instead of vif_mask
> >
> > Fixes: 95e444098a7b ("mt76x0: main file")
> > Reported-and-tested-by: Sid Hayn <[email protected]>
> > Signed-off-by: Stanislaw Gruszka <[email protected]>
>
> For bug fixes please always try to describe the bug and symptoms. I can
> add it this time. From the other thread I saw that 'ifconfig up' failed
> like this:
>
> SIOCSIFFLAGS: No space left on device
>
> But in what cases did that happen? (I assume not always)
>
> --
> Kalle Valo

2018-09-17 19:39:04

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 4.19] mt76x0: fix remove_interface

Stanislaw Gruszka <[email protected]> wrote:

> We wrongly use wcid_mask instead of vif_mask. This creates problems
> when the interface is removed more than 8 times, for example with iw:
>
> iw dev <devname> interface add <name> type <type>
> iw dev <name> del
>
> This caused 'ifconfig up' to fail with error:
>
> SIOCSIFFLAGS: No space left on device
>
> Fixes: 95e444098a7b ("mt76x0: main file")
> Reported-and-tested-by: Sid Hayn <[email protected]>
> Signed-off-by: Stanislaw Gruszka <[email protected]>

Patch applied to wireless-drivers.git, thanks.

3341ba9f0f26 mt76x0: fix remove_interface

--
https://patchwork.kernel.org/patch/10585737/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2018-09-03 17:08:31

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 4.19] mt76x0: fix remove_interface

Stanislaw Gruszka <[email protected]> writes:

> We wrongly use wcid_mask instead of vif_mask
>
> Fixes: 95e444098a7b ("mt76x0: main file")
> Reported-and-tested-by: Sid Hayn <[email protected]>
> Signed-off-by: Stanislaw Gruszka <[email protected]>

For bug fixes please always try to describe the bug and symptoms. I can
add it this time. From the other thread I saw that 'ifconfig up' failed
like this:

SIOCSIFFLAGS: No space left on device

But in what cases did that happen? (I assume not always)

--
Kalle Valo

2018-09-04 14:48:23

by Stanislaw Gruszka

[permalink] [raw]
Subject: Re: [PATCH 4.19] mt76x0: fix remove_interface

On Mon, Sep 03, 2018 at 09:36:37AM -0400, Sid Hayn wrote:
> Best I can say is that it seemed to happen after a failed connection. It
> would connect and disconnect a few times and work fine, but if it failed to
> connect for any reason (mostly mismatched settings between AP and
> wpa_supplicant.conf) then the bug would occur. So, wpa_supplicant would up
> the interface, try to connect, fail, down the interface and exit, then the
> next loop of my script (with a different conf file) would start and
> wpa_supplicant would be unable to up the interface.
<snip>
> > For bug fixes please always try to describe the bug and symptoms. I can
> > add it this time. From the other thread I saw that 'ifconfig up' failed
> > like this:
> >
> > SIOCSIFFLAGS: No space left on device
> >
> > But in what cases did that happen? (I assume not always)

Problem will happen when we remove interface more than 8 times.
I'm not sure at how this can be triggerd execpt by doing:

iw dev <devname> interface add <name> type <type>
iw dev <name> del

but looks somehow this is triggerd by Sid scripts
by just by using wpa_supplicant and ifconfig.

Regards
Stanislaw

2018-09-11 19:31:20

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 4.19] mt76x0: fix remove_interface

Stanislaw Gruszka <[email protected]> writes:

> On Mon, Sep 03, 2018 at 09:36:37AM -0400, Sid Hayn wrote:
>> Best I can say is that it seemed to happen after a failed connection. It
>> would connect and disconnect a few times and work fine, but if it failed to
>> connect for any reason (mostly mismatched settings between AP and
>> wpa_supplicant.conf) then the bug would occur. So, wpa_supplicant would up
>> the interface, try to connect, fail, down the interface and exit, then the
>> next loop of my script (with a different conf file) would start and
>> wpa_supplicant would be unable to up the interface.
> <snip>
>> > For bug fixes please always try to describe the bug and symptoms. I can
>> > add it this time. From the other thread I saw that 'ifconfig up' failed
>> > like this:
>> >
>> > SIOCSIFFLAGS: No space left on device
>> >
>> > But in what cases did that happen? (I assume not always)
>
> Problem will happen when we remove interface more than 8 times.
> I'm not sure at how this can be triggerd execpt by doing:
>
> iw dev <devname> interface add <name> type <type>
> iw dev <name> del
>
> but looks somehow this is triggerd by Sid scripts
> by just by using wpa_supplicant and ifconfig.

Good, thanks. So I'll use this as the commit message:

"We wrongly use wcid_mask instead of vif_mask. This creates problems
when the interface is removed more than 8 times, for example with iw:

iw dev <devname> interface add <name> type <type>
iw dev <name> del

This caused 'ifconfig up' to fail with error:

SIOCSIFFLAGS: No space left on device"

Does that look good?

--
Kalle Valo