the following comment in the header of via-rhine.c made me suspicious:
: The send packet thread has partial control over the Tx ring. It locks
: the dev->priv->lock whenever it's queuing a Tx packet. If the next slot
: in the ring is not available it stops the transmit queue by calling
: netif_stop_queue.
okay so far. reading through net/sched/sched_generic.c shows that "NETDEV
WATCHDOG" will bark when (among other conditions) the netif queue is stoppped
and the timer expires. so, what if the queue is stopped, but never started
again by the driver? the only call to netif_start_queue is in via_rhine_open.
shouldn't there be another netif_start_queue if netif_queue_stopped(dev) &&
a packet has left the queue? where's the proper place to insert that?
regards,
h.rosmanith
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/