public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Oops after unloading staging/panel/panel.ko
@ 2010-07-07  1:13 Peter Hüwe
  2010-07-07  1:38 ` Peter Hüwe
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Hüwe @ 2010-07-07  1:13 UTC (permalink / raw)
  To: devel; +Cc: Willy Tarreau, linux-kernel, kernel-testers, Greg Kroah-Hartman

Hi,

I just tried to get the driver working with my lcd display (hd44780 
compatible) and the kernel oops'ed - but unfortunately I can't figure out why.

Steps to reproduce:
1) compile panel driver with
CONFIG_PANEL=m
CONFIG_PANEL_PARPORT=0
CONFIG_PANEL_PROFILE=0
CONFIG_PANEL_KEYPAD=0
CONFIG_PANEL_LCD=1
CONFIG_PANEL_LCD_HEIGHT=2
CONFIG_PANEL_LCD_WIDTH=20
CONFIG_PANEL_LCD_BWIDTH=40
CONFIG_PANEL_LCD_HWIDTH=64
CONFIG_PANEL_LCD_CHARSET=1
CONFIG_PANEL_LCD_PROTO=0
CONFIG_PANEL_LCD_PIN_E=6
CONFIG_PANEL_LCD_PIN_RS=4
CONFIG_PANEL_LCD_PIN_RW=5
CONFIG_PANEL_LCD_PIN_BL=0
CONFIG_PANEL_CHANGE_MESSAGE=y
CONFIG_PANEL_BOOT_MESSAGE="TEST"

2) modprobe ppdev; modprobe parport_pc; insmod panel.ko #nothing is displayed 
on lcd :/
3) echo "abc" > /dev/lcd
4) rmmod panel.ko
5) wait approximately 20sec -> kernel oops

I managed to get a (atleast partial) trace of the oops using netconsole:

parport0: PC-style at 0x378, irq 7 [PCSPP(,...)]
Panel driver version 0.9.5 registered on parport0 (io=0x378).
parport0: panel tried to release parport when not owner
BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
IP: [<ffffffff8110213b>] __journal_clean_checkpoint_list+0x31/0x89
PGD 13ba35067 PUD 13bf67067 PMD 0 
Oops: 0000 [#1] SMP 
last sysfs file: /sys/devices/platform/w83627ehf.656/in8_input
CPU 1 
Modules linked in: parport_pc ppdev netconsole parport w83627ehf vboxnetflt 
vboxnetadp vboxdrv fglrx(P) i2c_piix4 [last unloaded: panel]

Pid: 1992, comm: kjournald Tainted: P           2.6.34 #1 939A785GMH/128M/To 
Be Filled By O.E.M.
RIP: 0010:[<ffffffff8110213b>]  [<ffffffff8110213b>] 
__journal_clean_checkpoint_list+0x31/0x89
RSP: 0000:ffff88010af47d20  EFLAGS: 00010282
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: ffff88013fe00cf0 RSI: ffff88010af47d34 RDI: 0000000000000000
RBP: 0000000000000000 R08: ffff88010af46000 R09: ffff88013fc8a6a0
R10: 00007fffeda29c30 R11: 0000000000000001 R12: ffff88010af47fd8
R13: 0000000000000000 R14: 0000000000000000 R15: ffff88010af47d34
FS:  00007f888881a700(0000) GS:ffff880001900000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000040 CR3: 0000000135cb5000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process kjournald (pid: 1992, threadinfo ffff88010af46000, task 
ffff88013fe00cf0)
Stack:
 0000000000000000 0000000000000000 0000000000000400 ffff880105afc3e8
 [<ffffffff81104036>] ? kjournald+0xde/0x222
 [<ffffffff8104673c>] ? autoremove_wake_function+0x0/0x2e
 [<ffffffff81103f58>] ? kjournald+0x0/0x222
 [<ffffffff81046379>] ? kthread+0x79/0x81
 [<ffffffff81002c14>] ? kernel_thread_helper+0x4/0x10
 [<ffffffff81046300>] ? kthread+0x0/0x81
 [<ffffffff81002c10>] ? kernel_thread_helper+0x0/0x10
Code: 31 ec 60 5f 80 8d 89 24 00 4c 6b fe 41  [<ffffffff8110213b>] 
__journal_clean_checkpoint_list+0x31/0x89
 RSP <ffff88010af47d20>
CR2: 0000000000000040
---[ end trace e7cd6b60c2caaf05 ]---
 vboxnetadp vboxdrv fglrx(P) i2c_piix4 [last unloaded: panel]

Pid: 5559, comm: firefox Tainted: P      D    2.6.34 #1 939A785GMH/128M/To Be 
Filled By O.E.M.
RIP: 0010:[<ffffffff813b3feb>]  [<ffffffff813b3feb>] _raw_spin_lock+0xa/0x15
RSP: 0018:ffff8801155bfc60  EFLAGS: 00000297
RAX: 0000000000003837 RBX: ffff88013e29c400 RCX: 0000000000002000
RDX: ffff88011571c050 RSI: ffff880129d0c3d8 RDI: ffff88013e29c424
RBP: ffffffff810027ce R08: fffffffffffffff4 R09: 0000000000000000
R10: ffff8801155bfe48 R11: 0000000000000000 R12: 000000000000000b
R13: ffff880132466a78 R14: 0000000000000001 R15: 0000000000000000
FS:  00007fa56ee49720(0000) GS:ffff880001800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f1a7d4f0000 CR3: 000000011c0c1000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process firefox (pid: 5559, threadinfo ffff8801155be000, task 
ffff88011571c050)
Stack:
 ffffffff81100435 ffff8801155bfcb0

Seems like the driver registers something that gets called periodically, but 
forgets to unregister this?


Would be great if anyone can help me fixing this issue.

Thanks,
Peter







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

* Re: Oops after unloading staging/panel/panel.ko
  2010-07-07  1:13 Oops after unloading staging/panel/panel.ko Peter Hüwe
@ 2010-07-07  1:38 ` Peter Hüwe
  2010-07-07  2:50   ` Peter Hüwe
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Hüwe @ 2010-07-07  1:38 UTC (permalink / raw)
  To: devel; +Cc: kernel-testers, Greg Kroah-Hartman, Willy Tarreau, linux-kernel

Here is another oops trace caused by the same problem.
This time I inserted the module using

# insmod panel.ko parport=0 lcd_height=2 lcd_width=20 lcd_charset=1 lcd_type=5 
lcd_e_pin=1 lcd_rs_pin=14 lcd_rw_pin=0

parport_pc 00:09: reported by Plug and Play ACPI
parport0: PC-style at 0x378, irq 7 [PCSPP(,...)]
ppdev: user-space parallel port driver
Panel driver version 0.9.5 registered on parport0 (io=0x378).
parport0: panel tried to release parport when not owner
BUG: unable to handle kernel NULL pointer dereference at 0000000000000081
IP: [<ffffffffa024f6cf>] parport_register_device+0x25/0x26b [parport]
PGD 13446d067 PUD 134652067 PMD 0 
Oops: 0000 [#1] SMP 
last sysfs file: /sys/devices/platform/w83627ehf.656/in8_input
CPU 0 
Modules linked in: panel(+) ppdev parport_pc parport netconsole w83627ehf 
vboxnetflt vboxnetadp vboxdrv i2c_piix4 fglrx(P) [last unloaded: panel]

Pid: 6744, comm: insmod Tainted: P           2.6.34 #1 939A785GMH/128M/To Be 
Filled By O.E.M.
RIP: 0010:[<ffffffffa024f6cf>]  [<ffffffffa024f6cf>] 
parport_register_device+0x25/0x26b [parport]
RSP: 0018:ffff8801342efe88  EFLAGS: 00010296
RAX: 0000000000000001 RBX: ffff88013d58cc00 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffffa027c83d RDI: ffff88013d58cc00
RBP: ffff88013d58cc00 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000002 R11: ffff88013427e5d0 R12: ffffffffa027c83d
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
FS:  00007f63473a8700(0000) GS:ffff880001800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000081 CR3: 000000013446c000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process insmod (pid: 6744, threadinfo ffff8801342ee000, task ffff880133a30cf0)
Stack:
 0000000000000000 ffff88013d58cc00 ffffffffa027cf70 0000000000000000
<0> 00007fffcc7ff8cd 0000000001222010 0000000001222080 ffffffffa027bb21
<0> ffffffffa027d3b0 0000000000000000 00000000ffffffff ffff88013d58cc00
Call Trace:
 [<ffffffffa027bb21>] ? panel_attach+0x66/0x2a0 [panel]
 [<ffffffffa024f9c2>] ? parport_register_driver+0x44/0x93 [parport]
 [<ffffffffa0281000>] ? panel_init_module+0x0/0xa [panel]
 [<ffffffffa027b460>] ? panel_init+0x1e1/0x29c [panel]
 [<ffffffff810001e1>] ? do_one_initcall+0x50/0x13d
 [<ffffffff81059688>] ? sys_init_module+0xc5/0x21a
 [<ffffffff81001eeb>] ? system_call_fastpath+0x16/0x1b
Code: 5d e9 fd fd ff ff 41 57 49 89 cf 41 56 49 89 d6 41 55 45 89 cd 41 54 49 
89 f4 55 48 89 fd 53 48 83 ec 08 4c 89 04 24 48 8b 47 40 <f6> 80 80 00 00 00 
02 74 17 48 8b 77 18 31 c0 48 c7 c7 62 17 25 
RIP  [<ffffffffa024f6cf>] parport_register_device+0x25/0x26b [parport]
 RSP <ffff8801342efe88>
CR2: 0000000000000081
---[ end trace be11e64dc4171169 ]---
general protection fault: 0000 [#2] SMP 
last sysfs file: /sys/devices/platform/w83627ehf.656/in8_input
CPU 1 
Modules linked in: panel(+) ppdev parport_pc parport netconsole w83627ehf 
vboxnetflt vboxnetadp vboxdrv i2c_piix4 fglrx(P) [last unloaded: panel]

Pid: 6746, comm: notification-da Tainted: P      D    2.6.34 #1 
939A785GMH/128M/To Be Filled By O.E.M.
RIP: 0010:[<ffffffff8115cb4a>]  [<ffffffff8115cb4a>] shm_fault+0x16/0x19
RSP: 0000:ffff8801343a1d30  EFLAGS: 00010292
RAX: ffffffff810da2b1 RBX: 0000000000000000 RCX: ffff880133fccfd0
RDX: 00007f783f43f000 RSI: ffff8801343a1d78 RDI: ffff880133af3090
RBP: 0000000000000001 R08: 0000000000000002 R09: 0000000000000001
R10: 0000000000000000 R11: 30247c8d4850ec83 R12: ffff8801340911f8
R13: 0000000000000006 R14: ffff880133af3090 R15: ffff880133af3090
FS:  00007f784a874760(0000) GS:ffff880001900000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f783f43f000 CR3: 0000000134652000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process notification-da (pid: 6746, threadinfo ffff8801343a0000, task 
ffff880135ad26a0)
Stack:
 ffffffff8107ec09 0000000000000000 ffff880133fccfd0 00007f783f43f000
<0> ffff880133a70200 ffff880007182780 ffff8801343a1f50 ffffffff81304993
<0> ffffffff81097caa 0000100000000001 0000000000000002 00007f783f43f000
Call Trace:
 [<ffffffff8107ec09>] ? __do_fault+0x56/0x432
 [<ffffffff81304993>] ? sock_aio_write+0x0/0x10b
 [<ffffffff81097caa>] ? do_sync_readv_writev+0x9a/0xde
 [<ffffffff81080fca>] ? handle_mm_fault+0x45f/0x856
 [<ffffffff813b6eee>] ? do_page_fault+0x338/0x35c
 [<ffffffff8109838f>] ? do_readv_writev+0x183/0x198
 [<ffffffff813b44df>] ? page_fault+0x1f/0x30
Code: 00 c7 87 f0 00 00 00 00 00 00 00 48 83 c7 08 e9 2e d9 ff ff 90 48 8b 87 
90 00 00 00 48 8b 80 98 00 00 00 48 8b 40 18 4c 8b 58 10 <41> ff e3 48 8b 87 
98 00 00 00 48 8b 78 10 48 8b 47 20 48 8b 40 
RIP  [<ffffffff8115cb4a>] shm_fault+0x16/0x19
 RSP <ffff8801343a1d30>
---[ end trace be11e64dc417116a ]---
BUG: unable to handle kernel paging request at 00000002dead00a0
IP: [<ffffffff813b3636>] down_write+0x16/0x27
PGD 0 
Oops: 0002 [#3] SMP 
last sysfs file: /sys/devices/platform/w83627ehf.656/in8_input
CPU 1 
Modules linked in: panel(+) ppdev parport_pc parport netconsole w83627ehf 
vboxnetflt vboxnetadp vboxdrv i2c_piix4 fglrx(P) [last unloaded: panel]

Pid: 6746, comm: notification-da Tainted: P      D    2.6.34 #1 
939A785GMH/128M/To Be Filled By O.E.M.
RIP: 0010:[<ffffffff813b3636>]  [<ffffffff813b3636>] down_write+0x16/0x27
RSP: 0018:ffff8801343a1b18  EFLAGS: 00010246
RAX: 00000002dead00a0 RBX: 00000002dead00a0 RCX: ffff880133a70260
RDX: ffffffff00000001 RSI: ffff880133df71e0 RDI: 00000002dead00a0
RBP: 00000002dead0000 R08: ffff880133df71e0 R09: ffff880133df71e0
R10: ffff88000190d3d0 R11: ffff88000190e3a8 R12: 00000002dead00a0
R13: ffff880133a70260 R14: ffff8801339e8840 R15: 000000000000000b
FS:  00007f784a874760(0000) GS:ffff880001900000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000002dead00a0 CR3: 00000000015a9000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process notification-da (pid: 6746, threadinfo ffff8801343a0000, task 
ffff880135ad26a0)
Stack:
 ffff880133b1fe00 ffffffff8115ce1f ffff880133af3090 ffff880133ebf330
<0> ffff880133a70200 ffffffff8108480e ffff880133a70260 ffff88000190d3d0
<0> ffff880133af3090 ffffffff8108494f 00000000000003de ffff88000190d3d0
Call Trace:
 [<ffffffff8115ce1f>] ? shm_close+0x25/0x9f
 [<ffffffff8108480e>] ? remove_vma+0x2c/0x61
 [<ffffffff8108494f>] ? exit_mmap+0x10c/0x12a
 [<ffffffff81031ddf>] ? mmput+0x2b/0xcd
 [<ffffffff810356e1>] ? exit_mm+0x111/0x11c
 [<ffffffff813b3650>] ? down_read+0x9/0x19
 [<ffffffff8103703b>] ? do_exit+0x1f9/0x66a
 [<ffffffff810349e4>] ? kmsg_dump+0x99/0x12a
 [<ffffffff813b4f6f>] ? oops_end+0x86/0x8b
 [<ffffffff813b44af>] ? general_protection+0x1f/0x30
 [<ffffffff810da2b1>] ? loadavg_proc_show+0x0/0xc0
 [<ffffffff8115cb4a>] ? shm_fault+0x16/0x19
 [<ffffffff8107ec09>] ? __do_fault+0x56/0x432
 [<ffffffff81304993>] ? sock_aio_write+0x0/0x10b
 [<ffffffff81097caa>] ? do_sync_readv_writev+0x9a/0xde
 [<ffffffff81080fca>] ? handle_mm_fault+0x45f/0x856
 [<ffffffff813b6eee>] ? do_page_fault+0x338/0x35c
 [<ffffffff8109838f>] ? do_readv_writev+0x183/0x198
 [<ffffffff813b44df>] ? page_fault+0x1f/0x30
Code: 85 c0 89 c2 7e 05 ba fc fd ff ff 48 83 c4 78 48 63 c2 5b 5d c3 53 48 89 
fb e8 5d f2 ff ff 48 ba 01 00 00 00 ff ff ff ff 48 89 d8 <f0> 48 0f c1 10 48 
85 d2 74 05 e8 8b e9 dc ff 5b c3 53 48 89 fb 
RIP  [<ffffffff813b3636>] down_write+0x16/0x27
 RSP <ffff8801343a1b18>
CR2: 00000002dead00a0
---[ end trace be11e64dc417116b ]---
Fixing recursive fault but reboot is needed!

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

* Re: Oops after unloading staging/panel/panel.ko
  2010-07-07  1:38 ` Peter Hüwe
@ 2010-07-07  2:50   ` Peter Hüwe
  0 siblings, 0 replies; 3+ messages in thread
From: Peter Hüwe @ 2010-07-07  2:50 UTC (permalink / raw)
  To: devel; +Cc: linux-kernel, kernel-testers, Greg Kroah-Hartman, Willy Tarreau

Am Mittwoch 07 Juli 2010 03:38:49 schrieb Peter Hüwe:
> Here is another oops trace caused by the same problem.

I think I've tracked it down.

parport_release and parport_unregister_device get called twice while unloading 
the module - after the first call the handle isn't valid anymore and thus 
causes the oops.

I'll send a patch soon.

Peter

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

end of thread, other threads:[~2010-07-07  2:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-07  1:13 Oops after unloading staging/panel/panel.ko Peter Hüwe
2010-07-07  1:38 ` Peter Hüwe
2010-07-07  2:50   ` Peter Hüwe

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