linux/drivers/char
Ingo Molnar 80d38f9a78 drivers/char/esp.c: fix bootup lockup
randconfig testing found a bootup lockup in drivers/char/esp.c because
of a spinlock that wasn't correctly initialized.

I'm not sure why it became more prominent in 2.6.25-rc4, the bug seems
rather old and i've been doing allyesconfig bootups for ages with
CONFIG_ESP enabled.

This fixes this bootup lockup:

 PM: Adding info for No Bus:ttyP63
 ttyP32 at 0x0240 (irq = 0) is an ESP primary port
 BUG: spinlock lockup on CPU#0, swapper/1, f56dd004
 Pid: 1, comm: swapper Not tainted 2.6.25-rc4-sched-devel.git-x86-latest.git #402 [<c03ac6f4>] _raw_spin_lock+0x134/0x140
  [<c08649be>] _spin_lock_irqsave+0x5e/0x80
  [<c0b9fbfe>] ? espserial_init+0x2be/0x6e0
  [<c0b9fbfe>] espserial_init+0x2be/0x6e0
  [<c0b877a3>] kernel_init+0x83/0x260
  [<c0b9f940>] ? espserial_init+0x0/0x6e0
  [<c010416a>] ? restore_nocheck_notrace+0x0/0xe
  [<c0b87720>] ? kernel_init+0x0/0x260
  [<c0b87720>] ? kernel_init+0x0/0x260
  [<c0104507>] kernel_thread_helper+0x7/0x10
  =======================

kzalloc() is not the way to initialize spinlocks anymore.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-03-07 10:05:13 -08:00
..
agp agp: fix missing casts that produced a warning. 2008-02-20 10:37:08 +10:00
drm i915: fix AR register restore. 2008-02-22 16:50:29 -08:00
hw_random via-rng: enable secondary noise source on CPUs where it is present 2008-02-06 10:41:05 -08:00
ip2 Char: char/serial, remove SERIAL_TYPE_NORMAL redefines 2008-02-07 08:42:33 -08:00
ipmi drivers/char/ipmi/ipmi_msghandler.c: use LIST_HEAD instead of LIST_HEAD_INIT 2008-02-06 10:41:07 -08:00
mwave
pcmcia ipwireless: fix potential tty == NULL dereference 2008-03-04 16:35:13 -08:00
rio
tpm tpm: infineon section mismatch 2008-02-06 10:41:10 -08:00
xilinx_hwicap [POWERPC] Xilinx: hwicap cleanup 2008-02-28 10:38:33 -06:00
.gitignore
amiserial.c
apm-emulation.c Freezer: Fix APM emulation breakage 2007-11-20 22:28:20 -05:00
applicom.c Char: applicom, use pci_match_id 2008-02-08 09:22:41 -08:00
applicom.h
briq_panel.c
cd1865.h
ChangeLog
consolemap.c unicode diacritics support 2007-10-17 08:42:52 -07:00
cp437.uni
cs5535_gpio.c gpio_cs5535: disable AUX on output 2007-12-05 09:21:20 -08:00
cyclades.c Char: cyclades, fix potential NULL dereference 2007-10-23 08:32:06 -07:00
defkeymap.c_shipped Fix default compose table initialization 2008-03-03 14:53:16 -08:00
defkeymap.map
digi1.h
digiFep1.h
digiPCI.h
ds1286.c
ds1302.c
ds1620.c
dsp56k.c
dtlk.c
efirtc.c drivers/char/: Spelling fixes 2008-02-03 17:11:42 +02:00
epca.c drivers/char/: Spelling fixes 2008-02-03 17:11:42 +02:00
epca.h Char: char/serial, remove SERIAL_TYPE_NORMAL redefines 2008-02-07 08:42:33 -08:00
epcaconfig.h
esp.c drivers/char/esp.c: fix bootup lockup 2008-03-07 10:05:13 -08:00
generic_nvram.c
generic_serial.c
genrtc.c
hangcheck-timer.c drivers/char/: Spelling fixes 2008-02-03 17:11:42 +02:00
hpet.c x86: nuke a ton of dead hpet code 2008-01-30 13:30:27 +01:00
hvc_beat.c
hvc_console.c drivers/char: use LIST_HEAD instead of LIST_HEAD_INIT 2008-02-06 10:41:07 -08:00
hvc_console.h
hvc_iseries.c
hvc_rtas.c [POWERPC] hvc_rtas_init() must be __init 2008-02-14 22:11:02 +11:00
hvc_vio.c
hvc_xen.c
hvcs.c drivers/char: use LIST_HEAD instead of LIST_HEAD_INIT 2008-02-06 10:41:07 -08:00
hvsi.c
i8k.c i8k: Inspiron E1705 fix 2008-02-07 08:42:33 -08:00
ip27-rtc.c ip27-rtc: convert ioctl to unlocked_ioctl 2008-02-06 10:41:14 -08:00
isicom.c drivers/char/isicom.c: correct use of ! and & 2008-03-04 16:35:15 -08:00
istallion.c Char: istallion, remove hangup bottomhalf 2008-02-07 08:42:34 -08:00
Kconfig sonypi - Move sonypi.txt to Documentation/laptops 2008-02-09 04:15:53 -05:00
keyboard.c Input: remove duplicated headers in drivers/char/keyboard.c 2008-01-21 01:11:08 -05:00
lcd.c
lcd.h
lp.c Parallel port: convert port_mutex to the mutex API 2008-02-06 10:41:01 -08:00
Makefile Merge branch 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-02-07 09:02:26 -08:00
mbcs.c MBCS: convert dmareadlock to mutex 2008-02-07 08:42:25 -08:00
mbcs.h MBCS: convert dmareadlock to mutex 2008-02-07 08:42:25 -08:00
mem.c x86 merge fallout: uml 2007-10-29 07:41:32 -07:00
misc.c Misc: Add possibility to remove misc devices during suspend/resume 2008-02-05 09:44:23 -08:00
mmtimer.c
moxa.c moxa: first pass at termios reporting 2008-02-08 09:22:24 -08:00
mspec.c vm audit: add VM_DONTEXPAND to mmap for drivers that need it 2008-02-04 07:55:38 -08:00
mxser.c Char: mxser, add support for CP-114UL 2008-02-07 08:42:35 -08:00
mxser.h Char: mxser, remove it 2008-02-07 08:42:34 -08:00
n_hdlc.c n_hdlc.c: fix check-after-use 2007-10-17 08:42:55 -07:00
n_r3964.c
n_tty.c n_tty: clean up old code to follow coding style and (mostly) checkpatch 2008-02-08 09:22:25 -08:00
nozomi.c nozomi: finish constification 2008-02-02 15:14:48 -08:00
nsc_gpio.c
nvram.c
nwbutton.c
nwbutton.h
nwflash.c
pc8736x_gpio.c
ppdev.c [PARPORT] Remove unused 'irq' argument from parport irq functions 2007-10-23 19:53:16 -04:00
ps3flash.c
pty.c sysctl: simplify the pty sysctl logic 2007-10-18 14:37:23 -07:00
random.c drivers/char/random.c:write_pool() cond_resched() needed 2008-02-06 10:41:06 -08:00
raw.c
riscom8.c Char: riscom8, remove wakeup and hangup bottomhalves 2008-02-07 08:42:34 -08:00
riscom8.h Char: riscom8, remove wakeup and hangup bottomhalves 2008-02-07 08:42:34 -08:00
riscom8_reg.h
rocket.c rocket: don't let random users reset the controller 2008-02-08 09:22:25 -08:00
rocket.h
rocket_int.h Char: rocket, remove useless macros 2008-02-07 08:42:33 -08:00
rtc.c Fix hpet_(un)register_irq_handler() for emulation 2008-02-29 08:06:37 -08:00
scc.h
scx200_gpio.c
selection.c
ser_a2232.c Amiga serial driver: port_write_mutex fixup 2008-02-06 10:41:08 -08:00
ser_a2232.h
ser_a2232fw.ax
ser_a2232fw.h
serial167.c Char: serial167, remove bottomhalf 2008-02-07 08:42:34 -08:00
snsc.c
snsc.h
snsc_event.c
sonypi.c Sonypi: use synchronize_irq instead of sycnronize_sched 2007-11-21 14:16:38 -05:00
specialix.c specialix.c: fix possible double-unlock 2008-03-04 16:35:10 -08:00
specialix_io8.h Char: specialix, remove bottomhalves 2008-02-07 08:42:34 -08:00
stallion.c Char: stallion, remove bottomhalf 2008-02-07 08:42:34 -08:00
sx.c Use helpers to obtain task pid in printks 2007-10-19 11:53:43 -07:00
sx.h Char: char/serial, remove SERIAL_TYPE_NORMAL redefines 2008-02-07 08:42:33 -08:00
sxboards.h
sxwindow.h
synclink.c synclink: standardize format of linux header file include's with "<>" 2008-02-06 10:41:06 -08:00
synclink_gt.c synclink_gt fix missed serial input signal changes 2008-02-06 10:41:06 -08:00
synclinkmp.c synclink: standardize format of linux header file include's with "<>" 2008-02-06 10:41:06 -08:00
sysrq.c pid namespaces: define is_global_init() and is_container_init() 2007-10-19 11:53:37 -07:00
tb0219.c
tlclk.c
toshiba.c drivers/char/: Spelling fixes 2008-02-03 17:11:42 +02:00
tty_audit.c tty_audit: fix checkpatch complaint 2008-02-08 09:22:25 -08:00
tty_io.c tty_io: drag screaming into coding style compliance 2008-02-08 09:22:25 -08:00
tty_ioctl.c tty_ioctl: drag screaming into compliance with the coding style 2008-02-08 09:22:25 -08:00
vc_screen.c
viocons.c
viotape.c
virtio_console.c virtio: simplify config mechanism. 2008-02-04 23:49:57 +11:00
vme_scc.c
vr41xx_giu.c
vt.c VT notifier fix for VT switch 2008-03-04 16:35:11 -08:00
vt_ioctl.c add CONFIG_VT_UNICODE 2007-10-17 08:42:56 -07:00