From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 60F3EB6F8E for ; Thu, 2 Jun 2011 12:58:02 +1000 (EST) Subject: Re: 3.0-rc1: powerpc hangs at Kernel virtual memory layout From: Benjamin Herrenschmidt To: Christian Kujau , linville@tuxdriver.com In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Date: Thu, 02 Jun 2011 12:57:47 +1000 Message-ID: <1306983467.29297.51.camel@pasglop> Mime-Version: 1.0 Cc: zajec5@gmail.com, linux ppc dev , LKML List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Wed, 2011-06-01 at 17:16 -0700, Christian Kujau wrote: > On Tue, 31 May 2011 at 16:50, Christian Kujau wrote: > > trying to boot 3.0-rc1 on powerpc32 only progresses until: > > > > > Kernel virtual memory layout: > > > * 0xfffcf000..0xfffff000 : fixmap > > After hours (and hours!) of git-bisecting, it said: > > ----------------------- > ccc7c28af205888798b51b6cbc0b557ac1170a49 is the first bad commit > commit ccc7c28af205888798b51b6cbc0b557ac1170a49 > Author: Rafał Miłecki > Date: Fri Apr 1 13:26:52 2011 +0200 > > ssb: pci: implement serdes workaround > > Signed-off-by: Rafał Miłecki > Signed-off-by: John W. Linville > ----------------------- Ok, thanks a lot, It looks rather trivial actually: That new workaround is PCIe specific but is called unconditionally, and will do bad things non-PCIe implementations. John, care to send the patch below to Linus ASAP ? I could reproduce and verify it fixes it. Thanks ! ssb: pci: Don't call PCIe specific workarounds on PCI cores Otherwise it can/will crash.... Signed-off-by: Benjamin Herrenschmidt --- diff --git a/drivers/ssb/driver_pcicore.c b/drivers/ssb/driver_pcicore.c index 82feb34..eddf1b9 100644 --- a/drivers/ssb/driver_pcicore.c +++ b/drivers/ssb/driver_pcicore.c @@ -540,7 +540,8 @@ void ssb_pcicore_init(struct ssb_pcicore *pc) ssb_pcicore_init_clientmode(pc); /* Additional always once-executed workarounds */ - ssb_pcicore_serdes_workaround(pc); + if (dev->id.coreid == SSB_DEV_PCIE) + ssb_pcicore_serdes_workaround(pc); /* TODO: ASPM */ /* TODO: Clock Request Update */ }