> -----Original Message----- > From: Johannes Berg [mailto:johannes@xxxxxxxxxxxxxxxx] > Sent: Thursday, November 25, 2010 8:11 PM > To: Levi, Shahar > Cc: linux-wireless@xxxxxxxxxxxxxxx; Luciano Coelho > Subject: Re: [RFC 1/2] mac80211: Stop BA session event from device > > On Thu, 2010-11-25 at 16:39 +0200, Shahar Levi wrote: > > > +void ieee80211_stop_rx_ba_session(struct ieee80211_vif *vif, u16 > tid, > > + const u8 *addr); > > missing docs > > > +void ieee80211_stop_rx_ba_session(struct ieee80211_vif *vif, u16 > tid, > > + const u8 *addr) > > +{ > > + struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); > > + struct sta_info *sta = sta_info_get(sdata, addr); > > + > > + __ieee80211_stop_rx_ba_session(sta, tid, WLAN_BACK_INITIATOR, 0, > true); > > +} > > +EXPORT_SYMBOL(ieee80211_stop_rx_ba_session); > > Locking-wise, this is a disaster, as the function will acquire a mutex > that it also holds across other calls into the driver. It would seem > that this should have caused lockdep to warn you about ABBA style > deadlock since you call this with wl->mutex held, and previously you > said you were going to acquire that mutex from ampdu_action. > > This should use a similar trick to the one used in TX aggregation. > > Johannes Thanks for direction, I will review and update. Shahar ÿô.nÇ·®+%˱é¥wÿº{.nÇ·¥{±ÿ«zW¬³ø¡Ü}©²ÆzÚj:+v¨þø®w¥þàÞ¨è&¢)ß«a¶Úÿûz¹ÞúÝjÿwèf