oops is when suspending ide-default driver
Hello,
I've got an ide cdrom on my system, which uses the ide-cd module. If I try to suspend the system when the ide-cd module is not loaded, kernel oopses:
[<c01f4e26>] start_request+0x11c/0x25e [<c01f51b1>] ide_do_request+0x226/0x3f7 [<c01f59d3>] ide_do_drive_cmd+0xd1/0x126 [<c01fdd18>] generic_ide_suspend+0x82/0x8f [<c01e7b23>] suspend_device+0x77/0xbd [<c01e7bc4>] device_suspend+0x5b/0x76 [<c012e58c>] suspend_prepare+0x44/0x91 [<c012e654>] enter_state+0x42/0x77 [<c0124c66>] sys_reboot+0x2e0/0x33d [<c013f7d4>] handle_mm_fault+0xd8/0x169 [<c0113f22>] do_page_fault+0x25e/0x4a4 [<c01d09d7>] write_chan+0x0/0x224 [<c01cb44f>] tty_write+0x0/0x2f2 [<c014c3cb>] vfs_write+0xba/0x10c [<c014c4b9>] sys_write+0x3f/0x5d [<c0113cc4>] do_page_fault+0x0/0x4a4 [<c0109117>] syscall_call+0x7/0xb
If found out with some printk that it is because the DRIVER(drive)->start_power_step pointer is NULL is start_request when called with the ide-default subdriver.
As soon as I load ide-cd, there's no oops anymore. I guess the fix might be not to run the suspend stuff if the driver has no start_power_step defined.
Regards,
Sylvain Pasche