Messages in this thread | | | Date | Thu, 6 May 1999 03:38:44 +0200 (CEST) | From | Andrea Arcangeli <> | Subject | Re: [patch] SMP race fix [was Re: SMP lockup & 3c509 on 2.2.x [aka. the Deadly 'ping -f']] |
| |
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/
| |