diff options
Diffstat (limited to 'arch/x86/kernel/eisa.c')
| -rw-r--r-- | arch/x86/kernel/eisa.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/x86/kernel/eisa.c b/arch/x86/kernel/eisa.c index f260e452e4f8..e8c8c5d78dbd 100644 --- a/arch/x86/kernel/eisa.c +++ b/arch/x86/kernel/eisa.c @@ -7,11 +7,17 @@  #include <linux/eisa.h>  #include <linux/io.h> +#include <xen/xen.h> +  static __init int eisa_bus_probe(void)  { -	void __iomem *p = ioremap(0x0FFFD9, 4); +	void __iomem *p; + +	if (xen_pv_domain() && !xen_initial_domain()) +		return 0; -	if (readl(p) == 'E' + ('I'<<8) + ('S'<<16) + ('A'<<24)) +	p = ioremap(0x0FFFD9, 4); +	if (p && readl(p) == 'E' + ('I' << 8) + ('S' << 16) + ('A' << 24))  		EISA_bus = 1;  	iounmap(p);  	return 0;  | 
