@@ -1734,15 +1734,12 @@ void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, struct __queue *pfram
17341734 struct list_head * plist , * phead , * tmp ;
17351735 struct xmit_frame * pxmitframe ;
17361736
1737- spin_lock_bh (& pframequeue -> lock );
1738-
17391737 phead = get_list_head (pframequeue );
17401738 list_for_each_safe (plist , tmp , phead ) {
17411739 pxmitframe = list_entry (plist , struct xmit_frame , list );
17421740
17431741 rtw_free_xmitframe (pxmitpriv , pxmitframe );
17441742 }
1745- spin_unlock_bh (& pframequeue -> lock );
17461743}
17471744
17481745s32 rtw_xmitframe_enqueue (struct adapter * padapter , struct xmit_frame * pxmitframe )
@@ -1797,6 +1794,7 @@ s32 rtw_xmit_classifier(struct adapter *padapter, struct xmit_frame *pxmitframe)
17971794 struct sta_info * psta ;
17981795 struct tx_servq * ptxservq ;
17991796 struct pkt_attrib * pattrib = & pxmitframe -> attrib ;
1797+ struct xmit_priv * xmit_priv = & padapter -> xmitpriv ;
18001798 struct hw_xmit * phwxmits = padapter -> xmitpriv .hwxmits ;
18011799 signed int res = _SUCCESS ;
18021800
@@ -1814,12 +1812,14 @@ s32 rtw_xmit_classifier(struct adapter *padapter, struct xmit_frame *pxmitframe)
18141812
18151813 ptxservq = rtw_get_sta_pending (padapter , psta , pattrib -> priority , (u8 * )(& ac_index ));
18161814
1815+ spin_lock_bh (& xmit_priv -> lock );
18171816 if (list_empty (& ptxservq -> tx_pending ))
18181817 list_add_tail (& ptxservq -> tx_pending , get_list_head (phwxmits [ac_index ].sta_queue ));
18191818
18201819 list_add_tail (& pxmitframe -> list , get_list_head (& ptxservq -> sta_pending ));
18211820 ptxservq -> qcnt ++ ;
18221821 phwxmits [ac_index ].accnt ++ ;
1822+ spin_unlock_bh (& xmit_priv -> lock );
18231823
18241824exit :
18251825
@@ -2202,11 +2202,10 @@ void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta)
22022202 struct list_head * xmitframe_plist , * xmitframe_phead , * tmp ;
22032203 struct xmit_frame * pxmitframe = NULL ;
22042204 struct sta_priv * pstapriv = & padapter -> stapriv ;
2205- struct xmit_priv * pxmitpriv = & padapter -> xmitpriv ;
22062205
22072206 psta_bmc = rtw_get_bcmc_stainfo (padapter );
22082207
2209- spin_lock_bh (& pxmitpriv -> lock );
2208+ spin_lock_bh (& psta -> sleep_q . lock );
22102209
22112210 xmitframe_phead = get_list_head (& psta -> sleep_q );
22122211 list_for_each_safe (xmitframe_plist , tmp , xmitframe_phead ) {
@@ -2307,7 +2306,7 @@ void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta)
23072306
23082307_exit :
23092308
2310- spin_unlock_bh (& pxmitpriv -> lock );
2309+ spin_unlock_bh (& psta -> sleep_q . lock );
23112310
23122311 if (update_mask )
23132312 update_beacon (padapter , WLAN_EID_TIM , NULL , true);
@@ -2319,9 +2318,8 @@ void xmit_delivery_enabled_frames(struct adapter *padapter, struct sta_info *pst
23192318 struct list_head * xmitframe_plist , * xmitframe_phead , * tmp ;
23202319 struct xmit_frame * pxmitframe = NULL ;
23212320 struct sta_priv * pstapriv = & padapter -> stapriv ;
2322- struct xmit_priv * pxmitpriv = & padapter -> xmitpriv ;
23232321
2324- spin_lock_bh (& pxmitpriv -> lock );
2322+ spin_lock_bh (& psta -> sleep_q . lock );
23252323
23262324 xmitframe_phead = get_list_head (& psta -> sleep_q );
23272325 list_for_each_safe (xmitframe_plist , tmp , xmitframe_phead ) {
@@ -2374,7 +2372,7 @@ void xmit_delivery_enabled_frames(struct adapter *padapter, struct sta_info *pst
23742372 }
23752373 }
23762374
2377- spin_unlock_bh (& pxmitpriv -> lock );
2375+ spin_unlock_bh (& psta -> sleep_q . lock );
23782376}
23792377
23802378void enqueue_pending_xmitbuf (struct xmit_priv * pxmitpriv , struct xmit_buf * pxmitbuf )
0 commit comments