* [PATCH] x86/EISA: Don't probe EISA bus for Xen PV guests
@ 2018-09-11 19:55 Boris Ostrovsky
2018-09-11 20:20 ` Thomas Gleixner
2018-09-11 21:39 ` [tip:x86/urgent] " tip-bot for Boris Ostrovsky
0 siblings, 2 replies; 4+ messages in thread
From: Boris Ostrovsky @ 2018-09-11 19:55 UTC (permalink / raw)
To: tglx, mingo, hpa
Cc: x86, linux-kernel, xen-devel, jgross, andy, Boris Ostrovsky
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>
---
arch/x86/kernel/eisa.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/eisa.c b/arch/x86/kernel/eisa.c
index f260e452e4f8..fcf3de1712c8 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;
--
2.17.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] x86/EISA: Don't probe EISA bus for Xen PV guests
2018-09-11 19:55 [PATCH] x86/EISA: Don't probe EISA bus for Xen PV guests Boris Ostrovsky
@ 2018-09-11 20:20 ` Thomas Gleixner
2018-09-11 20:30 ` Boris Ostrovsky
2018-09-11 21:39 ` [tip:x86/urgent] " tip-bot for Boris Ostrovsky
1 sibling, 1 reply; 4+ messages in thread
From: Thomas Gleixner @ 2018-09-11 20:20 UTC (permalink / raw)
To: Boris Ostrovsky; +Cc: mingo, hpa, x86, linux-kernel, xen-devel, jgross, andy
On Tue, 11 Sep 2018, Boris Ostrovsky wrote:
> 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.
I assume this goes back to very dead kernels, so that should go with a Cc
stable, right?
Thanks,
tglx
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] x86/EISA: Don't probe EISA bus for Xen PV guests
2018-09-11 20:20 ` Thomas Gleixner
@ 2018-09-11 20:30 ` Boris Ostrovsky
0 siblings, 0 replies; 4+ messages in thread
From: Boris Ostrovsky @ 2018-09-11 20:30 UTC (permalink / raw)
To: Thomas Gleixner
Cc: mingo, hpa, x86, linux-kernel, xen-devel, jgross, andy, stable
On 9/11/18 4:20 PM, Thomas Gleixner wrote:
> On Tue, 11 Sep 2018, Boris Ostrovsky wrote:
>
>> 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.
> I assume this goes back to very dead kernels, so that should go with a Cc
> stable, right?
>
Yes, I forgot to add those (and now I did), thanks for pointing this out.
It has to go at least all the way back to 4.13 since before
f7eaf6e00fd58 ("x86/boot: Move EISA setup to a separate file"), just by
luck, early_ioremap() worked for the guests.
-boris
^ permalink raw reply [flat|nested] 4+ messages in thread
* [tip:x86/urgent] x86/EISA: Don't probe EISA bus for Xen PV guests
2018-09-11 19:55 [PATCH] x86/EISA: Don't probe EISA bus for Xen PV guests Boris Ostrovsky
2018-09-11 20:20 ` Thomas Gleixner
@ 2018-09-11 21:39 ` tip-bot for Boris Ostrovsky
1 sibling, 0 replies; 4+ messages in thread
From: tip-bot for Boris Ostrovsky @ 2018-09-11 21:39 UTC (permalink / raw)
To: linux-tip-commits; +Cc: mingo, linux-kernel, hpa, tglx, andy, boris.ostrovsky
Commit-ID: 6a92b11169a65b3f8cc512c75a252cbd0d096ba0
Gitweb: https://git.kernel.org/tip/6a92b11169a65b3f8cc512c75a252cbd0d096ba0
Author: Boris Ostrovsky <boris.ostrovsky@oracle.com>
AuthorDate: Tue, 11 Sep 2018 15:55:38 -0400
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 11 Sep 2018 23:36:50 +0200
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: 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
---
arch/x86/kernel/eisa.c | 10 ++++++++--
1 file 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;
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-09-11 21:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-11 19:55 [PATCH] x86/EISA: Don't probe EISA bus for Xen PV guests Boris Ostrovsky
2018-09-11 20:20 ` Thomas Gleixner
2018-09-11 20:30 ` Boris Ostrovsky
2018-09-11 21:39 ` [tip:x86/urgent] " tip-bot for Boris Ostrovsky
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®