[Description]:
Fixed one bug in PciBus. PciBus doesn't clear the bridges bus number for all the root bridges before scanning any of them. [Description]: The static IP configuration no long works in the EDK 1.04 network package. The cause is that changing the type of EFI_IP4_IPCONFIG_DATA.RouteTable from a variable length array to a pointer is not clean. If the whole structure is read from variable, the pointer is invalid. [Solution] Fix the pointer before using it [Impaction]: Ip4ConfigDxe module. [Reference Info]: EDK tracker 1134 - Static IP configuration no long works. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5291 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/** @file
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
Copyright (c) 2006 - 2008, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -180,6 +180,7 @@ EfiNicIp4ConfigGetInfo (
|
||||
} else {
|
||||
Status = EFI_SUCCESS;
|
||||
CopyMem (NicConfig, Config, Len);
|
||||
Ip4ConfigFixRouteTablePointer (&NicConfig->Ip4Info);
|
||||
}
|
||||
|
||||
*ConfigLen = Len;
|
||||
@@ -272,6 +273,7 @@ EfiNicIp4ConfigSetInfo (
|
||||
//
|
||||
if (Reconfig && (Instance->ReconfigEvent != NULL)) {
|
||||
Status = gBS->SignalEvent (Instance->ReconfigEvent);
|
||||
NetLibDispatchDpc ();
|
||||
}
|
||||
|
||||
return Status;
|
||||
@@ -442,6 +444,8 @@ ON_ERROR:
|
||||
ON_EXIT:
|
||||
gBS->RestoreTPL (OldTpl);
|
||||
|
||||
NetLibDispatchDpc ();
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -555,6 +559,7 @@ EfiIp4ConfigGetData (
|
||||
Status = EFI_BUFFER_TOO_SMALL;
|
||||
} else {
|
||||
CopyMem (ConfigData, &NicConfig->Ip4Info, Len);
|
||||
Ip4ConfigFixRouteTablePointer (ConfigData);
|
||||
}
|
||||
|
||||
*ConfigDataSize = Len;
|
||||
@@ -676,6 +681,9 @@ Ip4ConfigOnDhcp4Complete (
|
||||
ON_EXIT:
|
||||
gBS->SignalEvent (Instance->DoneEvent);
|
||||
Ip4ConfigCleanDhcp4 (Instance);
|
||||
|
||||
NetLibDispatchDpc ();
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user