]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/SnpDxe/Receive.c
Update the copyright notice format
[mirror_edk2.git] / MdeModulePkg / Universal / Network / SnpDxe / Receive.c
index 4fec2a2f785681a6282468d60641ad700fa36113..adc1fb2711926ec2513855186a6f599ed70ff9ee 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
-               Implementation of receiving a packet from a network interface.\r
+  Implementation of receiving a packet from a network interface.\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 - 2010, 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
@@ -102,7 +102,7 @@ PxeReceive (
 \r
   default:\r
     DEBUG (\r
-      (EFI_D_NET,\r
+      (EFI_D_ERROR,\r
       "\nsnp->undi.receive()  %xh:%xh\n",\r
       Snp->Cdb.StatFlags,\r
       Snp->Cdb.StatCode)\r
@@ -132,6 +132,16 @@ PxeReceive (
     *Protocol = (UINT16) PXE_SWAP_UINT16 (Db->Protocol);\r
   }\r
 \r
+  //\r
+  // We have received a packet from network interface, which implies that the\r
+  // network cable should be present. While, some UNDI driver may not report\r
+  // correct media status during Snp->Initialize(). So, we need ensure\r
+  // MediaPresent in SNP mode data is set to correct value.\r
+  //\r
+  if (Snp->Mode.MediaPresentSupported && !Snp->Mode.MediaPresent) {\r
+    Snp->Mode.MediaPresent = TRUE;\r
+  }\r
+\r
   return (*BufferSize <= BuffSize) ? EFI_SUCCESS : EFI_BUFFER_TOO_SMALL;\r
 }\r
 \r
@@ -225,7 +235,7 @@ SnpUndi32Receive (
     goto ON_EXIT;\r
   }\r
 \r
-  if (!Snp->Mode.ReceiveFilterSetting) {\r
+  if (Snp->Mode.ReceiveFilterSetting == 0) {\r
     Status = EFI_DEVICE_ERROR;\r
     goto ON_EXIT;\r
   }\r