mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
6a92b11169
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
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);
|