On Monday 24 July 2006 18:25, Marcel Moolenaar wrote: > marcel 2006-07-24 22:25:16 UTC > > FreeBSD src repository > > Modified files: > sys/dev/scc scc_core.c > Log: > If we have multiple interrupt resources, like for Z8530 clones on the > mac-io bus, we cannot setup FAST interrupt handlers. This because we > use spinlocks to protect the hardware and all interrupt resources are > assigned the same interrupt handler. When the interrupt handler is > invoked for interrupt X, it could be preempted for interrupt Y while > it was holding the lock (where X and Y are the interrupt resources > corresponding a single instance of this driver). This is a deadlock. > By only using a MPSAFE handler in that case we prevent preemption.
Umm, if you have interrupts preempting a spin lock you are going to have a lot more problems. :( spinlock_enter() is supposed to either block or defer any interrupts that could try to acquire a spin lock or interfere with a held spin lock until spinlock_exit(). -- John Baldwin _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"
