> Except that this isn't valid C (no statement following the label). I can
accept goto-s for some error handling cases where the alternatives might be considered even more ugly than using goto. But the way this or your original proposal look, I'd rather not have goto-s used like this.
What about this? + bool is_conflict = false; for ( devfn = 0; devfn < 256; devfn++ ) { @@ -60,7 +61,7 @@ static void disable_conflicting_devices(void) continue; /* Check all bars */ - for ( bar = 0; bar < 7; bar++ ) + for ( bar = 0; bar < 7 && !is_conflict; bar++ ) { bar_reg = PCI_BASE_ADDRESS_0 + 4*bar; if ( bar == 6 ) @@ -89,7 +90,7 @@ static void disable_conflicting_devices(void) bar_sz = pci_readl(devfn, bar_reg); bar_sz &= PCI_BASE_ADDRESS_MEM_MASK; - for ( i = 0; i < memory_map.nr_map ; i++ ) + for ( i = 0; i < memory_map.nr_map && !is_conflict; i++ ) { if ( memory_map.map[i].type == E820_RESERVED ) { @@ -105,13 +106,13 @@ static void disable_conflicting_devices(void) devfn>>3, devfn&7, bar_reg, bar_data); cmd = pci_readw(devfn, PCI_COMMAND); pci_writew(devfn, PCI_COMMAND, ~cmd); - /* Jump next device. */ - goto check_next_device; + /* So need to jump next device. */ + is_conflict = true; } } } } - check_next_device: + is_conflict = false; } } Thanks Tiejun _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel