]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouse.c
raise TPL to TPL_CALLBACK level at DriverBindingStart() for all usb-related modules...
[mirror_edk2.git] / MdeModulePkg / Bus / Usb / UsbMouseDxe / UsbMouse.c
index 8b8a21eae81c7080670fc6968341b28aea2f999c..f51dbfa1cfdde95fe2ca5f76f016a51001b5abc9 100644 (file)
@@ -149,7 +149,9 @@ USBMouseDriverBindingStart (
   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 @@ USBMouseDriverBindingStart (
                   EFI_OPEN_PROTOCOL_BY_DRIVER\r
                   );\r
   if (EFI_ERROR (Status)) {\r
-    return Status;\r
+    goto ErrorExit1;\r
   }\r
 \r
   UsbMouseDevice = AllocateZeroPool (sizeof (USB_MOUSE_DEV));\r
@@ -324,6 +326,8 @@ USBMouseDriverBindingStart (
     FALSE\r
     );\r
 \r
+  gBS->RestoreTPL (OldTpl);\r
+\r
   return EFI_SUCCESS;\r
 \r
 //\r
@@ -348,6 +352,8 @@ ErrorExit:
     }\r
   }\r
 \r
+ErrorExit1:\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 }\r
 \r