site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com When the sti/cli instruction is executed by IOSimpleLockLockDisableInterrupts(), does it somehow have the effect of disabling interrupts across all CPUs (or specifically the 'interrupt handling CPU'), or just on the CPU executing the code? S+E -- Quinn "The Eskimo!" <http://www.apple.com/developer/> Apple Developer Relations, Developer Technical Support, Core OS/Hardware _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... At 10:23 +1100 18/11/08, Rob Cas wrote: It only affects the calling CPU. This is pretty standard behaviour for a kernel-level spin lock. You need to disable interrupts on the calling CPU to prevent deadlocking against interrupt-level code running on the same CPU. Code running on other CPUs, either interrupt level or not, will spin on the lock. This email sent to site_archiver@lists.apple.com