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

From: Greg KH <[email-masked]>
Date: Tue, 12 Apr 2005 22:18:24 -0700

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:
> > On Fri, Apr 08, 2005 at 12:36:02PM +0100, Leigh Brown wrote:
> > > Tom Rini said:
> > > > On Wed, Apr 06, 2005 at 03:47:13AM +0200, Christian wrote:
> > > >> Tom Rini wrote:
> > > >> > 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 <[email-masked]>
> 
> On Fri, 8 Apr 2005 08:57:17 -0700, Tom Rini wrote:
> > On Fri, Apr 08, 2005 at 05:51:40PM +0200, Christian wrote:
> > > Tom Rini wrote:
> > > > 
> > > > 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 <[email-masked]>
> > > 
> > > 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 <[email-masked]>

The proper place for -stable patches, is to have them sent to
[email-masked] 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