diff options
-rw-r--r-- | drivers/net/iseries_veth.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c index 13ed8dc1e91d..55af32e9bf08 100644 --- a/drivers/net/iseries_veth.c +++ b/drivers/net/iseries_veth.c | |||
@@ -802,13 +802,14 @@ static void veth_tx_timeout(struct net_device *dev) | |||
802 | 802 | ||
803 | spin_lock_irqsave(&port->pending_gate, flags); | 803 | spin_lock_irqsave(&port->pending_gate, flags); |
804 | 804 | ||
805 | if (!port->pending_lpmask) { | ||
806 | spin_unlock_irqrestore(&port->pending_gate, flags); | ||
807 | return; | ||
808 | } | ||
809 | |||
805 | printk(KERN_WARNING "%s: Tx timeout! Resetting lp connections: %08x\n", | 810 | printk(KERN_WARNING "%s: Tx timeout! Resetting lp connections: %08x\n", |
806 | dev->name, port->pending_lpmask); | 811 | dev->name, port->pending_lpmask); |
807 | 812 | ||
808 | /* If we've timed out the queue must be stopped, which should | ||
809 | * only ever happen when there is a pending packet. */ | ||
810 | WARN_ON(! port->pending_lpmask); | ||
811 | |||
812 | for (i = 0; i < HVMAXARCHITECTEDLPS; i++) { | 813 | for (i = 0; i < HVMAXARCHITECTEDLPS; i++) { |
813 | struct veth_lpar_connection *cnx = veth_cnx[i]; | 814 | struct veth_lpar_connection *cnx = veth_cnx[i]; |
814 | 815 | ||