From: Colin Ian King <colin.king@canonical.com>
To: Matthew Garrett <mjg@redhat.com>
Cc: bhelgaas@google.com, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH] ASPM: Fix pcie devices with non-pcie children
Date: Tue, 27 Mar 2012 17:58:00 +0100 [thread overview]
Message-ID: <4F71F198.4080405@canonical.com> (raw)
In-Reply-To: <1332857861-11562-1-git-send-email-mjg@redhat.com>
On 27/03/12 15:17, Matthew Garrett wrote:
> Commit 4949be16822e92a18ea0cc1616319926628092ee changed the behaviour of
> pcie_aspm_sanity_check() to always return 0 if aspm is disabled, in order
> to avoid cases where we changed ASPM state on pre-PCIe 1.1 devices. This
> skipped the secondary function of pcie_aspm_sanity_check which was to avoid
> us enabling ASPM on devices that had non-PCIe children, causing us to hit
> a BUG_ON later on. Move the aspm_disabled check so we continue to honour
> that scenario.
>
> Signed-off-by: Matthew Garrett<mjg@redhat.com>
> Cc: stable@vger.kernel.org
> ---
> drivers/pci/pcie/aspm.c | 13 ++++++++++---
> 1 files changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
> index 86111d9..41e367b 100644
> --- a/drivers/pci/pcie/aspm.c
> +++ b/drivers/pci/pcie/aspm.c
> @@ -521,9 +521,6 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev)
> int pos;
> u32 reg32;
>
> - if (aspm_disabled)
> - return 0;
> -
> /*
> * Some functions in a slot might not all be PCIe functions,
> * very strange. Disable ASPM for the whole slot
> @@ -532,6 +529,16 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev)
> pos = pci_pcie_cap(child);
> if (!pos)
> return -EINVAL;
> +
> + /*
> + * If ASPM is disabled then we're not going to change
> + * the BIOS state. It's safe to continue even if it's a
> + * pre-1.1 device
> + */
> +
> + if (aspm_disabled)
> + continue;
> +
> /*
> * Disable ASPM for pre-1.1 PCIe device, we follow MS to use
> * RBER bit to determine if a function is 1.1 version device
We got a user who's now verified this fixes the BUG_ON() during boot,
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/961482/comments/51
.. so this does the trick. Thanks Matthew.
next prev parent reply other threads:[~2012-03-27 16:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-27 14:17 [PATCH] ASPM: Fix pcie devices with non-pcie children Matthew Garrett
2012-03-27 16:58 ` Colin Ian King [this message]
2012-03-28 21:15 ` Jonathan Nieder
2012-03-29 16:32 ` [PATCH resend] " Jonathan Nieder
2012-03-29 20:46 ` Andrew Morton
2012-03-29 20:56 ` Matthew Garrett
2012-03-29 20:59 ` Andrew Morton
2012-03-29 21:49 ` Bjorn Helgaas
2012-03-29 21:49 ` Bjorn Helgaas
2012-03-29 21:02 ` Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F71F198.4080405@canonical.com \
--to=colin.king@canonical.com \
--cc=bhelgaas@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mjg@redhat.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.