diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom/bgmac.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/bgmac.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c index e6e74ca86e60..b045dc072c40 100644 --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c | |||
@@ -269,15 +269,16 @@ static void bgmac_dma_tx_free(struct bgmac *bgmac, struct bgmac_dma_ring *ring) | |||
269 | while (ring->start != ring->end) { | 269 | while (ring->start != ring->end) { |
270 | int slot_idx = ring->start % BGMAC_TX_RING_SLOTS; | 270 | int slot_idx = ring->start % BGMAC_TX_RING_SLOTS; |
271 | struct bgmac_slot_info *slot = &ring->slots[slot_idx]; | 271 | struct bgmac_slot_info *slot = &ring->slots[slot_idx]; |
272 | u32 ctl1; | 272 | u32 ctl0, ctl1; |
273 | int len; | 273 | int len; |
274 | 274 | ||
275 | if (slot_idx == empty_slot) | 275 | if (slot_idx == empty_slot) |
276 | break; | 276 | break; |
277 | 277 | ||
278 | ctl0 = le32_to_cpu(ring->cpu_base[slot_idx].ctl0); | ||
278 | ctl1 = le32_to_cpu(ring->cpu_base[slot_idx].ctl1); | 279 | ctl1 = le32_to_cpu(ring->cpu_base[slot_idx].ctl1); |
279 | len = ctl1 & BGMAC_DESC_CTL1_LEN; | 280 | len = ctl1 & BGMAC_DESC_CTL1_LEN; |
280 | if (ctl1 & BGMAC_DESC_CTL0_SOF) | 281 | if (ctl0 & BGMAC_DESC_CTL0_SOF) |
281 | /* Unmap no longer used buffer */ | 282 | /* Unmap no longer used buffer */ |
282 | dma_unmap_single(dma_dev, slot->dma_addr, len, | 283 | dma_unmap_single(dma_dev, slot->dma_addr, len, |
283 | DMA_TO_DEVICE); | 284 | DMA_TO_DEVICE); |
@@ -1322,7 +1323,8 @@ static int bgmac_open(struct net_device *net_dev) | |||
1322 | 1323 | ||
1323 | phy_start(net_dev->phydev); | 1324 | phy_start(net_dev->phydev); |
1324 | 1325 | ||
1325 | netif_carrier_on(net_dev); | 1326 | netif_start_queue(net_dev); |
1327 | |||
1326 | return 0; | 1328 | return 0; |
1327 | } | 1329 | } |
1328 | 1330 | ||