[Resending to get through vger's address checks - sorry for duplicate] Hi John, Today's linux-next merge of the wireless-next tree got a conflict in drivers/net/wireless/b43/dma.c between commit 3db1cd5c05f3 ("net: fix assignment of 0/1 to bool variables") from the net-next tree and commit bad691946966 ("b43: avoid packet losses in the dma worker code") from the wireless-next tree. Just context changes. I fixed it up (see below) and can carry the fix as necessary. The newly created tx_queue_stopped array element assignments should be changed form 0/1 to false/true as well (here and in main.c). -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc drivers/net/wireless/b43/dma.c index af23968,56d37dc..0000000 --- a/drivers/net/wireless/b43/dma.c +++ b/drivers/net/wireless/b43/dma.c @@@ -1465,8 -1465,10 +1465,10 @@@ int b43_dma_tx(struct b43_wldev *dev, s if ((free_slots(ring) < TX_SLOTS_PER_FRAME) || should_inject_overflow(ring)) { /* This TX ring is full. */ - ieee80211_stop_queue(dev->wl->hw, skb_get_queue_mapping(skb)); + unsigned int skb_mapping = skb_get_queue_mapping(skb); + ieee80211_stop_queue(dev->wl->hw, skb_mapping); + dev->wl->tx_queue_stopped[skb_mapping] = 1; - ring->stopped = 1; + ring->stopped = true; if (b43_debug(dev, B43_DBG_DMAVERBOSE)) { b43dbg(dev->wl, "Stopped TX ring %d\n", ring->index); } @@@ -1584,8 -1586,15 +1586,15 @@@ void b43_dma_handle_txstatus(struct b43 } if (ring->stopped) { B43_WARN_ON(free_slots(ring) < TX_SLOTS_PER_FRAME); - ieee80211_wake_queue(dev->wl->hw, ring->queue_prio); - ring->stopped = 0; + ring->stopped = false; + } + + if (dev->wl->tx_queue_stopped[ring->queue_prio]) { + dev->wl->tx_queue_stopped[ring->queue_prio] = 0; + } else { + /* If the driver queue is running wake the corresponding + * mac80211 queue. */ + ieee80211_wake_queue(dev->wl->hw, ring->queue_prio); if (b43_debug(dev, B43_DBG_DMAVERBOSE)) { b43dbg(dev->wl, "Woke up TX ring %d\n", ring->index); } -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx http://www.canb.auug.org.au/~sfr/
Attachment:
pgp2_Fb9gAehd.pgp
Description: PGP signature