Thomas Graf 5830725f8a [NET]: Fix dev->qdisc race for NETDEV_TX_LOCKED case
When transmit fails with NETDEV_TX_LOCKED the skb is requeued
to dev->qdisc again. The dev->qdisc pointer is protected by
the queue lock which needs to be dropped when attempting to
transmit and acquired again before requeing. The problem is
that qdisc_restart() fetches the dev->qdisc pointer once and
stores it in the `q' variable which is invalidated when
dropping the queue_lock, therefore the variable needs to be
refreshed before requeueing.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-10 23:47:39 -07:00
..
2007-04-25 22:29:24 -07:00
2007-02-10 23:20:08 -08:00
2007-02-10 23:20:08 -08:00
2007-04-25 22:26:04 -07:00
2007-04-25 22:27:56 -07:00
2007-04-25 22:27:56 -07:00
2007-04-25 22:29:24 -07:00
2007-02-10 23:20:08 -08:00
2007-04-25 22:27:56 -07:00
2007-04-25 22:27:56 -07:00
2007-04-25 22:29:24 -07:00
2007-04-25 22:29:24 -07:00
2007-02-10 23:20:08 -08:00