]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/ArpDxe/ArpDriver.c
1. Add DPC protocol and DpcLib library in MdeModulePkg.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / ArpDxe / ArpDriver.c
index 58bc72219cee3214636d347d2c30b4a2d9054958..af2e082576e1918748a8d0600cfa84a73874b686 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 \r
-Copyright (c) 2006, Intel Corporation\r
+Copyright (c) 2006 - 2007, Intel Corporation                                                         \r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -177,11 +177,6 @@ ArpCreateService (
     goto ERROR_EXIT;\r
   }\r
 \r
-  //\r
-  // Init the lock.\r
-  //\r
-  NET_LOCK_INIT (&ArpService->Lock);\r
-\r
   //\r
   // Init the lists.\r
   //\r
@@ -506,6 +501,7 @@ ArpServiceBindingCreateChild (
   ARP_SERVICE_DATA   *ArpService;\r
   ARP_INSTANCE_DATA  *Instance;\r
   VOID               *Mnp;\r
+  EFI_TPL            OldTpl;\r
 \r
   if ((This == NULL) || (ChildHandle == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -564,11 +560,7 @@ ArpServiceBindingCreateChild (
     goto ERROR;\r
   }\r
 \r
-  if (EFI_ERROR (NET_TRYLOCK (&ArpService->Lock))) {\r
-\r
-    Status = EFI_ACCESS_DENIED;\r
-    goto ERROR;\r
-  }\r
+  OldTpl = NET_RAISE_TPL (NET_TPL_LOCK);\r
 \r
   //\r
   // Insert the instance into children list managed by the arp service context data.\r
@@ -576,7 +568,7 @@ ArpServiceBindingCreateChild (
   NetListInsertTail (&ArpService->ChildrenList, &Instance->List);\r
   ArpService->ChildrenNumber++;\r
 \r
-  NET_UNLOCK (&ArpService->Lock);\r
+  NET_RESTORE_TPL (OldTpl);\r
 \r
 ERROR:\r
 \r
@@ -633,6 +625,7 @@ ArpServiceBindingDestroyChild (
   ARP_SERVICE_DATA   *ArpService;\r
   ARP_INSTANCE_DATA  *Instance;\r
   EFI_ARP_PROTOCOL   *Arp;\r
+  EFI_TPL            OldTpl;\r
 \r
   if ((This == NULL) || (ChildHandle == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -693,10 +686,7 @@ ArpServiceBindingDestroyChild (
     return Status;\r
   }\r
 \r
-  if (EFI_ERROR (NET_TRYLOCK (&ArpService->Lock))) {\r
-    Instance->Destroyed = FALSE;\r
-    return EFI_ACCESS_DENIED;\r
-  }\r
+  OldTpl = NET_RAISE_TPL (NET_TPL_LOCK);\r
 \r
   if (Instance->Configured) {\r
     //\r
@@ -716,7 +706,7 @@ ArpServiceBindingDestroyChild (
   NetListRemoveEntry (&Instance->List);\r
   ArpService->ChildrenNumber--;\r
 \r
-  NET_UNLOCK (&ArpService->Lock);\r
+  NET_RESTORE_TPL (OldTpl);\r
 \r
   NetFreePool (Instance);\r
 \r