Skip to contentSkip to conversation

hvmloader: Fix Parsing Etherboot Roms to Avoid Infinite Loop

PATCH In review Yosuke Iwamatsu 2 participants 2 messages Apr 9, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 hvmloader: Fix Parsing Etherboot Roms to Avoid Infinite Loop

Hi,

The new etherboot parsing, introduced in cs 17372, causes an infinite loop when the HVM guest has a vif device other than rtl8139. The attached patch will fix this problem.

Regards,
-----------------------
Yosuke Iwamatsu
NEC Corporation

hvmloader: Fix parsing Etherboot roms to avoid an infinite loop.

tools/firmware/hvmloader/hvmloader.c +3 -0
diff -r 324f772239a7 tools/firmware/hvmloader/hvmloader.c
@@ -378,7 +378,10 @@ static int scan_etherboot_nic(void *copy
                  strncmp(pcih->signature, "PCIR", 4) ||
                  (pcih->vendor_id != vendor_id) ||
                  (pcih->device_id != device_id) )
+            {
+                rom = (char *)rom + rom->rom_size * 512;
                 continue;
+            }
 
             /* Find the PnP expansion header (if any). */
             pnph = ((rom->expansion_header_offset != 0)

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#1 lore raw

RE: [PATCH] hvmloader: Fix Parsing Etherboot Roms to AvoidInfinite Loop

Quoted 10 lines · Yosuke Iwamatsu

Hi,

The new etherboot parsing, introduced in cs 17372, causes an infinite loop when the HVM guest has a vif device other than rtl8139. The attached patch will fix this problem.

Regards,
-----------------------
Yosuke Iwamatsu
NEC Corporation

Hey, the infinite loop issue also blocks our vt-d testing with pci/pcie nic assignment. I just tested your patch on c/s 17401, it works, vtd guest can boot now. Thanks.

-- haicheng