Re: [patch] SMP race fix [was Re: SMP lockup & 3c509 on 2.2.x [aka.

Andrea Arcangeli (andrea@e-mind.com)
Thu, 6 May 1999 03:38:44 +0200 (CEST)


On Wed, 5 May 1999, Linus Torvalds wrote:

>Look at the implementation of "cli()" - when called from within a hardware
>interrupt, it will do something else than what you think it's doing, and
>"synchronize_irq()" will basically be a no-op.

Yes that was exactly my point.

>Bogus. It won't really harm (see no-op above), but it certainly doesn't
>help either.

Yes.

>Again, that one looks like it shouldn't actually harm anything, but
>doesn't help.

Infact. It was my idea too.

>For the REAL uses, look at some of the SCSI and sound drivers:
>
> outb(~0, s->ioenh + SV_CODEC_INTMASK); /* disable ints */
> synchronize_irq();

Thanks for the testcase!

>where the point of synchronize_irq() is to just wait for current
>interrupts to exit, because we just asked the card to not send any new
>ones.

Fine.

>That's still not necessarily a good practice (see my previous email about
>asynchroneity wrt CPU/device models), but at least it's not a silly no-op
>like the ones you looked at.

Agreed ;).

Andrea Arcangeli

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/