Re: [[v1]] PCI/ASPM: Do not initialize link state when aspm_disabled is set

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

 



On Wed, Sep 05, 2018 at 09:12:53AM +0200, Patrick Talbert wrote:
> Now that ASPM is configured for *all* PCIE devices at boot, a problem is seen
> with systems that set the FADT NO_ASPM bit. This bit indicates that the OS
> should not alter the ASPM state, but when pcie_aspm_init_link_state() runs it
> only checks for !aspm_support_enabled. This misses the ACPI_FADT_NO_ASPM case
> because that is setting aspm_disabled.
> 
> The result is systems may hang at boot after 1302fcf; avoidable if they boot
> with pcie_aspm=off (sets !aspm_support_enabled).
> 
> Fix this by having aspm_init_link_state() check for either !aspm_support_enabled
> or acpm_disabled.
> 
> Fixes: 1302fcf ("PCI: Configure *all* devices, not just hot-added ones")
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=201001
> Signed-off-by: Patrick Talbert <ptalbert@xxxxxxxxxx>

Applied to pci/aspm for v4.20, thanks!

> ---
>  drivers/pci/pcie/aspm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
> index 53269167..4feb8ba 100644
> --- a/drivers/pci/pcie/aspm.c
> +++ b/drivers/pci/pcie/aspm.c
> @@ -895,7 +895,7 @@ void pcie_aspm_init_link_state(struct pci_dev *pdev)
>  	struct pcie_link_state *link;
>  	int blacklist = !!pcie_aspm_sanity_check(pdev);
>  
> -	if (!aspm_support_enabled)
> +	if (!aspm_support_enabled || aspm_disabled)
>  		return;
>  
>  	if (pdev->link_state)
> -- 
> 1.8.3.1
> 



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux