Commit 6a92b111 authored by Boris Ostrovsky's avatar Boris Ostrovsky Committed by Thomas Gleixner

x86/EISA: Don't probe EISA bus for Xen PV guests

For unprivileged Xen PV guests this is normal memory and ioremap will
not be able to properly map it.

While at it, since ioremap may return NULL, add a test for pointer's
validity.
Reported-by: default avatarAndy Smith <andy@strugglers.net>
Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Cc: hpa@zytor.com
Cc: xen-devel@lists.xenproject.org
Cc: jgross@suse.com
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20180911195538.23289-1-boris.ostrovsky@oracle.com
parent 07e846ba
...@@ -7,11 +7,17 @@ ...@@ -7,11 +7,17 @@
#include <linux/eisa.h> #include <linux/eisa.h>
#include <linux/io.h> #include <linux/io.h>
#include <xen/xen.h>
static __init int eisa_bus_probe(void) 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; EISA_bus = 1;
iounmap(p); iounmap(p);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment