wcn36xx: Remove useless skb spinlock
Each DXE control block is associated to a specific channel. The channel lock is always taken before accessing a control block. There is no need to have an extra (useless) spinlock for the control block skb. Signed-off-by: Loic Poulain <loic.poulain@linaro.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
1391cce7da
commit
6062546d9b
@ -78,7 +78,6 @@ static int wcn36xx_dxe_allocate_ctl_block(struct wcn36xx_dxe_ch *ch)
|
||||
if (!cur_ctl)
|
||||
goto out_fail;
|
||||
|
||||
spin_lock_init(&cur_ctl->skb_lock);
|
||||
cur_ctl->ctl_blk_order = i;
|
||||
if (i == 0) {
|
||||
ch->head_blk_ctl = cur_ctl;
|
||||
@ -377,12 +376,11 @@ static void reap_tx_dxes(struct wcn36xx *wcn, struct wcn36xx_dxe_ch *ch)
|
||||
/* Keep frame until TX status comes */
|
||||
ieee80211_free_txskb(wcn->hw, ctl->skb);
|
||||
}
|
||||
spin_lock(&ctl->skb_lock);
|
||||
|
||||
if (wcn->queues_stopped) {
|
||||
wcn->queues_stopped = false;
|
||||
ieee80211_wake_queues(wcn->hw);
|
||||
}
|
||||
spin_unlock(&ctl->skb_lock);
|
||||
|
||||
ctl->skb = NULL;
|
||||
}
|
||||
@ -654,8 +652,6 @@ int wcn36xx_dxe_tx_frame(struct wcn36xx *wcn,
|
||||
spin_lock_irqsave(&ch->lock, flags);
|
||||
ctl = ch->head_blk_ctl;
|
||||
|
||||
spin_lock(&ctl->next->skb_lock);
|
||||
|
||||
/*
|
||||
* If skb is not null that means that we reached the tail of the ring
|
||||
* hence ring is full. Stop queues to let mac80211 back off until ring
|
||||
@ -664,11 +660,9 @@ int wcn36xx_dxe_tx_frame(struct wcn36xx *wcn,
|
||||
if (NULL != ctl->next->skb) {
|
||||
ieee80211_stop_queues(wcn->hw);
|
||||
wcn->queues_stopped = true;
|
||||
spin_unlock(&ctl->next->skb_lock);
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
return -EBUSY;
|
||||
}
|
||||
spin_unlock(&ctl->next->skb_lock);
|
||||
|
||||
ctl->skb = NULL;
|
||||
desc = ctl->desc;
|
||||
|
@ -422,7 +422,6 @@ struct wcn36xx_dxe_ctl {
|
||||
unsigned int desc_phy_addr;
|
||||
int ctl_blk_order;
|
||||
struct sk_buff *skb;
|
||||
spinlock_t skb_lock;
|
||||
void *bd_cpu_addr;
|
||||
dma_addr_t bd_phy_addr;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user