The BASE_VALID() macro needs adjustment to match the other changes done to the original Linux code (which are all queued to be merged into Linus' tree), plus per Hypertransport specification the range 0xff00000000-0xffffffffff also needs to be excluded. Signed-off-by: Jan Beulich --- a/xen/arch/x86/x86_64/mmconf-fam10h.c +++ b/xen/arch/x86/x86_64/mmconf-fam10h.c @@ -33,7 +33,7 @@ static struct pci_hostbridge_probe pci_p #define SIZE (UNIT << 8) /* need to avoid (0xfd<<32) and (0xfe<<32), ht used space */ #define FAM10H_PCI_MMCONF_BASE (0xfcULL<<32) -#define BASE_VALID(b) ((b != (0xfdULL << 32)) && (b != (0xfeULL << 32))) +#define BASE_VALID(b) ((b) + SIZE <= (0xfdULL<<32) || (b) >= (1ULL<<40)) static void __init get_fam10h_pci_mmconf_base(void) { unsigned int i, j, bus, slot, hi_mmio_num;