]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Usb/UsbMouseAbsolutePointerDxe/UsbMouseAbsolutePointer.c
raise TPL to TPL_CALLBACK level at DriverBindingStart() for all usb-related modules...
[mirror_edk2.git] / MdeModulePkg / Bus / Usb / UsbMouseAbsolutePointerDxe / UsbMouseAbsolutePointer.c
index 35be8b03973e09a3dbebe40620ecb98e83dec52e..2f3cf9aae213467ad434db316be18cc69d7cec40 100644 (file)
@@ -149,7 +149,9 @@ USBMouseAbsolutePointerDriverBindingStart (
   UINT8                          PollingInterval;\r
   UINT8                          PacketSize;\r
   BOOLEAN                        Found;\r
+  EFI_TPL                        OldTpl;\r
 \r
+  OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
   //\r
   // Open USB I/O Protocol\r
   //\r
@@ -162,7 +164,7 @@ USBMouseAbsolutePointerDriverBindingStart (
                   EFI_OPEN_PROTOCOL_BY_DRIVER                  \r
                   );\r
   if (EFI_ERROR (Status)) {\r
-    return Status;\r
+    goto ErrorExit1;\r
   }\r
   \r
   UsbMouseAbsolutePointerDevice = AllocateZeroPool (sizeof (USB_MOUSE_ABSOLUTE_POINTER_DEV));\r
@@ -324,6 +326,7 @@ USBMouseAbsolutePointerDriverBindingStart (
     FALSE\r
     );\r
 \r
+  gBS->RestoreTPL (OldTpl);\r
   return EFI_SUCCESS;\r
 \r
 //\r
@@ -348,6 +351,9 @@ ErrorExit:
     }\r
   }\r
 \r
+ErrorExit1:\r
+  gBS->RestoreTPL (OldTpl);\r
+\r
   return Status;\r
 }\r
 \r