raise TPL to TPL_CALLBACK level at DriverBindingStart() for all usb-related modules, which prevent DriverBindingStop() from being invoked when DriverBindingStart() runs.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10460 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
erictian
2010-05-05 05:21:38 +00:00
parent b9d5a7f1dc
commit 15cc67e616
6 changed files with 45 additions and 12 deletions

View File

@ -149,7 +149,9 @@ USBMouseAbsolutePointerDriverBindingStart (
UINT8 PollingInterval;
UINT8 PacketSize;
BOOLEAN Found;
EFI_TPL OldTpl;
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
//
// Open USB I/O Protocol
//
@ -162,7 +164,7 @@ USBMouseAbsolutePointerDriverBindingStart (
EFI_OPEN_PROTOCOL_BY_DRIVER
);
if (EFI_ERROR (Status)) {
return Status;
goto ErrorExit1;
}
UsbMouseAbsolutePointerDevice = AllocateZeroPool (sizeof (USB_MOUSE_ABSOLUTE_POINTER_DEV));
@ -324,6 +326,7 @@ USBMouseAbsolutePointerDriverBindingStart (
FALSE
);
gBS->RestoreTPL (OldTpl);
return EFI_SUCCESS;
//
@ -348,6 +351,9 @@ ErrorExit:
}
}
ErrorExit1:
gBS->RestoreTPL (OldTpl);
return Status;
}