Richard Röjfors
03eac7bb88
uartlite: fix crash when using as console
Move the ulite_console_setup to the .devinit section since it might be
called on probe, which is in devinit. Fixes the crash below where the
uartlite hw is probed after the .init section is freed from the kernel.
uartlite: ttyUL0 at MMIO 0xc8000100 (irq = 30) is a uartlite
BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<c176720e>] ulite_console_setup+0x6f/0xa8
*pdpt = 0000000036fb0001 *pde = 0000000000000000
Oops: 0000 [#1] PREEMPT SMP
last sysfs file: /sys/devices/pci0000:00/0000:00:1f.1/host0/uevent
Modules linked in: puffin(+) serio_raw
Pid: 151, comm: modprobe Not tainted (2.6.31.5-1.0.b1-b1 #1) POULSBO
EIP: 0060:[<c176720e>] EFLAGS: 00010246 CPU: 0
EIP is at ulite_console_setup+0x6f/0xa8
EAX: c16ec824 EBX: c16ec824 ECX: c176719f EDX: 00000000
ESI: 00000000 EDI: c17b42c4 EBP: f6fd1cf0 ESP: f6fd1cd8
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process modprobe (pid: 151, ti=f6fd0000 task=f6fa1020 task.ti=f6fd0000)
Stack:
c1031f51 00000000 00000000 00000246 c182237c f7742000 f6fd1d5c c11fd316
<0> c16ec85c f77420d4 0000001e 00000000 00000000 c1633e78 4f494d4d 63783020
<0> 30303038 00303031 f6fd1d3c c10e0786 f6fd1d48 00000000 f6fd1d48 00000000
Call Trace:
[<c1031f51>] ? register_console+0xf6/0x1fc
[<c11fd316>] ? uart_add_one_port+0x237/0x2bb
[<c10e0786>] ? sysfs_add_one+0x13/0xd3
[<c10e142f>] ? sysfs_do_create_link+0xba/0xfc
[<c146f200>] ? ulite_probe+0x198/0x1eb
[<c12064ee>] ? platform_drv_probe+0xc/0xe
[<c120597b>] ? driver_probe_device+0x79/0x105
[<c1205a8e>] ? __device_attach+0x28/0x30
[<c120511f>] ? bus_for_each_drv+0x3d/0x67
[<c1205af9>] ? device_attach+0x44/0x58
[<c1205a66>] ? __device_attach+0x0/0x30
[<c1204fb8>] ? bus_probe_device+0x1f/0x34
[<c1203e68>] ? device_add+0x385/0x4c0
[<c148491f>] ? _write_unlock+0x8/0x1f
[<c1206aac>] ? platform_device_add+0xd9/0x11c
[<c120c685>] ? mfd_add_devices+0x165/0x1bc
[<f831b378>] ? puffin_probe+0x2d0/0x390 [puffin]
[<c11a08ef>] ? pci_match_device+0xa0/0xa7
[<c11a07bc>] ? local_pci_probe+0xe/0x10
[<c11a11db>] ? pci_device_probe+0x43/0x66
[<c120597b>] ? driver_probe_device+0x79/0x105
[<c1205a4a>] ? __driver_attach+0x43/0x5f
[<c120535d>] ? bus_for_each_dev+0x3d/0x67
[<c1205852>] ? driver_attach+0x14/0x16
[<c1205a07>] ? __driver_attach+0x0/0x5f
[<c1204dea>] ? bus_add_driver+0xf9/0x220
[<c1205c8f>] ? driver_register+0x8b/0xeb
[<c11a1518>] ? __pci_register_driver+0x43/0x9f
[<c10477ef>] ? __blocking_notifier_call_chain+0x40/0x4c
[<f831f000>] ? puffin_init+0x0/0x48 [puffin]
[<f831f017>] ? puffin_init+0x17/0x48 [puffin]
[<c1001139>] ? do_one_initcall+0x4c/0x131
[<c105607b>] ? sys_init_module+0xa7/0x1b7
[<c1002a61>] ? syscall_call+0x7/0xb
Code: 6e 74 00 00 00 92 33 00 00 18 00 0e 01 73 79 6e 63 65 2d 72 65 67 69 73 74 72 79 0c 00 49 32
00 00 14 00 09 01 61 6c 73 61 2d 69 <6e> 66 6f 00 00 00 42 37 00 00 10 00 07 01 6b 69 6c 6c 61 6c 6c
EIP: [<c176720e>] ulite_console_setup+0x6f/0xa8 SS:ESP 0068:f6fd1cd8
CR2: 0000000000000000
Signed-off-by: Richard Röjfors <richard.rojfors@pelagicore.com>
Acked-by: Peter Korsgaard <jacmet@sunsite.dk>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
2010-02-02 18:11:22 -08:00 |
| .. |
|
cpm_uart
|
Fix build of cpm_uart due to core changes
|
2009-09-24 17:01:22 +10:00 |
|
jsm
|
jsm: adding EEH handlers
|
2009-12-11 15:18:03 -08:00 |
|
8250.c
|
Serial: Do not read IIR in serial8250_start_tx when UART_BUG_TXEN
|
2009-12-11 15:18:05 -08:00 |
|
8250.h
|
serial: 8250: add IRQ trigger support
|
2009-09-19 13:13:19 -07:00 |
|
8250_accent.c
|
|
|
|
8250_acorn.c
|
|
|
|
8250_boca.c
|
|
|
|
8250_early.c
|
|
|
|
8250_exar_st16c554.c
|
|
|
|
8250_fourport.c
|
|
|
|
8250_gsc.c
|
|
|
|
8250_hp300.c
|
|
|
|
8250_hub6.c
|
|
|
|
8250_mca.c
|
|
|
|
8250_pci.c
|
serial: add support for the Lava Quattro PCI quad-port 16550A card
|
2009-11-12 07:25:57 -08:00 |
|
8250_pnp.c
|
serial: 8250_pnp: use wildcard for serial Wacom tablets
|
2010-01-20 15:03:27 -08:00 |
|
21285.c
|
ARM: 5874/1: serial21285: fix disable_irq-from-interrupt-handler deadlock
|
2010-01-11 15:39:21 +00:00 |
|
68328serial.c
|
|
|
|
68328serial.h
|
|
|
|
68360serial.c
|
|
|
|
amba-pl010.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
amba-pl011.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
apbuart.c
|
apbuart: Use of_find_node_by_path to find root node.
|
2009-11-13 13:25:06 -08:00 |
|
apbuart.h
|
sparc: Support for GRLIB APBUART serial port
|
2009-11-04 08:44:54 -08:00 |
|
atmel_serial.c
|
atmel_serial: fix bad BUILD_BUG_ON() usage
|
2009-10-29 07:39:30 -07:00 |
|
bcm63xx_uart.c
|
bcm63xx_uart: Fix serial driver compile breakage.
|
2009-11-30 16:38:32 -08:00 |
|
bfin_5xx.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
bfin_sport_uart.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
bfin_sport_uart.h
|
|
|
|
clps711x.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
crisv10.c
|
CRIS: fix defconfig build failure
|
2009-08-31 18:38:16 +02:00 |
|
crisv10.h
|
|
|
|
dz.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
dz.h
|
|
|
|
icom.c
|
icom: convert space to tabs
|
2009-10-01 16:11:15 -07:00 |
|
icom.h
|
|
|
|
imx.c
|
serial: imx: bit &/| confusion
|
2010-01-20 15:03:30 -08:00 |
|
ioc3_serial.c
|
ioc3/ioc4: various section fixes
|
2009-12-15 08:53:27 -08:00 |
|
ioc4_serial.c
|
ioc3/ioc4: fix error path on driver registration
|
2009-12-15 08:53:27 -08:00 |
|
ip22zilog.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
ip22zilog.h
|
|
|
|
Kconfig
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
|
2009-12-09 19:03:16 -08:00 |
|
kgdboc.c
|
|
|
|
m32r_sio.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
m32r_sio.h
|
|
|
|
m32r_sio_reg.h
|
|
|
|
Makefile
|
sparc: Support for GRLIB APBUART serial port
|
2009-11-04 08:44:54 -08:00 |
|
max3100.c
|
spi: prefix modalias with "spi:"
|
2009-09-23 07:39:43 -07:00 |
|
mcf.c
|
m68knommu: move mcf_remove to .devexit.text
|
2009-12-04 11:45:30 +10:00 |
|
mpc52xx_uart.c
|
drivers/serial/mpc52xx_uart.c: Use UPIO_MEM rather than SERIAL_IO_MEM
|
2009-10-15 09:58:28 -06:00 |
|
mpsc.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
msm_serial.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
msm_serial.h
|
|
|
|
mux.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
netx-serial.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
nwpserial.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
of_serial.c
|
tty/of_serial: add missing ns16550a id
|
2009-11-30 16:38:44 -08:00 |
|
pmac_zilog.c
|
serial/pmac_zilog: Workaround problem due to interrupt on closed port
|
2010-01-15 13:26:13 +11:00 |
|
pmac_zilog.h
|
tree-wide: fix assorted typos all over the place
|
2009-12-04 15:39:55 +01:00 |
|
pnx8xxx_uart.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
pxa.c
|
const: constify remaining dev_pm_ops
|
2009-12-15 08:53:25 -08:00 |
|
s3c24a0.c
|
ARM: S3C: Update Simtec copyright statements from , to - [2]
|
2009-12-01 01:33:51 +00:00 |
|
s3c2400.c
|
|
|
|
s3c2410.c
|
ARM: S3C: Update Simtec copyright statements from , to - [2]
|
2009-12-01 01:33:51 +00:00 |
|
s3c2412.c
|
ARM: S3C: Update Simtec copyright statements from , to - [2]
|
2009-12-01 01:33:51 +00:00 |
|
s3c2440.c
|
ARM: S3C: Update Simtec copyright statements from , to - [2]
|
2009-12-01 01:33:51 +00:00 |
|
s3c6400.c
|
|
|
|
sa1100.c
|
ARM: Fix SA1100 Neponset serial section mismatch
|
2009-09-28 18:06:16 +01:00 |
|
samsung.c
|
ARM: S3C: Update Simtec copyright statements from , to - [2]
|
2009-12-01 01:33:51 +00:00 |
|
samsung.h
|
ARM: S3C: Update Simtec copyright statements from , to - [2]
|
2009-12-01 01:33:51 +00:00 |
|
sb1250-duart.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
sc26xx.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
serial_core.c
|
serial: Fix crash if the minimum rate of the device is > 9600 baud
|
2010-01-20 15:03:29 -08:00 |
|
serial_cs.c
|
fmvj18x_cs: add new id (Panasonic lan & modem card)
|
2010-01-23 01:08:52 -08:00 |
|
serial_ks8695.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
serial_lh7a40x.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
serial_txx9.c
|
serial_txx9: use container_of() instead of direct cast
|
2009-10-01 16:11:15 -07:00 |
|
sh-sci.c
|
serial: sh-sci: using correct fifo size for SCIF and SCIFA ports.
|
2010-01-15 08:33:20 +09:00 |
|
sh-sci.h
|
serial: sh-sci: Convert tremaining ctrl_xxx I/O routines to __raw_xxx.
|
2009-12-24 14:52:43 +09:00 |
|
sn_console.c
|
serial: kill off uart_info
|
2009-09-19 13:13:28 -07:00 |
|
suncore.c
|
serial: suncore: Fix RSC/LOM handling in sunserial_console_termios().
|
2009-11-24 14:09:56 -08:00 |
|
suncore.h
|
serial: suncore: Fix RSC/LOM handling in sunserial_console_termios().
|
2009-11-24 14:09:56 -08:00 |
|
sunhv.c
|
serial: suncore: Fix RSC/LOM handling in sunserial_console_termios().
|
2009-11-24 14:09:56 -08:00 |
|
sunsab.c
|
serial: suncore: Fix RSC/LOM handling in sunserial_console_termios().
|
2009-11-24 14:09:56 -08:00 |
|
sunsab.h
|
|
|
|
sunsu.c
|
sunsu: Use sunserial_console_termios() in sunsu_console_setup().
|
2009-11-24 14:12:50 -08:00 |
|
sunzilog.c
|
serial: suncore: Fix RSC/LOM handling in sunserial_console_termios().
|
2009-11-24 14:09:56 -08:00 |
|
sunzilog.h
|
|
|
|
timbuart.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
timbuart.h
|
|
|
|
uartlite.c
|
uartlite: fix crash when using as console
|
2010-02-02 18:11:22 -08:00 |
|
ucc_uart.c
|
firmware_class: make request_firmware_nowait more useful
|
2009-12-11 11:24:52 -08:00 |
|
vr41xx_siu.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
zs.c
|
serial: move delta_msr_wait into the tty_port
|
2009-09-19 13:13:31 -07:00 |
|
zs.h
|
|
|