On Fri, Nov 06, 2009 at 10:26:50PM +0100, Thomas Renninger wrote: > On Monday 02 November 2009 03:57:52 pm Martin Hicks wrote: > > Okay, I found a bug that SGI has hacked around on our boxborough-EX > > machines that looks similar. The bug wasn't assigned to me, so I didn't > > know it was hacked around. :) > > > > Can you try this (may not apply. I cut & pasted)? Obviously it's a > > terribly patch, but it'll show us if it's the same problem. > I think I got it. > Below patch workarounds the problem. > I will verify on Mo.
Did you manage to verify this patch? > I expect this is related that these machines do not have a i8042 chip? Yes, I expect so. > I wonder how sane it is to toggle the LEDs at init time at all > (especially because this is also done with kdb=off). It doesn't seem all that sane to me...Maybe a better approach is to just get rid of this code entirely, since we're likely to start seeing more and more machines with no i8042. > Do you consider this to be a "real safe fix"? > Does someone have better ideas (remove whole led toggling init code, > check for i8042,...). > For SLE11-SP1 we do a kernel version jump and it still takes some time, > for 11.2 and SLE11 I need something really trivial... I'm inclined to just dump the LED toggling code, but I"m open to opinions from others. mh > > Thanks, > > Thomas > > From: Thomas Renninger <[email protected]> > Subject: X86 KDB: Reduce timeout for key blinking LEDs > Patch-Mainline: not yet > References: bnc#528811 > > Looks like on some boards without i8042 chip, the > whole loop is gone through which takes several minutes. > > Signed-off-by: Thomas Renninger <[email protected]> > > --- > arch/x86/kdb/kdba_io.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > Index: linux-2.6.31-master/arch/x86/kdb/kdba_io.c > =================================================================== > --- linux-2.6.31-master.orig/arch/x86/kdb/kdba_io.c > +++ linux-2.6.31-master/arch/x86/kdb/kdba_io.c > @@ -303,10 +303,10 @@ static void > kdb_kbdsend(unsigned char byte) > { > int timeout; > - for (timeout = 200 * 1000; timeout && (inb(KBD_STATUS_REG) & > KBD_STAT_IBF); timeout--); > + for (timeout = 200; timeout && (inb(KBD_STATUS_REG) & KBD_STAT_IBF); > timeout--); > outb(byte, KBD_DATA_REG); > udelay(40); > - for (timeout = 200 * 1000; timeout && (~inb(KBD_STATUS_REG) & > KBD_STAT_OBF); timeout--); > + for (timeout = 200; timeout && (~inb(KBD_STATUS_REG) & KBD_STAT_OBF); > timeout--); > inb(KBD_DATA_REG); > udelay(40); > } _______________________________________________ kdb mailing list [email protected] http://oss.sgi.com/mailman/listinfo/kdb
