ArmPkg/PL390Gic: Fix RegisterInterruptSource() to be able to unregister an interrupt handler

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12135 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
oliviermartin 2011-08-15 16:47:18 +00:00
parent 6b73be803b
commit 43f69915d9
1 changed files with 8 additions and 2 deletions

View File

@ -80,7 +80,7 @@ RegisterInterruptSource (
if (Source > PcdGet32(PcdGicNumInterrupts)) {
ASSERT(FALSE);
return EFI_UNSUPPORTED;
}
}
if ((Handler == NULL) && (gRegisteredInterruptHandlers[Source] == NULL)) {
return EFI_INVALID_PARAMETER;
@ -91,7 +91,13 @@ RegisterInterruptSource (
}
gRegisteredInterruptHandlers[Source] = Handler;
return This->EnableInterruptSource(This, Source);
// If the interrupt handler is unregistered then disable the interrupt
if (NULL == Handler){
return This->DisableInterruptSource (This, Source);
} else {
return This->EnableInterruptSource (This, Source);
}
}
/**