On Sun, 2009-03-15 at 12:13 +0530, Sujith wrote: > When the driver has been notified with a STA_REMOVE, it tears down > the internal ADDBA state. On resume, trying to initiate aggregation would > fail because mac80211 has not cleared the operational state for that <TID,STA>. > This can be fixed by tearing down the existing sessions on a suspend. Agreed, but Bob said there were some deadlocks with this? johannes > Signed-off-by: Sujith <Sujith.Manoharan@xxxxxxxxxxx> > --- > net/mac80211/pm.c | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c > index f845601..ab9c989 100644 > --- a/net/mac80211/pm.c > +++ b/net/mac80211/pm.c > @@ -21,6 +21,13 @@ int __ieee80211_suspend(struct ieee80211_hw *hw) > list_for_each_entry(sdata, &local->interfaces, list) > ieee80211_disable_keys(sdata); > > + /* Tear down aggregation sessions */ > + if (hw->flags & IEEE80211_HW_AMPDU_AGGREGATION) { > + list_for_each_entry(sta, &local->sta_list, list) { > + ieee80211_sta_tear_down_BA_sessions(sta); > + } > + } > + > /* remove STAs */ > if (local->ops->sta_notify) { > spin_lock_irqsave(&local->sta_lock, flags);
Attachment:
signature.asc
Description: This is a digitally signed message part