[RESEND] [PATCH 3/7] ppc: remove cli()/sti() in arch/ppc/8xx_io/fec.c

From: James Nelson
Date: Sat Jan 08 2005 - 12:18:01 EST


Replace save_flags()/resore_flags() with spin_lock_irqsave()/spin_unlock_irqrestore()
and document reasons for locking.

Signed-off-by: James Nelson <james4765@xxxxxxxxx>

diff -urN --exclude='*~' linux-2.6.10-mm1-original/arch/ppc/8xx_io/fec.c linux-2.6.10-mm1/arch/ppc/8xx_io/fec.c
--- linux-2.6.10-mm1-original/arch/ppc/8xx_io/fec.c 2004-12-24 16:35:28.000000000 -0500
+++ linux-2.6.10-mm1/arch/ppc/8xx_io/fec.c 2005-01-07 19:58:55.806516338 -0500
@@ -389,6 +389,7 @@
flush_dcache_range((unsigned long)skb->data,
(unsigned long)skb->data + skb->len);

+ /* disable interrupts while triggering transmit */
spin_lock_irq(&fep->lock);

/* Send it on its way. Tell FEC its ready, interrupt when done,
@@ -539,6 +540,7 @@
struct sk_buff *skb;

fep = dev->priv;
+ /* lock while transmitting */
spin_lock(&fep->lock);
bdp = fep->dirty_tx;

@@ -799,6 +801,7 @@

if ((mip = mii_head) != NULL) {
ep->fec_mii_data = mip->mii_regval;
+
}
}

@@ -817,8 +820,8 @@

retval = 0;

- save_flags(flags);
- cli();
+ /* lock while modifying mii_list */
+ spin_lock_irqsave(&fep->lock, flags);

if ((mip = mii_free) != NULL) {
mii_free = mip->mii_next;
@@ -836,7 +839,7 @@
retval = 1;
}

- restore_flags(flags);
+ spin_unlock_irqrestore(&fep->lock, flags);

return(retval);
}
-
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/