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

Reply via email to