diff --git a/devices/8139too-2.6.13-ethercat.c b/devices/8139too-2.6.13-ethercat.c index b6c946785853d9a3cdccb0af0632c8742d663f59..bb9933b44c1bcb3832c9ebcfc9b0ad1c395ee711 100644 --- a/devices/8139too-2.6.13-ethercat.c +++ b/devices/8139too-2.6.13-ethercat.c @@ -1969,11 +1969,12 @@ static void rtl8139_tx_interrupt (struct net_device *dev, } #endif /* RTL8139_NDEBUG */ - if (dev != rtl_ec_net_dev) { - /* only wake the queue if we did work, and the queue is stopped */ - if (tp->dirty_tx != dirty_tx) { - tp->dirty_tx = dirty_tx; - mb(); + /* only wake the queue if we did work, and the queue is stopped */ + if (tp->dirty_tx != dirty_tx) { + tp->dirty_tx = dirty_tx; + mb(); + + if (dev != rtl_ec_net_dev) { netif_wake_queue (dev); } } diff --git a/devices/8139too-2.6.17-ethercat.c b/devices/8139too-2.6.17-ethercat.c index b8f60d1c4fa980bbf599ad0f565819889d5c0219..4103204badc66c08304a6c22761250adcdfcead1 100644 --- a/devices/8139too-2.6.17-ethercat.c +++ b/devices/8139too-2.6.17-ethercat.c @@ -1976,11 +1976,12 @@ static void rtl8139_tx_interrupt (struct net_device *dev, } #endif /* RTL8139_NDEBUG */ - if (dev != rtl_ec_net_dev) { - /* only wake the queue if we did work, and the queue is stopped */ - if (tp->dirty_tx != dirty_tx) { - tp->dirty_tx = dirty_tx; - mb(); + /* only wake the queue if we did work, and the queue is stopped */ + if (tp->dirty_tx != dirty_tx) { + tp->dirty_tx = dirty_tx; + mb(); + + if (dev != rtl_ec_net_dev) { netif_wake_queue (dev); } }