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

Re: PREP sym53c8xx sym53c8xx brokeness due to 2.6.9-rc1-bk1 introduced residual data patch ...

From: Leigh Brown <hidden>
Date: 2005-04-08 11:54:37

Tom Rini said:
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.

Cheers,

Leigh.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help