[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [v8][PATCH 06/16] hvmloader/pci: disable all pci devices conflicting with rdm
What about this?Looks reasonable (but don't forget that I continue to be unconvinced that the patch as a whole makes sense). Yes, I always keep this in my mind as I mentioned in patch #00. Any risk you're still concerning? Is it that case if guest OS force enabling these devices again? IMO, at this point there are two cases: #1. Without passing through a RMRR device Those emulated devices don't create 1:1 mapping so its safe, right? #2. With passing through a RMRR deviceThis just probably cause these associated devices not to work well, but still don't bring any impact to other Domains, right? I mean this isn't going to worsen the preexisting situation. If I'm wrong please correct me. Thanks Tiejun Jan+ 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@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |