/*
- * Copyright (c) 1998-2010 Apple Inc. All rights reserved.
+ * Copyright (c) 2007-2012 Apple Inc. All rights reserved.
+ * Copyright (c) 1998-2006 Apple Computer, Inc. All rights reserved.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
if (vector->interruptDisabledSoft) {
vector->interruptDisabledSoft = 0;
-
+#if !defined(__i386__) && !defined(__x86_64__)
+ OSMemoryBarrier();
+#endif
+
if (!getPlatform()->atInterruptLevel()) {
while (vector->interruptActive)
{}
vector = &vectors[vectorNumber];
vector->interruptDisabledSoft = 1;
+#if !defined(__i386__) && !defined(__x86_64__)
+ OSMemoryBarrier();
+#endif
if (!getPlatform()->atInterruptLevel()) {
while (vector->interruptActive)
{
int cnt, interruptType;
IOReturn error;
+
+ reserved = NULL;
if (!super::init())
return kIOReturnNoResources;
interruptState = IOSimpleLockLockDisableInterrupt(controllerLock);
if (!vector->interruptDisabledSoft) {
vector->interruptDisabledSoft = 1;
+#if !defined(__i386__) && !defined(__x86_64__)
+ OSMemoryBarrier();
+#endif
+
vectorsEnabled--;
}
IOSimpleLockUnlockEnableInterrupt(controllerLock, interruptState);
vector = &vectors[vectorNumber];
vector->interruptActive = 1;
+#if !defined(__i386__) && !defined(__x86_64__)
+ OSMemoryBarrier();
+#endif
+
if (!vector->interruptDisabledSoft) {
// Call the handler if it exists.