On Mon, Dec 20, 2010 at 11:53:19AM -0800, Greg KH wrote: > > This patch doesn't apply to the .36 stable tree > If someone wants it applied there, please email the backport > to [email protected] > Sorry, I've been on vacation, I'll get on this as soon as I'm caught up on email Thanks Neil
> thanks, > > greg k-h > > > commit: 49c2fa08a77a7eefa4cbc73601f64984aceacfa7 > > From: Neil Horman <[email protected]> > > Date: Wed, 8 Dec 2010 09:47:48 -0500 > > Subject: [PATCH] PCI: Update MCP55 quirk to not affect non HyperTransport > > variants > > MIME-Version: 1.0 > > Content-Type: text/plain; charset=UTF-8 > > Content-Transfer-Encoding: 8bit > > > > I wrote this quirk awhile ago to properly setup MCP55 chips on > > hypertransport > > busses so that interrupts reached whatever cpu happend to boot the kdump > > kernel. > > while that works well, it was recently shown to me that a a > > non-hypertransport > > variant of the MCP55 exists, and on those system the register that this > > quirk > > manipulates causes hangs if you write to it. Since the quirk was only > > meant to > > handle errors found on MCP55 chips that have a HT interface, this patch > > adds a > > filter to make sure the chip is an HT capable before making the needed > > register > > adjustment. This lets the broken MCP55s work with kdump while not breaking > > the > > non-HT variants. > > > > Resolves https://bugzilla.kernel.org/show_bug.cgi?id=23952 > > > > Tested successfully by the reporter and myself. > > > > Cc: [email protected] > > Reported-by: Mathieu B??rard <[email protected]> > > Acked-by: Vivek Goyal <[email protected]> > > Signed-off-by: Neil Horman <[email protected]> > > Signed-off-by: Jesse Barnes <[email protected]> > > --- > > drivers/pci/quirks.c | 3 +++ > > 1 files changed, 3 insertions(+), 0 deletions(-) > > > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > > index 6f9350c..313c0bd 100644 > > --- a/drivers/pci/quirks.c > > +++ b/drivers/pci/quirks.c > > @@ -2329,6 +2329,9 @@ static void __devinit > > nvbridge_check_legacy_irq_routing(struct pci_dev *dev) > > { > > u32 cfg; > > > > + if (!pci_find_capability(dev, PCI_CAP_ID_HT)) > > + return; > > + > > pci_read_config_dword(dev, 0x74, &cfg); > > > > if (cfg & ((1 << 2) | (1 << 15))) { > > > > > _______________________________________________ > > stable mailing list > > [email protected] > > http://linux.kernel.org/mailman/listinfo/stable > > _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
