mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-11 12:30:09 +00:00
commit 6a92b11169 upstream.
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: Andy Smith <andy@strugglers.net>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Thomas 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
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
26 lines
459 B
C
26 lines
459 B
C
/*
|
|
* EISA specific code
|
|
*
|
|
* This file is licensed under the GPL V2
|
|
*/
|
|
#include <linux/ioport.h>
|
|
#include <linux/eisa.h>
|
|
#include <linux/io.h>
|
|
|
|
#include <xen/xen.h>
|
|
|
|
static __init int eisa_bus_probe(void)
|
|
{
|
|
void __iomem *p;
|
|
|
|
if (xen_pv_domain() && !xen_initial_domain())
|
|
return 0;
|
|
|
|
p = ioremap(0x0FFFD9, 4);
|
|
if (p && readl(p) == 'E' + ('I' << 8) + ('S' << 16) + ('A' << 24))
|
|
EISA_bus = 1;
|
|
iounmap(p);
|
|
return 0;
|
|
}
|
|
subsys_initcall(eisa_bus_probe);
|