[PATCH -rt] spin lock imbalance in ibm emac

From: dwalker
Date: Wed Aug 16 2006 - 17:54:17 EST


I'm not really sure where this code came from. There was a spin_unlock
imbalance inside emac_start_xmit_sg().. It only effects the driver when
CONFIG_IBM_EMAC_TAH is enabled.

This might need a little more review ..

Signed-Off-By: Daniel Walker <dwalker@xxxxxxxxxx>

Index: linux-2.6.17/drivers/net/ibm_emac/ibm_emac_core.c
===================================================================
--- linux-2.6.17.orig/drivers/net/ibm_emac/ibm_emac_core.c
+++ linux-2.6.17/drivers/net/ibm_emac/ibm_emac_core.c
@@ -1140,6 +1140,8 @@ static int emac_start_xmit_sg(struct sk_
if (likely(!nr_frags && len <= MAL_MAX_TX_SIZE))
return emac_start_xmit(skb, ndev);

+ spin_lock(&dev->tx_lock);
+
len -= skb->data_len;

/* Note, this is only an *estimation*, we can still run out of empty
@@ -1208,6 +1210,7 @@ static int emac_start_xmit_sg(struct sk_
stop_queue:
netif_stop_queue(ndev);
DBG2("%d: stopped TX queue" NL, dev->def->index);
+ spin_unlock(&dev->tx_lock);
return 1;
}
#else
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/