|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen: don't use PCI BIOS service for configuration space accesses
On Fri, Apr 13, 2012 at 01:55:11PM +0100, David Vrabel wrote:
> On 13/04/12 13:29, Jan Beulich wrote:
> >>>> On 13.04.12 at 14:08, David Vrabel <david.vrabel@xxxxxxxxxx> wrote:
> >> From: David Vrabel <david.vrabel@xxxxxxxxxx>
> >>
> >> The accessing PCI configuration space with the PCI BIOS service does
> >> not work in PV guests.
> >>
> >> This fixes boot on systems without MMCONFIG or where the BIOS hasn't
> >> marked the MMCONFIG region as reserved in the e820 map.
> >
> > ... and where "direct" access doesn't work either? Are there really
> > machines where Xen works on but this doesn't work? (Or, in case
> > this is disabled in your config, is it really useful to have
> > CONFIG_PCI_DIRECT disabled?)
>
> If you have CONFIG_PCI_GOANY (the default) BIOS is preferred over
> direct. So this change makes it skip BIOS and fall back to direct.
>
> On the system I had saw the problem, the first call into the BIOS
> service would hang the system.
>
> > That's just a comment on the description, the patch itself is fine
> > nevertheless (but should probably be sent to the x86 and/or PCI
> > maintainers).
>
> I was expecting Konrad to pick it up and forward it to the relevant
> maintainer as appropriate. Konrad, would you prefer if I sent to direct?
You can send it to me. But I think it makes sense to stick
this in arch/x86/pci/xen.c - if it is not to late in teh bootup cycle?
>
> >> Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
> >
> > Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
> >
> >> Cc: stable@xxxxxxxxxx
> >> ---
> >> arch/x86/xen/enlighten.c | 5 ++++-
> >> 1 files changed, 4 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
> >> index b132ade..dbb5bb7 100644
> >> --- a/arch/x86/xen/enlighten.c
> >> +++ b/arch/x86/xen/enlighten.c
> >> @@ -63,6 +63,7 @@
> >> #include <asm/stackprotector.h>
> >> #include <asm/hypervisor.h>
> >> #include <asm/mwait.h>
> >> +#include <asm/pci_x86.h>
> >>
> >> #ifdef CONFIG_ACPI
> >> #include <linux/acpi.h>
> >> @@ -1365,7 +1366,9 @@ asmlinkage void __init xen_start_kernel(void)
> >> /* Make sure ACS will be enabled */
> >> pci_request_acs();
> >> }
> >> -
> >> +
> >> + /* PCI BIOS service won't work from a PV guest. */
> >> + pci_probe &= ~PCI_PROBE_BIOS;
> >>
> >> xen_raw_console_write("about to get started...\n");
> >>
> >> --
> >> 1.7.2.5
> >>
> >>
> >> _______________________________________________
> >> Xen-devel mailing list
> >> Xen-devel@xxxxxxxxxxxxx
> >> http://lists.xen.org/xen-devel
> >
> >
> >
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |