1) Update some comment.

2) Add in handle for the out_of_resource cases
3) Add in Done label to clean up the code.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5853 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12
2008-09-09 02:39:44 +00:00
parent 599979d4ce
commit 6c857d668c
3 changed files with 29 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
/** @file
UEFI notify infrastructure
Support functions for UEFI protocol notification infrastructure.
Copyright (c) 2006 - 2008, Intel Corporation. <BR>
All rights reserved. This program and the accompanying materials
@@ -213,8 +213,8 @@ CoreReinstallProtocolInterface (
//
Prot = CoreFindProtocolInterface (UserHandle, Protocol, OldInterface);
if (Prot == NULL) {
CoreReleaseProtocolLock ();
return EFI_NOT_FOUND;
Status = EFI_NOT_FOUND;
goto Done;
}
//
@@ -228,8 +228,7 @@ CoreReinstallProtocolInterface (
//
// One or more drivers refused to release, so return the error
//
CoreReleaseProtocolLock ();
return Status;
goto Done;
}
//
@@ -238,8 +237,8 @@ CoreReinstallProtocolInterface (
Prot = CoreRemoveInterfaceFromProtocol (Handle, Protocol, OldInterface);
if (Prot == NULL) {
CoreReleaseProtocolLock ();
return EFI_NOT_FOUND;
Status = EFI_NOT_FOUND;
goto Done;
}
ProtEntry = Prot->Protocol;
@@ -265,12 +264,15 @@ CoreReinstallProtocolInterface (
// Release the lock and connect all drivers to UserHandle
//
CoreReleaseProtocolLock ();
Status = CoreConnectController (
UserHandle,
NULL,
NULL,
TRUE
);
//
// Return code is ignored on purpose.
//
CoreConnectController (
UserHandle,
NULL,
NULL,
TRUE
);
CoreAcquireProtocolLock ();
//
@@ -280,5 +282,8 @@ CoreReinstallProtocolInterface (
CoreReleaseProtocolLock ();
return EFI_SUCCESS;
Status = EFI_SUCCESS;
Done:
return Status;
}