]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/SnpDxe/Station_address.c
Fix a bug introuduced by r16104, not all NIC device implement both memory and IO...
[mirror_edk2.git] / MdeModulePkg / Universal / Network / SnpDxe / Station_address.c
index a1fcde2969d50d259c84a17d93dfc8c35b8098ca..0917baf6743b74822314fa87b4adbab643eaed7a 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
     Implementation of reading the MAC address of a network adapter.\r
  \r
-Copyright (c) 2004 - 2007, Intel Corporation. <BR> \r
-All rights reserved. This program and the accompanying materials are licensed \r
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed \r
 and made available under the terms and conditions of the BSD License which \r
 accompanies this distribution. The full text of the license may be found at \r
 http://opensource.org/licenses/bsd-license.php \r
@@ -39,7 +39,7 @@ PxeGetStnAddr (
   Snp->Cdb.CPBaddr    = PXE_CPBADDR_NOT_USED;\r
   Snp->Cdb.CPBsize    = PXE_CPBSIZE_NOT_USED;\r
 \r
-  Snp->Cdb.DBsize     = sizeof (PXE_DB_STATION_ADDRESS);\r
+  Snp->Cdb.DBsize     = (UINT16) sizeof (PXE_DB_STATION_ADDRESS);\r
   Snp->Cdb.DBaddr     = (UINT64)(UINTN) Db;\r
 \r
   Snp->Cdb.StatCode   = PXE_STATCODE_INITIALIZE;\r
@@ -117,18 +117,17 @@ PxeSetStnAddr (
     Snp->Cdb.CPBsize  = PXE_CPBSIZE_NOT_USED;\r
     Snp->Cdb.CPBaddr  = PXE_CPBADDR_NOT_USED;\r
   } else {\r
-    Snp->Cdb.OpFlags = PXE_OPFLAGS_STATION_ADDRESS_READ;\r
+    Snp->Cdb.OpFlags = PXE_OPFLAGS_STATION_ADDRESS_WRITE;\r
     //\r
-    // even though the OPFLAGS are set to READ, supplying a new address\r
-    // in the CPB will make undi change the mac address to the new one.\r
+    // Supplying a new address in the CPB will make undi change the mac address to the new one.\r
     //\r
     CopyMem (&Cpb->StationAddr, NewMacAddr, Snp->Mode.HwAddressSize);\r
 \r
-    Snp->Cdb.CPBsize  = sizeof (PXE_CPB_STATION_ADDRESS);\r
+    Snp->Cdb.CPBsize  = (UINT16) sizeof (PXE_CPB_STATION_ADDRESS);\r
     Snp->Cdb.CPBaddr  = (UINT64)(UINTN) Cpb;\r
   }\r
 \r
-  Snp->Cdb.DBsize     = sizeof (PXE_DB_STATION_ADDRESS);\r
+  Snp->Cdb.DBsize     = (UINT16) sizeof (PXE_DB_STATION_ADDRESS);\r
   Snp->Cdb.DBaddr     = (UINT64)(UINTN) Db;\r
 \r
   Snp->Cdb.StatCode   = PXE_STATCODE_INITIALIZE;\r