public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* kbd_bh() is entered during kbd_init()
@ 2002-08-28  0:40 William Lee Irwin III
  2002-08-28  1:07 ` David S. Miller
  0 siblings, 1 reply; 3+ messages in thread
From: William Lee Irwin III @ 2002-08-28  0:40 UTC (permalink / raw)
  To: linux-kernel

kbd_bh() is entered during kbd_init().

#0  kbd_bh (dummy=0) at /mnt/b/2.5.32/linux-2.5.32/include/asm/processor.h:477
#1  0xc011f609 in tasklet_action (a=0xc032fd80) at softirq.c:197
#2  0xc011f3b2 in do_softirq () at softirq.c:89
#3  0xc0111c43 in smp_apic_timer_interrupt (regs=
      {ebx = -1070383808, ecx = -1070479088, edx = -870318228, esi = -1070859956
, edi = 582, ebp = -870318188, eax = 1, xds = -870383512, xes = -1072627608, ori
g_eax = -17, eip = -1072564974, xcs = 96, eflags = 582, esp = -1070511136, xss =
 -1070144220}) at apic.c:1091
#4  0xc01082a6 in apic_timer_interrupt () at process.c:982
#5  0xc02dce32 in kbd_init ()
    at /mnt/b/2.5.32/linux-2.5.32/include/linux/interrupt.h:162
#6  0xc02dd185 in vty_init () at console.c:2527
#7  0xc02dc4a6 in tty_init () at tty_io.c:2315
#8  0xc02dc259 in chr_dev_init () at mem.c:671
#9  0xc02ce8e5 in do_initcalls () at main.c:491
#10 0xc02ce921 in do_basic_setup () at main.c:542
#11 0xc01050df in init (unused=0x0) at main.c:569

kbd_init() needs to disable interrupts.


Cheers,
Bill


--- linux-2.5.32-virgin/drivers/char/keyboard.c	2002-08-27 12:26:41.000000000 -0700
+++ linux-2.5.32/drivers/char/keyboard.c	2002-08-27 16:45:32.000000000 -0700
@@ -1169,6 +1169,9 @@
 int __init kbd_init(void)
 {
 	int i;
+	unsigned long flags;
+
+	local_irq_save(flags);
 
         kbd0.ledflagstate = kbd0.default_ledflagstate = KBD_DEFLEDS;
         kbd0.ledmode = LED_SHOW_FLAGS;
@@ -1183,5 +1186,7 @@
 	tasklet_enable(&keyboard_tasklet);
 	tasklet_schedule(&keyboard_tasklet);
 	input_register_handler(&kbd_handler);
+
+	local_irq_restore(flags);
 	return 0;
 }

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: kbd_bh() is entered during kbd_init()
  2002-08-28  0:40 kbd_bh() is entered during kbd_init() William Lee Irwin III
@ 2002-08-28  1:07 ` David S. Miller
  2002-08-28 20:03   ` William Lee Irwin III
  0 siblings, 1 reply; 3+ messages in thread
From: David S. Miller @ 2002-08-28  1:07 UTC (permalink / raw)
  To: wli; +Cc: linux-kernel

   From: William Lee Irwin III <wli@holomorphy.com>
   Date: Tue, 27 Aug 2002 17:40:40 -0700
   
   kbd_init() needs to disable interrupts.

That won't cure the problem on SMP.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: kbd_bh() is entered during kbd_init()
  2002-08-28  1:07 ` David S. Miller
@ 2002-08-28 20:03   ` William Lee Irwin III
  0 siblings, 0 replies; 3+ messages in thread
From: William Lee Irwin III @ 2002-08-28 20:03 UTC (permalink / raw)
  To: David S. Miller; +Cc: linux-kernel

From: William Lee Irwin III <wli@holomorphy.com>
Date: Tue, 27 Aug 2002 17:40:40 -0700
>    kbd_init() needs to disable interrupts.

On Tue, Aug 27, 2002 at 06:07:35PM -0700, David S. Miller wrote:
> That won't cure the problem on SMP.

Seemed to fix it on a 16x. I believe the kernel isn't running anything on
the secondaries yet at that point. Working alternatives are, of course,
welcome.


Cheers,
Bill

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-08-28 19:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-08-28  0:40 kbd_bh() is entered during kbd_init() William Lee Irwin III
2002-08-28  1:07 ` David S. Miller
2002-08-28 20:03   ` William Lee Irwin III

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox