summaryrefslogtreecommitdiffstats
path: root/src/arch
diff options
context:
space:
mode:
authorMichael Brown2016-12-07 08:25:44 +0100
committerMichael Brown2016-12-07 08:25:44 +0100
commite09331a4c6731b771c60f554f33cf0fdf5775124 (patch)
tree32a35ad29d41a00d1e0d98d2068e2ebfd6f4708d /src/arch
parent[prefix] Include diagnostic information within progress messages (diff)
downloadipxe-e09331a4c6731b771c60f554f33cf0fdf5775124.tar.gz
ipxe-e09331a4c6731b771c60f554f33cf0fdf5775124.tar.xz
ipxe-e09331a4c6731b771c60f554f33cf0fdf5775124.zip
[undi] Try matching UNDI ROMs in BIOS enumeration order
When searching for an UNDI ROM to match against a PCI device, search in order of increasing ROM address (within the 128kB BIOS option ROM area). This is likely (though not guaranteed) to match the order of the original enumeration performed by the BIOS, which is in turn likely to match the order of enumeration on the PCI bus. Since we load at most one UNDI ROM, the net result is that we increase our chances of loading the ROM corresponding to the selected PCI device (rather than loading a ROM corresponding to a higher-numbered PCI device with the same vendor and device IDs.) Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/drivers/net/undirom.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/arch/x86/drivers/net/undirom.c b/src/arch/x86/drivers/net/undirom.c
index b54c6170..257b1241 100644
--- a/src/arch/x86/drivers/net/undirom.c
+++ b/src/arch/x86/drivers/net/undirom.c
@@ -168,7 +168,7 @@ static int undirom_probe ( unsigned int rom_segment ) {
/* Add to UNDI ROM list and return */
DBGC ( undirom, "UNDIROM %p registered\n", undirom );
- list_add ( &undirom->list, &undiroms );
+ list_add_tail ( &undirom->list, &undiroms );
return 0;
err: