mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-02 21:20:42 -05:00
We must unregister from SCSI before we unmap device resources and unhook
the IRQ handler. Otherwise, SCSI may send us more requests, and we won't
be able to handle them.
I see the following oops during every reboot of my HP DL360:
...
Unmounting local filesystems...done.
Rebooting... Completed flushing cache on controller 0
BUG: unable to handle kernel paging request at virtual address f8808040
printing eip:
c02dc72b
*pde = 02120067
*pte = 00000000
Oops: 0002 [#1]
SMP
Modules linked in:
CPU: 1
EIP: 0060:[<c02dc72b>] Not tainted VLI
EFLAGS: 00010046 (2.6.21-rc6 #1)
EIP is at SA5_submit_command+0xb/0x20
eax: f8808000 ebx: f7a00000 ecx: f79f0000 edx: 37a00000
esi: f79f0000 edi: 00000000 ebp: 00000000 esp: dd717a44
ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0068
Process khelper (pid: 1427, ti=dd716000 task=c2260a70 task.ti=dd716000)
Stack: c02df2c0 f7a00000 f7a00000 00d41008 c02df691 00000000 00000010 00000002
00000001 f79f0000 f7fff844 c1398420 00000000 00000000 00001000 230a3020
69666564 5420656e 50434f49 465f544b 4853554c 44414552 0a312009 66656423
Call Trace:
[<c02df2c0>] start_io+0x80/0x120
[<c02df691>] do_cciss_request+0x331/0x350
[<c014242a>] mempool_alloc+0x2a/0xe0
[<c020ad71>] blk_alloc_request+0x61/0x80
[<c020b02e>] get_request+0x15e/0x1e0
[<c01595e0>] cache_alloc_refill+0xb0/0x1e0
[<c021049d>] as_update_rq+0x2d/0x80
[<c0210d28>] as_add_request+0x68/0x90
[<c0207f99>] elv_insert+0x119/0x160
[<c020bd0b>] __make_request+0xcb/0x320
[<c0122ee0>] lock_timer_base+0x20/0x50
[<c0123096>] del_timer+0x56/0x60
[<c020a7b8>] blk_remove_plug+0x38/0x70
[<c020a815>] __generic_unplug_device+0x25/0x30
[<c020a835>] generic_unplug_device+0x15/0x30
...
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Acked-by: Mike Miller <mike.miller@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>