lkml.org 
[lkml]   [2005]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RESEND] [PATCH 3/7] ppc: remove cli()/sti() in arch/ppc/8xx_io/fec.c

Looks OK to me.

Dan, Tom, this should be applied to the linuxppc-2.5 IMO.

On Sat, Jan 08, 2005 at 11:04:15AM -0600, James Nelson wrote:
> Replace save_flags()/resore_flags() with spin_lock_irqsave()/spin_unlock_irqrestore()
> and document reasons for locking.
>
> Signed-off-by: James Nelson <james4765@gmail.com>
>
> 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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:09    [W:0.074 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site