If the interfaces were removed just before a restart
work was started, open_count will be 0, and most of
the reconfig work will be skipped, including the
resetting of local->in_reconfig to false.
Leaving local->inconfig = true will result in
dropping any incoming packet.
Fix it by always setting local->in_reconfig = false
(even if there are no active interfaces).
Signed-off-by: Eliad Peller <[email protected]>
---
this should go to 3.5
net/mac80211/util.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 242ecde..e1b7c63 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1411,10 +1411,10 @@ int ieee80211_reconfig(struct ieee80211_local *local)
if (ieee80211_sdata_running(sdata))
ieee80211_enable_keys(sdata);
+ wake_up:
local->in_reconfig = false;
barrier();
- wake_up:
/*
* Clear the WLAN_STA_BLOCK_BA flag so new aggregation
* sessions can be established after a resume.
--
1.7.6.401.g6a319
On Mon, Jul 2, 2012 at 9:17 PM, John W. Linville <[email protected]> wrote:
> On Mon, Jul 02, 2012 at 02:19:01PM +0200, Johannes Berg wrote:
>> On Mon, 2012-07-02 at 15:08 +0300, Eliad Peller wrote:
>> > If the interfaces were removed just before a restart
>> > work was started, open_count will be 0, and most of
>> > the reconfig work will be skipped, including the
>> > resetting of local->in_reconfig to false.
>> >
>> > Leaving local->inconfig = true will result in
>> > dropping any incoming packet.
>> >
>> > Fix it by always setting local->in_reconfig = false
>> > (even if there are no active interfaces).
>> >
>> > Signed-off-by: Eliad Peller <[email protected]>
>> > ---
>> > this should go to 3.5
>>
>> Also looks good, thanks
>>
>> Reviewed-by: Johannes Berg <[email protected]>
>>
>> John, could you also pick this up?
>>
>> johannes
>>
>>
>> > net/mac80211/util.c | 2 +-
>> > 1 files changed, 1 insertions(+), 1 deletions(-)
>> >
>> > diff --git a/net/mac80211/util.c b/net/mac80211/util.c
>> > index 242ecde..e1b7c63 100644
>> > --- a/net/mac80211/util.c
>> > +++ b/net/mac80211/util.c
>> > @@ -1411,10 +1411,10 @@ int ieee80211_reconfig(struct ieee80211_local *local)
>> > if (ieee80211_sdata_running(sdata))
>> > ieee80211_enable_keys(sdata);
>> >
>> > + wake_up:
>> > local->in_reconfig = false;
>> > barrier();
>> >
>> > - wake_up:
>> > /*
>> > * Clear the WLAN_STA_BLOCK_BA flag so new aggregation
>> > * sessions can be established after a resume.
>
> This doesn't apply to 3.5 -- the "local->in_reconfig = false" bit isn't there.
>
err... my mistake. this only applies on wireless-next.
sorry for the hassle.
Eliad.
On Mon, Jul 02, 2012 at 02:19:01PM +0200, Johannes Berg wrote:
> On Mon, 2012-07-02 at 15:08 +0300, Eliad Peller wrote:
> > If the interfaces were removed just before a restart
> > work was started, open_count will be 0, and most of
> > the reconfig work will be skipped, including the
> > resetting of local->in_reconfig to false.
> >
> > Leaving local->inconfig = true will result in
> > dropping any incoming packet.
> >
> > Fix it by always setting local->in_reconfig = false
> > (even if there are no active interfaces).
> >
> > Signed-off-by: Eliad Peller <[email protected]>
> > ---
> > this should go to 3.5
>
> Also looks good, thanks
>
> Reviewed-by: Johannes Berg <[email protected]>
>
> John, could you also pick this up?
>
> johannes
>
>
> > net/mac80211/util.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/net/mac80211/util.c b/net/mac80211/util.c
> > index 242ecde..e1b7c63 100644
> > --- a/net/mac80211/util.c
> > +++ b/net/mac80211/util.c
> > @@ -1411,10 +1411,10 @@ int ieee80211_reconfig(struct ieee80211_local *local)
> > if (ieee80211_sdata_running(sdata))
> > ieee80211_enable_keys(sdata);
> >
> > + wake_up:
> > local->in_reconfig = false;
> > barrier();
> >
> > - wake_up:
> > /*
> > * Clear the WLAN_STA_BLOCK_BA flag so new aggregation
> > * sessions can be established after a resume.
This doesn't apply to 3.5 -- the "local->in_reconfig = false" bit isn't there.
John
--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.
On Thu, 2012-07-05 at 18:01 +0300, Eliad Peller wrote:
> >> > diff --git a/net/mac80211/util.c b/net/mac80211/util.c
> >> > index 242ecde..e1b7c63 100644
> >> > --- a/net/mac80211/util.c
> >> > +++ b/net/mac80211/util.c
> >> > @@ -1411,10 +1411,10 @@ int ieee80211_reconfig(struct ieee80211_local *local)
> >> > if (ieee80211_sdata_running(sdata))
> >> > ieee80211_enable_keys(sdata);
> >> >
> >> > + wake_up:
> >> > local->in_reconfig = false;
> >> > barrier();
> >> >
> >> > - wake_up:
> >> > /*
> >> > * Clear the WLAN_STA_BLOCK_BA flag so new aggregation
> >> > * sessions can be established after a resume.
> >
> > This doesn't apply to 3.5 -- the "local->in_reconfig = false" bit isn't there.
> >
> err... my mistake. this only applies on wireless-next.
> sorry for the hassle.
I'll pick it up
johannes
On Mon, 2012-07-02 at 15:08 +0300, Eliad Peller wrote:
> If the interfaces were removed just before a restart
> work was started, open_count will be 0, and most of
> the reconfig work will be skipped, including the
> resetting of local->in_reconfig to false.
>
> Leaving local->inconfig = true will result in
> dropping any incoming packet.
>
> Fix it by always setting local->in_reconfig = false
> (even if there are no active interfaces).
>
> Signed-off-by: Eliad Peller <[email protected]>
> ---
> this should go to 3.5
Also looks good, thanks
Reviewed-by: Johannes Berg <[email protected]>
John, could you also pick this up?
johannes
> net/mac80211/util.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/net/mac80211/util.c b/net/mac80211/util.c
> index 242ecde..e1b7c63 100644
> --- a/net/mac80211/util.c
> +++ b/net/mac80211/util.c
> @@ -1411,10 +1411,10 @@ int ieee80211_reconfig(struct ieee80211_local *local)
> if (ieee80211_sdata_running(sdata))
> ieee80211_enable_keys(sdata);
>
> + wake_up:
> local->in_reconfig = false;
> barrier();
>
> - wake_up:
> /*
> * Clear the WLAN_STA_BLOCK_BA flag so new aggregation
> * sessions can be established after a resume.