Thread (17 messages) 17 messages, 5 authors, 2005-04-13

Re: [PATCH 2.6.11+] ppc32: Make the Powerstack II Pro4000 boot again

From: Greg KH <hidden>
Date: 2005-04-13 08:01:14

On Sat, Apr 09, 2005 at 12:33:17PM +0100, Leigh Brown wrote:
On Fri, 8 Apr 2005 07:54:31 -0700 Tom Rini wrote:
quoted
On Fri, Apr 08, 2005 at 12:36:02PM +0100, Leigh Brown wrote:
quoted
Tom Rini said:
quoted
On Wed, Apr 06, 2005 at 03:47:13AM +0200, Christian wrote:
quoted
Tom Rini wrote:
quoted
Can either of you verify that say 2.6.11.6 w/ "noresidual" on the
command-line works?  Thanks.
i booted vanilla 2.6.11.6 with noresidual (and "nopresidual" too, as
Sven sugggested), but the scsi errors did not went away :(

on a side note, and perhaps totally unrelated: i always have
PROC_PREPRESIDUAL=y in my .config, but i never had /proc/residual as
promised from the help text.
Odd.  I thought that only happened if you had no residual data at all
(which can happen on Powerstacks, esp if netbooting the kernel).  But
in that case the new code shouldn't be hit at all.  Leigh?
Hi, I'm back from my holidays, and have had a look at this.  As I spent
lots of time understanding the horrendous mess that was
prep_pcibios_fixup(), I'd be loath to back out the changes I made
(especially as they work so well for me ;-) ).

It turns out that prep_pib_init() is the culprit.  Although it would
appear to be coded for the non-openpic case, it obviously doesn't work.
The old version of prep_pcibios_fixup() only called it if there is an
openpic on the machine.  We can restore that behaviour with the
following patch:
--- prep_pci.c.orig	2005-04-08 11:49:25.743718088 +0000
+++ prep_pci.c	2005-04-08 12:23:00.541422280 +0000
@@ -1245,8 +1245,13 @@
 		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
 	}

-	/* Setup the Winbond or Via PIB */
-	prep_pib_init();
+	/* Setup the Winbond or Via PIB - prep_pib_init() is coded for
+	 * the non-openpic case, but it breaks (at least) the Utah
+	 * (Powerstack II Pro4000), so only call it if we have an
+	 * openpic.
+	 */
+	if (have_openpic)
+		prep_pib_init();
 }

 static void __init
I've no idea even what machines would be affected by this, but it
fixes Sven's problem and restores the old behaviour, so that
can't be bad.

I guess fixing prep_pib_init() would be the better solution but
I wouldn't know where to start.  If this band-aid is good enough
I can submit a proper patch, if you like.
If this works, I'd like to see this get into 2.6.12.  Please re-send to
akpm / this list.  Assuming it's just the above:
Acked-by: Tom Rini <redacted>
On Fri, 8 Apr 2005 08:57:17 -0700, Tom Rini wrote:
quoted
On Fri, Apr 08, 2005 at 05:51:40PM +0200, Christian wrote:
quoted
Tom Rini wrote:
quoted
If this works, I'd like to see this get into 2.6.12.  Please re-send to
akpm / this list.  Assuming it's just the above:
Acked-by: Tom Rini <redacted>
yes! i just applied Leigh's patch (thanks!) to a pristine 2.6.11.6 and my
PReP here booted fine:
  http://www.nerdbynature.de/bits/hal/2.6.11.6/leigh/
Great.  Leigh, can you also submit to gregkh for 2.6.11.7?  Thanks.
This patch restores the original behaviour of prep_pcibios_fixup() to
only call prep_pib_init() on machines with an openpic.  This allows
the Powerstack II Pro4000 to boot again.

Signed-off-by: Leigh Brown <redacted>
The proper place for -stable patches, is to have them sent to
stable@kernel.org with a valid changelog comment (not a ton of
context...)

Please do that, and it will be reviewed.

Also, is this patch already in mainline?

thanks,

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help