diff options
author | Michal Schmidt <mschmidt@redhat.com> | 2009-04-14 18:16:55 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-14 18:16:55 -0400 |
commit | d119b3927994e3d620d6adb0dd1ea6bf24427875 (patch) | |
tree | ce1222713dcb3ea7486f0a164a34005ea43bd4aa /virt | |
parent | fc59f9a3bf8096a1f68a8b78ada7a0e0ab9236b2 (diff) |
skge: fix occasional BUG during MTU change
The BUG_ON(skge->tx_ring.to_use != skge->tx_ring.to_clean) in skge_up()
was sometimes observed when setting MTU.
skge_down() disables the TX queue, but then reenables it by mistake via
skge_tx_clean().
Fix it by moving the waking of the queue from skge_tx_clean() to the
other caller. And to make sure start_xmit is not in progress on another
CPU, skge_down() should call netif_tx_disable().
The bug was reported to me by Jiri Jilek whose Debian system sometimes
failed to boot. He tested the patch and the bug did not happen anymore.
Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions