X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=NetworkPkg%2FUefiPxeBcDxe%2FPxeBcImpl.c;h=b828d24288990ea1cc1f1062f39969452dca4688;hb=f75c7478280b96d191e86856c0b1c49ff711c284;hp=9068e0686c5fedd6e3ef3206be573e80edd15b46;hpb=cf9ff46b088a1df9c8ab81f31ef9606826ca7977;p=mirror_edk2.git diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c index 9068e0686c..b828d24288 100644 --- a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c +++ b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c @@ -1949,6 +1949,7 @@ EfiPxeBcSetParameters ( if (NewSendGUID != NULL) { if (*NewSendGUID && EFI_ERROR (NetLibGetSystemGuid (&SystemGuid))) { + DEBUG ((EFI_D_WARN, "PXE: Failed to read system GUID from the smbios table!\n")); return EFI_INVALID_PARAMETER; } Mode->SendGUID = *NewSendGUID; @@ -2002,7 +2003,6 @@ EfiPxeBcSetStationIP ( EFI_STATUS Status; PXEBC_PRIVATE_DATA *Private; EFI_PXE_BASE_CODE_MODE *Mode; - EFI_ARP_CONFIG_DATA ArpConfigData; if (This == NULL) { return EFI_INVALID_PARAMETER; @@ -2042,27 +2042,6 @@ EfiPxeBcSetStationIP ( if (EFI_ERROR (Status)) { goto ON_EXIT; } - } else if (!Mode->UsingIpv6 && NewStationIp != NULL) { - // - // Configure the corresponding ARP with the IPv4 address. - // - ZeroMem (&ArpConfigData, sizeof (EFI_ARP_CONFIG_DATA)); - - ArpConfigData.SwAddressType = 0x0800; - ArpConfigData.SwAddressLength = (UINT8) sizeof (EFI_IPv4_ADDRESS); - ArpConfigData.StationAddress = &NewStationIp->v4; - - Private->Arp->Configure (Private->Arp, NULL); - Private->Arp->Configure (Private->Arp, &ArpConfigData); - - if (NewSubnetMask != NULL) { - Mode->RouteTableEntries = 1; - Mode->RouteTable[0].IpAddr.Addr[0] = NewStationIp->Addr[0] & NewSubnetMask->Addr[0]; - Mode->RouteTable[0].SubnetMask.Addr[0] = NewSubnetMask->Addr[0]; - Mode->RouteTable[0].GwAddr.Addr[0] = 0; - } - - Private->IsAddressOk = TRUE; } if (NewStationIp != NULL) { @@ -2076,6 +2055,10 @@ EfiPxeBcSetStationIP ( } Status = PxeBcFlushStationIp (Private, NewStationIp, NewSubnetMask); + if (!EFI_ERROR (Status)) { + Private->IsAddressOk = TRUE; + } + ON_EXIT: return Status; }