]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/iseries_veth.c
When cfq I/O scheduler is selected, get_request() in __make_request() calls
[linux-2.6-omap-h63xx.git] / drivers / net / iseries_veth.c
index 13ed8dc1e91d64b5603ca71e363920fd5cf8d90b..55af32e9bf082ad7f8d88b96b2e068eb0e35304f 100644 (file)
@@ -802,13 +802,14 @@ static void veth_tx_timeout(struct net_device *dev)
 
        spin_lock_irqsave(&port->pending_gate, flags);
 
+       if (!port->pending_lpmask) {
+               spin_unlock_irqrestore(&port->pending_gate, flags);
+               return;
+       }
+
        printk(KERN_WARNING "%s: Tx timeout!  Resetting lp connections: %08x\n",
               dev->name, port->pending_lpmask);
 
-       /* If we've timed out the queue must be stopped, which should
-        * only ever happen when there is a pending packet. */
-       WARN_ON(! port->pending_lpmask);
-
        for (i = 0; i < HVMAXARCHITECTEDLPS; i++) {
                struct veth_lpar_connection *cnx = veth_cnx[i];