8139cp: Use dev_kfree_skb_any() instead of dev_kfree_skb() in cp_clean_rings()
This can be called from cp_tx_timeout() with interrupts disabled. Spotted by Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0315e38270
commit
fc27bd115b
|
@ -1151,7 +1151,7 @@ static void cp_clean_rings (struct cp_private *cp)
|
|||
desc = cp->rx_ring + i;
|
||||
dma_unmap_single(&cp->pdev->dev,le64_to_cpu(desc->addr),
|
||||
cp->rx_buf_sz, PCI_DMA_FROMDEVICE);
|
||||
dev_kfree_skb(cp->rx_skb[i]);
|
||||
dev_kfree_skb_any(cp->rx_skb[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1164,7 +1164,7 @@ static void cp_clean_rings (struct cp_private *cp)
|
|||
le32_to_cpu(desc->opts1) & 0xffff,
|
||||
PCI_DMA_TODEVICE);
|
||||
if (le32_to_cpu(desc->opts1) & LastFrag)
|
||||
dev_kfree_skb(skb);
|
||||
dev_kfree_skb_any(skb);
|
||||
cp->dev->stats.tx_dropped++;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue