Message ID | 1535970381-5526-1-git-send-email-sgruszka@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 3341ba9f0f2637a51738ef5de5114e13a1cd3eca |
Delegated to: | Kalle Valo |
Headers | show |
Series | [4.19] mt76x0: fix remove_interface | expand |
Stanislaw Gruszka <sgruszka@redhat.com> writes: > We wrongly use wcid_mask instead of vif_mask > > Fixes: 95e444098a7b ("mt76x0: main file") > Reported-and-tested-by: Sid Hayn <sidhayn@gmail.com> > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> 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)
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 <kvalo@codeaurora.org> wrote: > > Stanislaw Gruszka <sgruszka@redhat.com> writes: > > > We wrongly use wcid_mask instead of vif_mask > > > > Fixes: 95e444098a7b ("mt76x0: main file") > > Reported-and-tested-by: Sid Hayn <sidhayn@gmail.com> > > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> > > 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
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
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 <sgruszka@redhat.com> 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
Stanislaw Gruszka <sgruszka@redhat.com> 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?
Stanislaw Gruszka <sgruszka@redhat.com> 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 <sidhayn@gmail.com> > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Patch applied to wireless-drivers.git, thanks. 3341ba9f0f26 mt76x0: fix remove_interface
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)
We wrongly use wcid_mask instead of vif_mask Fixes: 95e444098a7b ("mt76x0: main file") Reported-and-tested-by: Sid Hayn <sidhayn@gmail.com> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> --- drivers/net/wireless/mediatek/mt76/mt76x0/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)