[lkml]   [1999]   [May]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [2.2.8] undefined reference to `disable_irq_nosync' (+ fix)
On Wed, 12 May 1999, Ivan Kokshaysky wrote:

>No, your patch breaks 8390.c on an i386 SMP. I think this one is
>correct (BTW the same fix is already in the Arm tree).

Does the ARM port support SMP? If so the patch below is wrong for the ARM

Since Alpha supports SMP, the patch below is wrong for Alpha and right now
Alpha (and I also checked Sparc64) had a SMP racing disable_irq().

disable_irq(`N') must make sure that there aren't irq `N' running before
returning. It must also make sure that once it's returned there won't be
irq `N' running until enable_irq(`N') will be run.

disable_irq_nosync() instead will make sure that there won't be irq
running on the same cpu who previously run disable_irq_nosync() (this will
obviously allow a bit better SMP scalability in piece of code that want to
disable irq to use spin_lock without clearing irq locally).

I tryied to fix the SMP race in the Alpha code last night (even if I don't
have an Alpha so who knows if it compiles/boot ;). Please look at my email
of yesterday with subject `[patch] disable_irq was disable_irq_nosync...'.

Andrea Arcangeli

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:51    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean