Re: [PATCH 3/7] PCI / PCIe: Ask BIOS for control of all native services at once (v5)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday, August 02, 2010, Hidetoshi Seto wrote:
> (2010/07/31 7:32), Rafael J. Wysocki wrote:
> > From: Rafael J. Wysocki <rjw@xxxxxxx>
> > 
> > PCIe port service drivers ask the BIOS, through _OSC, for control of
> > the services they handle.  Unfortunately, each of them individually
> > asks for control of the PCIe capability structure and if that is
> > granted, some BIOSes expect that the other PCIe port services will be
> > configured and handled by the kernel as well.  If that is not the
> > case (eg. one of the PCIe port service drivers is not loaded), the
> > BIOS may be confused and may cause the system as a whole to misbehave
> > (eg. on one of such systems enabling the native PCIe PME service
> > without loading the native PCIe hot-plug service driver causes a
> > storm of ACPI notify requests to appear).
> > 
> > For this reason rework the PCIe port driver so that (1) it checks
> > which native PCIe port services can be enabled, according to the
> > BIOS, and (2) it requests control of all these services
> > simultaneously.  In particular, this causes pcie_portdrv_probe() to
> > fail if the BIOS refuses to grant control of the PCIe capability
> > structure, which means that no native PCIe port services can be
> > enabled for the PCIe root complex the given port belongs to.
> > 
> > Make it possible to override this behavior using a new command line
> > switch pcie_ports= that can be set to 'auto' (ask the BIOS, the
> > default), 'native' (use the PCIe native services regardless of the
> > BIOS response to the control request), or 'compat' (do not use the
> > PCIe native services at all).
> > 
> > Accordingly, rework the existing PCIe port service drivers so that
> > they don't request control of the services directly.
> > 
> > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
> > ---
> 
> It seems that this patch still have more than one logical changes.
> 
> I think that "pcie_ports=compat" has an independent function, so
> it could be in a separated patch.
> 
> Maybe we can have 2 patches (at least) before this change:
>  [1] aerdrv: introduce pci_aer_available()
>  [2] portdrv: introduce pcie_ports=
>       'compat' to disable all port services
>  [3] (this patch)

I can do that, but I'm not sure if that really is going to make things better.

The introduction of pcie_ports=, for example, is only necessary because of the
other changes in the $subject patch, so why do you want it to be separate?

Thanks,
Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux