Bug 13420 - NULL pointer dereference after hard-resetting a usb-connected iPod
Summary: NULL pointer dereference after hard-resetting a usb-connected iPod
Status: RESOLVED INVALID
Alias: None
Product: Drivers
Classification: Unclassified
Component: USB (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Greg Kroah-Hartman
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-01 11:54 UTC by Dariush Forouher
Modified: 2012-02-22 21:07 UTC (History)
0 users

See Also:
Kernel Version: 2.6.30-rc7
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Dariush Forouher 2009-06-01 11:54:12 UTC
Platform: Dell Latidude D630
Arch: x86_64
OS: Debian Stable/Unstable

I own an iPod which once in a while hangs itself when I connect it to
my laptop (I don't know if details matter here, it's an older device and quite possibly buggy).

Jun  1 13:11:54 polaris kernel: [11800.823139] usb 2-3: new high speed USB device using ehci_hcd and address 4
Jun  1 13:11:54 polaris kernel: [11800.942218] usb 2-3: configuration #1 chosen from 2 choices
Jun  1 13:11:54 polaris kernel: [11800.946501] scsi5 : SCSI emulation for USB Mass Storage devices
Jun  1 13:11:54 polaris kernel: [11800.947928] usb-storage: device found at 4
Jun  1 13:11:54 polaris kernel: [11800.947934] usb-storage: waiting for device to settle before scanning
Jun  1 13:11:59 polaris kernel: [11805.948327] usb-storage: device scan complete
Jun  1 13:11:59 polaris kernel: [11805.949683] scsi 5:0:0:0: Direct-Access     Apple    iPod             1.62 PQ: 0 ANSI: 0
Jun  1 13:11:59 polaris kernel: [11805.955498] sd 5:0:0:0: Attached scsi generic sg1 type 0



After noticing that the iPod has hung I tried disconnecting the iPod and plugging it back in...


Jun  1 13:13:17 polaris kernel: [11883.745786] usb 2-3: USB disconnect, address 4
Jun  1 13:13:17 polaris kernel: [11883.746689] sd 5:0:0:0: [sdb] READ CAPACITY failed
Jun  1 13:13:17 polaris kernel: [11883.746696] sd 5:0:0:0: [sdb] Result: hostbyte=0x07 driverbyte=0x00
Jun  1 13:13:17 polaris kernel: [11883.746706] sd 5:0:0:0: [sdb] Sense not available.
Jun  1 13:13:17 polaris kernel: [11883.746914] sd 5:0:0:0: [sdb] Write Protect is off
Jun  1 13:13:17 polaris kernel: [11883.746921] sd 5:0:0:0: [sdb] Mode Sense: 00 00 00 00
Jun  1 13:13:17 polaris kernel: [11883.746927] sd 5:0:0:0: [sdb] Assuming drive cache: write through
Jun  1 13:13:17 polaris kernel: [11883.747372] sd 5:0:0:0: [sdb] Attached SCSI removable disk
Jun  1 13:13:26 polaris kernel: [11892.489161] usb 2-3: new high speed USB device using ehci_hcd and address 5
Jun  1 13:13:26 polaris kernel: [11892.606346] usb 2-3: configuration #1 chosen from 2 choices
Jun  1 13:13:26 polaris kernel: [11892.607038] scsi6 : SCSI emulation for USB Mass Storage devices
Jun  1 13:13:26 polaris kernel: [11892.607858] usb-storage: device found at 5
Jun  1 13:13:26 polaris kernel: [11892.607864] usb-storage: waiting for device to settle before scanning
Jun  1 13:13:31 polaris kernel: [11897.607428] usb-storage: device scan complete
Jun  1 13:13:31 polaris kernel: [11897.608329] scsi 6:0:0:0: Direct-Access     Apple    iPod             1.62 PQ: 0 ANSI: 0
Jun  1 13:13:31 polaris kernel: [11897.610034] sd 6:0:0:0: Attached scsi generic sg1 type 0


... but the iPod still hung. So i hard-resetted it while it was still connected to the laptop. Oops:


Jun  1 13:13:48 polaris kernel: [11915.124766] usb 2-3: USB disconnect, address 5
Jun  1 13:13:48 polaris kernel: [11915.126638] BUG: unable to handle kernel NULL pointer dereference at 00000000000000b8
Jun  1 13:13:48 polaris kernel: [11915.126651] IP: [<ffffffff8056219e>] device_del+0xe/0x1d0
Jun  1 13:13:48 polaris kernel: [11915.126670] PGD 0
Jun  1 13:13:48 polaris kernel: [11915.126677] Oops: 0000 [#1] SMP
Jun  1 13:13:48 polaris kernel: [11915.126685] last sysfs file: /sys/devices/pci0000:00/0000:00:1d.2/pools
Jun  1 13:13:48 polaris kernel: [11915.126692] CPU 1
Jun  1 13:13:48 polaris kernel: [11915.126697] Modules linked in: vboxnetflt vboxdrv dell_laptop
Jun  1 13:13:48 polaris kernel: [11915.126714] Pid: 339, comm: khubd Not tainted 2.6.30-rc7 #1 Latitude D630
Jun  1 13:13:48 polaris kernel: [11915.126721] RIP: 0010:[<ffffffff8056219e>]  [<ffffffff8056219e>] device_del+0xe/0x1d0
Jun  1 13:13:48 polaris kernel: [11915.126734] RSP: 0018:ffff88007f1fba80  EFLAGS: 00010282
Jun  1 13:13:48 polaris kernel: [11915.126740] RAX: ffffffff80580840 RBX: 0000000000000000 RCX: 00000000ffffffff
Jun  1 13:13:48 polaris kernel: [11915.126746] RDX: ffff880072d51168 RSI: ffffffff80579600 RDI: 0000000000000010
Jun  1 13:13:48 polaris kernel: [11915.126752] RBP: ffff88007f1fbaa0 R08: 0000000000000000 R09: 0000000000000000
Jun  1 13:13:48 polaris kernel: [11915.126759] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000010
Jun  1 13:13:48 polaris kernel: [11915.126765] R13: 0000000000000010 R14: ffff880069f2f828 R15: ffff880072d54000
Jun  1 13:13:48 polaris kernel: [11915.126772] FS:  0000000000000000(0000) GS:ffff88000141d000(0000) knlGS:0000000000000000
Jun  1 13:13:48 polaris kernel: [11915.126779] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
Jun  1 13:13:48 polaris kernel: [11915.126785] CR2: 00000000000000b8 CR3: 0000000000201000 CR4: 00000000000006e0
Jun  1 13:13:48 polaris kernel: [11915.126791] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Jun  1 13:13:48 polaris kernel: [11915.126798] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Jun  1 13:13:48 polaris kernel: [11915.126805] Process khubd (pid: 339, threadinfo ffff88007f1fa000, task ffff88007f17d6a0)
Jun  1 13:13:48 polaris kernel: [11915.126810] Stack:
Jun  1 13:13:48 polaris kernel: [11915.126814]  0000000000000000 ffff880072d51168 0000000000000010 ffff880069f2f828
Jun  1 13:13:48 polaris kernel: [11915.126826]  ffff88007f1fbad0 ffffffff8058086a 0000000000000004 ffff880072d51168
Jun  1 13:13:48 polaris kernel: [11915.126840]  ffffffff80abefc8 ffffffff80abe2a0 ffff88007f1fbaf0 ffffffff8057dd12
Jun  1 13:13:48 polaris kernel: [11915.126856] Call Trace:
Jun  1 13:13:48 polaris kernel: [11915.126862]  [<ffffffff8058086a>] sd_remove+0x2a/0x80
Jun  1 13:13:48 polaris kernel: [11915.126873]  [<ffffffff8057dd12>] scsi_bus_remove+0x42/0x50
Jun  1 13:13:48 polaris kernel: [11915.126883]  [<ffffffff80564992>] __device_release_driver+0x72/0xc0
Jun  1 13:13:48 polaris kernel: [11915.126893]  [<ffffffff80564ac8>] device_release_driver+0x28/0x40
Jun  1 13:13:48 polaris kernel: [11915.126902]  [<ffffffff80563e40>] bus_remove_device+0xb0/0xf0
Jun  1 13:13:48 polaris kernel: [11915.126911]  [<ffffffff805622c8>] device_del+0x138/0x1d0
Jun  1 13:13:48 polaris kernel: [11915.126921]  [<ffffffff8057e0a3>] __scsi_remove_device+0x53/0x90
Jun  1 13:13:48 polaris kernel: [11915.126930]  [<ffffffff8057afc5>] scsi_forget_host+0x75/0x80
Jun  1 13:13:48 polaris kernel: [11915.126942]  [<ffffffff80574277>] scsi_remove_host+0x77/0x130
Jun  1 13:13:48 polaris kernel: [11915.126951]  [<ffffffff8061e62a>] quiesce_and_remove_host+0x7a/0xd0
Jun  1 13:13:48 polaris kernel: [11915.126963]  [<ffffffff8061e758>] usb_stor_disconnect+0x18/0x30
Jun  1 13:13:48 polaris kernel: [11915.126973]  [<ffffffff80604942>] usb_unbind_interface+0x62/0x170
Jun  1 13:13:48 polaris kernel: [11915.126986]  [<ffffffff80564992>] __device_release_driver+0x72/0xc0
Jun  1 13:13:48 polaris kernel: [11915.126995]  [<ffffffff80564ac8>] device_release_driver+0x28/0x40
Jun  1 13:13:48 polaris kernel: [11915.127004]  [<ffffffff80563e40>] bus_remove_device+0xb0/0xf0
Jun  1 13:13:48 polaris kernel: [11915.127013]  [<ffffffff805622c8>] device_del+0x138/0x1d0
Jun  1 13:13:48 polaris kernel: [11915.127022]  [<ffffffff806015d5>] usb_disable_device+0xa5/0x130
Jun  1 13:13:48 polaris kernel: [11915.127032]  [<ffffffff805fc1db>] usb_disconnect+0xbb/0x130
Jun  1 13:13:48 polaris kernel: [11915.127042]  [<ffffffff805fd0df>] hub_thread+0x3ef/0x13e0
Jun  1 13:13:48 polaris kernel: [11915.127051]  [<ffffffff8026bdbd>] ? trace_hardirqs_on+0xd/0x10
Jun  1 13:13:48 polaris kernel: [11915.127066]  [<ffffffff8080da0f>] ? _spin_unlock_irqrestore+0x3f/0x60
Jun  1 13:13:48 polaris kernel: [11915.127079]  [<ffffffff8025aea0>] ? autoremove_wake_function+0x0/0x40
Jun  1 13:13:48 polaris kernel: [11915.127091]  [<ffffffff805fccf0>] ? hub_thread+0x0/0x13e0
Jun  1 13:13:48 polaris kernel: [11915.127100]  [<ffffffff805fccf0>] ? hub_thread+0x0/0x13e0
Jun  1 13:13:48 polaris kernel: [11915.127109]  [<ffffffff8025aac6>] kthread+0x56/0x90
Jun  1 13:13:48 polaris kernel: [11915.127118]  [<ffffffff8020c43a>] child_rip+0xa/0x20
Jun  1 13:13:48 polaris kernel: [11915.127131]  [<ffffffff8020be3c>] ? restore_args+0x0/0x30
Jun  1 13:13:48 polaris kernel: [11915.127141]  [<ffffffff8025aa70>] ? kthread+0x0/0x90
Jun  1 13:13:48 polaris kernel: [11915.127150]  [<ffffffff8020c430>] ? child_rip+0x0/0x20
Jun  1 13:13:48 polaris kernel: [11915.127160] Code: 48 83 c4 08 5b 41 5c 41 5d 41 5e 41 5f c9 c3 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 56 41 55 41 54 49 89 f
c 53 <48> 8b 87 a8 00 00 00 4c 8b 37 48 85 c0 74 18 48 8b 78 70 4c 89
Jun  1 13:13:48 polaris kernel: [11915.127263] RIP  [<ffffffff8056219e>] device_del+0xe/0x1d0
Jun  1 13:13:48 polaris kernel: [11915.127263]  RSP <ffff88007f1fba80>
Jun  1 13:13:48 polaris kernel: [11915.127263] CR2: 00000000000000b8
Jun  1 13:13:48 polaris kernel: [11915.127329] ---[ end trace cc2ced89cc82911f ]---
Jun  1 13:13:48 polaris kernel: [11915.130236] sd 6:0:0:0: [sdb] READ CAPACITY failed
Jun  1 13:13:48 polaris kernel: [11915.130246] sd 6:0:0:0: [sdb] Result: hostbyte=0x01 driverbyte=0x00
Jun  1 13:13:48 polaris kernel: [11915.130256] sd 6:0:0:0: [sdb] Sense not available.
Jun  1 13:13:48 polaris kernel: [11915.130299] sd 6:0:0:0: [sdb] Write Protect is off
Jun  1 13:13:48 polaris kernel: [11915.130306] sd 6:0:0:0: [sdb] Mode Sense: 00 00 00 00
Jun  1 13:13:48 polaris kernel: [11915.130312] sd 6:0:0:0: [sdb] Assuming drive cache: write through
Jun  1 13:13:48 polaris kernel: [11915.130582] sd 6:0:0:0: [sdb] Attached SCSI removable disk



I observed this bug twice during the last month (the other time was with 2.6.30-rc4 I think). The bug seems to happen reliably once the iPod has hung it self. But since the bug in the iPod isn't easy to trigger, I can't reproduce the NULL dererefence repeatedly at the moment. 

ciao
Dariush
Comment 1 Andrew Morton 2009-06-02 04:48:07 UTC
(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).


On Mon, 1 Jun 2009 11:54:13 GMT bugzilla-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=13420
> 
>            Summary: NULL pointer dereference after hard-resetting a
>                     usb-connected iPod
>            Product: Drivers
>            Version: 2.5
>     Kernel Version: 2.6.30-rc7
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: USB
>         AssignedTo: greg@kroah.com
>         ReportedBy: dariush@forouher.de
>         Regression: No
> 

scsi and USB core conspired to get a NULL pointer passed into
device_del() and the driver core wasn't robust enough to handle it.

Kay: if you have time: driver do this rather a lot and it would be good
if we could bullet-proof the core a bit more to handle these bugs more
gracefully.

The trace is horridly wordwrapped.  I'll see if I can get that fixed,
after the bugzilla guys have repsonded to my previous emails.  Sigh.

It would help if someone could work out if this is a scsi bug or a USB
bug so we can assign it appropriately, thanks.

> Platform: Dell Latidude D630
> Arch: x86_64
> OS: Debian Stable/Unstable
> 
> I own an iPod which once in a while hangs itself when I connect it to
> my laptop (I don't know if details matter here, it's an older device and
> quite
> possibly buggy).
> 
> Jun  1 13:11:54 polaris kernel: [11800.823139] usb 2-3: new high speed USB
> device using ehci_hcd and address 4
> Jun  1 13:11:54 polaris kernel: [11800.942218] usb 2-3: configuration #1
> chosen
> from 2 choices
> Jun  1 13:11:54 polaris kernel: [11800.946501] scsi5 : SCSI emulation for USB
> Mass Storage devices
> Jun  1 13:11:54 polaris kernel: [11800.947928] usb-storage: device found at 4
> Jun  1 13:11:54 polaris kernel: [11800.947934] usb-storage: waiting for
> device
> to settle before scanning
> Jun  1 13:11:59 polaris kernel: [11805.948327] usb-storage: device scan
> complete
> Jun  1 13:11:59 polaris kernel: [11805.949683] scsi 5:0:0:0: Direct-Access    
> Apple    iPod             1.62 PQ: 0 ANSI: 0
> Jun  1 13:11:59 polaris kernel: [11805.955498] sd 5:0:0:0: Attached scsi
> generic sg1 type 0
> 
> 
> 
> After noticing that the iPod has hung I tried disconnecting the iPod and
> plugging it back in...
> 
> 
> Jun  1 13:13:17 polaris kernel: [11883.745786] usb 2-3: USB disconnect,
> address
> 4
> Jun  1 13:13:17 polaris kernel: [11883.746689] sd 5:0:0:0: [sdb] READ
> CAPACITY
> failed
> Jun  1 13:13:17 polaris kernel: [11883.746696] sd 5:0:0:0: [sdb] Result:
> hostbyte=0x07 driverbyte=0x00
> Jun  1 13:13:17 polaris kernel: [11883.746706] sd 5:0:0:0: [sdb] Sense not
> available.
> Jun  1 13:13:17 polaris kernel: [11883.746914] sd 5:0:0:0: [sdb] Write
> Protect
> is off
> Jun  1 13:13:17 polaris kernel: [11883.746921] sd 5:0:0:0: [sdb] Mode Sense:
> 00
> 00 00 00
> Jun  1 13:13:17 polaris kernel: [11883.746927] sd 5:0:0:0: [sdb] Assuming
> drive
> cache: write through
> Jun  1 13:13:17 polaris kernel: [11883.747372] sd 5:0:0:0: [sdb] Attached
> SCSI
> removable disk
> Jun  1 13:13:26 polaris kernel: [11892.489161] usb 2-3: new high speed USB
> device using ehci_hcd and address 5
> Jun  1 13:13:26 polaris kernel: [11892.606346] usb 2-3: configuration #1
> chosen
> from 2 choices
> Jun  1 13:13:26 polaris kernel: [11892.607038] scsi6 : SCSI emulation for USB
> Mass Storage devices
> Jun  1 13:13:26 polaris kernel: [11892.607858] usb-storage: device found at 5
> Jun  1 13:13:26 polaris kernel: [11892.607864] usb-storage: waiting for
> device
> to settle before scanning
> Jun  1 13:13:31 polaris kernel: [11897.607428] usb-storage: device scan
> complete
> Jun  1 13:13:31 polaris kernel: [11897.608329] scsi 6:0:0:0: Direct-Access    
> Apple    iPod             1.62 PQ: 0 ANSI: 0
> Jun  1 13:13:31 polaris kernel: [11897.610034] sd 6:0:0:0: Attached scsi
> generic sg1 type 0
> 
> 
> ... but the iPod still hung. So i hard-resetted it while it was still
> connected
> to the laptop. Oops:
> 
> 
> Jun  1 13:13:48 polaris kernel: [11915.124766] usb 2-3: USB disconnect,
> address
> 5
> Jun  1 13:13:48 polaris kernel: [11915.126638] BUG: unable to handle kernel
> NULL pointer dereference at 00000000000000b8
> Jun  1 13:13:48 polaris kernel: [11915.126651] IP: [<ffffffff8056219e>]
> device_del+0xe/0x1d0
> Jun  1 13:13:48 polaris kernel: [11915.126670] PGD 0
> Jun  1 13:13:48 polaris kernel: [11915.126677] Oops: 0000 [#1] SMP
> Jun  1 13:13:48 polaris kernel: [11915.126685] last sysfs file:
> /sys/devices/pci0000:00/0000:00:1d.2/pools
> Jun  1 13:13:48 polaris kernel: [11915.126692] CPU 1
> Jun  1 13:13:48 polaris kernel: [11915.126697] Modules linked in: vboxnetflt
> vboxdrv dell_laptop
> Jun  1 13:13:48 polaris kernel: [11915.126714] Pid: 339, comm: khubd Not
> tainted 2.6.30-rc7 #1 Latitude D630
> Jun  1 13:13:48 polaris kernel: [11915.126721] RIP: 0010:[<ffffffff8056219e>] 
> [<ffffffff8056219e>] device_del+0xe/0x1d0
> Jun  1 13:13:48 polaris kernel: [11915.126734] RSP: 0018:ffff88007f1fba80 
> EFLAGS: 00010282
> Jun  1 13:13:48 polaris kernel: [11915.126740] RAX: ffffffff80580840 RBX:
> 0000000000000000 RCX: 00000000ffffffff
> Jun  1 13:13:48 polaris kernel: [11915.126746] RDX: ffff880072d51168 RSI:
> ffffffff80579600 RDI: 0000000000000010
> Jun  1 13:13:48 polaris kernel: [11915.126752] RBP: ffff88007f1fbaa0 R08:
> 0000000000000000 R09: 0000000000000000
> Jun  1 13:13:48 polaris kernel: [11915.126759] R10: 0000000000000001 R11:
> 0000000000000001 R12: 0000000000000010
> Jun  1 13:13:48 polaris kernel: [11915.126765] R13: 0000000000000010 R14:
> ffff880069f2f828 R15: ffff880072d54000
> Jun  1 13:13:48 polaris kernel: [11915.126772] FS:  0000000000000000(0000)
> GS:ffff88000141d000(0000) knlGS:0000000000000000
> Jun  1 13:13:48 polaris kernel: [11915.126779] CS:  0010 DS: 0018 ES: 0018
> CR0:
> 000000008005003b
> Jun  1 13:13:48 polaris kernel: [11915.126785] CR2: 00000000000000b8 CR3:
> 0000000000201000 CR4: 00000000000006e0
> Jun  1 13:13:48 polaris kernel: [11915.126791] DR0: 0000000000000000 DR1:
> 0000000000000000 DR2: 0000000000000000
> Jun  1 13:13:48 polaris kernel: [11915.126798] DR3: 0000000000000000 DR6:
> 00000000ffff0ff0 DR7: 0000000000000400
> Jun  1 13:13:48 polaris kernel: [11915.126805] Process khubd (pid: 339,
> threadinfo ffff88007f1fa000, task ffff88007f17d6a0)
> Jun  1 13:13:48 polaris kernel: [11915.126810] Stack:
> Jun  1 13:13:48 polaris kernel: [11915.126814]  0000000000000000
> ffff880072d51168 0000000000000010 ffff880069f2f828
> Jun  1 13:13:48 polaris kernel: [11915.126826]  ffff88007f1fbad0
> ffffffff8058086a 0000000000000004 ffff880072d51168
> Jun  1 13:13:48 polaris kernel: [11915.126840]  ffffffff80abefc8
> ffffffff80abe2a0 ffff88007f1fbaf0 ffffffff8057dd12
> Jun  1 13:13:48 polaris kernel: [11915.126856] Call Trace:
> Jun  1 13:13:48 polaris kernel: [11915.126862]  [<ffffffff8058086a>]
> sd_remove+0x2a/0x80
> Jun  1 13:13:48 polaris kernel: [11915.126873]  [<ffffffff8057dd12>]
> scsi_bus_remove+0x42/0x50
> Jun  1 13:13:48 polaris kernel: [11915.126883]  [<ffffffff80564992>]
> __device_release_driver+0x72/0xc0
> Jun  1 13:13:48 polaris kernel: [11915.126893]  [<ffffffff80564ac8>]
> device_release_driver+0x28/0x40
> Jun  1 13:13:48 polaris kernel: [11915.126902]  [<ffffffff80563e40>]
> bus_remove_device+0xb0/0xf0
> Jun  1 13:13:48 polaris kernel: [11915.126911]  [<ffffffff805622c8>]
> device_del+0x138/0x1d0
> Jun  1 13:13:48 polaris kernel: [11915.126921]  [<ffffffff8057e0a3>]
> __scsi_remove_device+0x53/0x90
> Jun  1 13:13:48 polaris kernel: [11915.126930]  [<ffffffff8057afc5>]
> scsi_forget_host+0x75/0x80
> Jun  1 13:13:48 polaris kernel: [11915.126942]  [<ffffffff80574277>]
> scsi_remove_host+0x77/0x130
> Jun  1 13:13:48 polaris kernel: [11915.126951]  [<ffffffff8061e62a>]
> quiesce_and_remove_host+0x7a/0xd0
> Jun  1 13:13:48 polaris kernel: [11915.126963]  [<ffffffff8061e758>]
> usb_stor_disconnect+0x18/0x30
> Jun  1 13:13:48 polaris kernel: [11915.126973]  [<ffffffff80604942>]
> usb_unbind_interface+0x62/0x170
> Jun  1 13:13:48 polaris kernel: [11915.126986]  [<ffffffff80564992>]
> __device_release_driver+0x72/0xc0
> Jun  1 13:13:48 polaris kernel: [11915.126995]  [<ffffffff80564ac8>]
> device_release_driver+0x28/0x40
> Jun  1 13:13:48 polaris kernel: [11915.127004]  [<ffffffff80563e40>]
> bus_remove_device+0xb0/0xf0
> Jun  1 13:13:48 polaris kernel: [11915.127013]  [<ffffffff805622c8>]
> device_del+0x138/0x1d0
> Jun  1 13:13:48 polaris kernel: [11915.127022]  [<ffffffff806015d5>]
> usb_disable_device+0xa5/0x130
> Jun  1 13:13:48 polaris kernel: [11915.127032]  [<ffffffff805fc1db>]
> usb_disconnect+0xbb/0x130
> Jun  1 13:13:48 polaris kernel: [11915.127042]  [<ffffffff805fd0df>]
> hub_thread+0x3ef/0x13e0
> Jun  1 13:13:48 polaris kernel: [11915.127051]  [<ffffffff8026bdbd>] ?
> trace_hardirqs_on+0xd/0x10
> Jun  1 13:13:48 polaris kernel: [11915.127066]  [<ffffffff8080da0f>] ?
> _spin_unlock_irqrestore+0x3f/0x60
> Jun  1 13:13:48 polaris kernel: [11915.127079]  [<ffffffff8025aea0>] ?
> autoremove_wake_function+0x0/0x40
> Jun  1 13:13:48 polaris kernel: [11915.127091]  [<ffffffff805fccf0>] ?
> hub_thread+0x0/0x13e0
> Jun  1 13:13:48 polaris kernel: [11915.127100]  [<ffffffff805fccf0>] ?
> hub_thread+0x0/0x13e0
> Jun  1 13:13:48 polaris kernel: [11915.127109]  [<ffffffff8025aac6>]
> kthread+0x56/0x90
> Jun  1 13:13:48 polaris kernel: [11915.127118]  [<ffffffff8020c43a>]
> child_rip+0xa/0x20
> Jun  1 13:13:48 polaris kernel: [11915.127131]  [<ffffffff8020be3c>] ?
> restore_args+0x0/0x30
> Jun  1 13:13:48 polaris kernel: [11915.127141]  [<ffffffff8025aa70>] ?
> kthread+0x0/0x90
> Jun  1 13:13:48 polaris kernel: [11915.127150]  [<ffffffff8020c430>] ?
> child_rip+0x0/0x20
> Jun  1 13:13:48 polaris kernel: [11915.127160] Code: 48 83 c4 08 5b 41 5c 41
> 5d
> 41 5e 41 5f c9 c3 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 56
> 41 55 41 54 49 89 f
> c 53 <48> 8b 87 a8 00 00 00 4c 8b 37 48 85 c0 74 18 48 8b 78 70 4c 89
> Jun  1 13:13:48 polaris kernel: [11915.127263] RIP  [<ffffffff8056219e>]
> device_del+0xe/0x1d0
> Jun  1 13:13:48 polaris kernel: [11915.127263]  RSP <ffff88007f1fba80>
> Jun  1 13:13:48 polaris kernel: [11915.127263] CR2: 00000000000000b8
> Jun  1 13:13:48 polaris kernel: [11915.127329] ---[ end trace
> cc2ced89cc82911f
> ]---
> Jun  1 13:13:48 polaris kernel: [11915.130236] sd 6:0:0:0: [sdb] READ
> CAPACITY
> failed
> Jun  1 13:13:48 polaris kernel: [11915.130246] sd 6:0:0:0: [sdb] Result:
> hostbyte=0x01 driverbyte=0x00
> Jun  1 13:13:48 polaris kernel: [11915.130256] sd 6:0:0:0: [sdb] Sense not
> available.
> Jun  1 13:13:48 polaris kernel: [11915.130299] sd 6:0:0:0: [sdb] Write
> Protect
> is off
> Jun  1 13:13:48 polaris kernel: [11915.130306] sd 6:0:0:0: [sdb] Mode Sense:
> 00
> 00 00 00
> Jun  1 13:13:48 polaris kernel: [11915.130312] sd 6:0:0:0: [sdb] Assuming
> drive
> cache: write through
> Jun  1 13:13:48 polaris kernel: [11915.130582] sd 6:0:0:0: [sdb] Attached
> SCSI
> removable disk
> 
> 
> 
> I observed this bug twice during the last month (the other time was with
> 2.6.30-rc4 I think). The bug seems to happen reliably once the iPod has hung
> it
> self. But since the bug in the iPod isn't easy to trigger, I can't reproduce
> the NULL dererefence repeatedly at the moment. 
>
Comment 2 Dariush Forouher 2009-06-02 07:01:07 UTC
Andrew Morton schrieb:
> 
> (switched to email.  Please respond via emailed reply-to-all, not via the
> bugzilla web interface).
> 
> 
> On Mon, 1 Jun 2009 11:54:13 GMT bugzilla-daemon@bugzilla.kernel.org wrote:
> 
>> http://bugzilla.kernel.org/show_bug.cgi?id=13420
>>
>>            Summary: NULL pointer dereference after hard-resetting a
>>                     usb-connected iPod
>>            Product: Drivers
>>            Version: 2.5
>>     Kernel Version: 2.6.30-rc7
>>           Platform: All
>>         OS/Version: Linux
>>               Tree: Mainline
>>             Status: NEW
>>           Severity: normal
>>           Priority: P1
>>          Component: USB
>>         AssignedTo: greg@kroah.com
>>         ReportedBy: dariush@forouher.de
>>         Regression: No
>>
> 
> scsi and USB core conspired to get a NULL pointer passed into
> device_del() and the driver core wasn't robust enough to handle it.
> 
> Kay: if you have time: driver do this rather a lot and it would be good
> if we could bullet-proof the core a bit more to handle these bugs more
> gracefully.
> 
> The trace is horridly wordwrapped.  I'll see if I can get that fixed,
> after the bugzilla guys have repsonded to my previous emails.  Sigh.
>
> It would help if someone could work out if this is a scsi bug or a USB
> bug so we can assign it appropriately, thanks.

Here's the same backtrace with better formatting.

ciao
Dariush

Jun  1 13:13:48 polaris kernel: [11915.124766] usb 2-3: USB disconnect, address 5
Jun  1 13:13:48 polaris kernel: [11915.126638] BUG: unable to handle kernel NULL pointer dereference at 00000000000000b8
Jun  1 13:13:48 polaris kernel: [11915.126651] IP: [<ffffffff8056219e>] device_del+0xe/0x1d0
Jun  1 13:13:48 polaris kernel: [11915.126670] PGD 0
Jun  1 13:13:48 polaris kernel: [11915.126677] Oops: 0000 [#1] SMP
Jun  1 13:13:48 polaris kernel: [11915.126685] last sysfs file: /sys/devices/pci0000:00/0000:00:1d.2/pools
Jun  1 13:13:48 polaris kernel: [11915.126692] CPU 1
Jun  1 13:13:48 polaris kernel: [11915.126697] Modules linked in: vboxnetflt vboxdrv dell_laptop
Jun  1 13:13:48 polaris kernel: [11915.126714] Pid: 339, comm: khubd Not tainted 2.6.30-rc7 #1 Latitude D630
Jun  1 13:13:48 polaris kernel: [11915.126721] RIP: 0010:[<ffffffff8056219e>]  [<ffffffff8056219e>] device_del+0xe/0x1d0
Jun  1 13:13:48 polaris kernel: [11915.126734] RSP: 0018:ffff88007f1fba80  EFLAGS: 00010282
Jun  1 13:13:48 polaris kernel: [11915.126740] RAX: ffffffff80580840 RBX: 0000000000000000 RCX: 00000000ffffffff
Jun  1 13:13:48 polaris kernel: [11915.126746] RDX: ffff880072d51168 RSI: ffffffff80579600 RDI: 0000000000000010
Jun  1 13:13:48 polaris kernel: [11915.126752] RBP: ffff88007f1fbaa0 R08: 0000000000000000 R09: 0000000000000000
Jun  1 13:13:48 polaris kernel: [11915.126759] R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000010
Jun  1 13:13:48 polaris kernel: [11915.126765] R13: 0000000000000010 R14: ffff880069f2f828 R15: ffff880072d54000
Jun  1 13:13:48 polaris kernel: [11915.126772] FS:  0000000000000000(0000) GS:ffff88000141d000(0000) knlGS:0000000000000000
Jun  1 13:13:48 polaris kernel: [11915.126779] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
Jun  1 13:13:48 polaris kernel: [11915.126785] CR2: 00000000000000b8 CR3: 0000000000201000 CR4: 00000000000006e0
Jun  1 13:13:48 polaris kernel: [11915.126791] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Jun  1 13:13:48 polaris kernel: [11915.126798] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Jun  1 13:13:48 polaris kernel: [11915.126805] Process khubd (pid: 339, threadinfo ffff88007f1fa000, task ffff88007f17d6a0)
Jun  1 13:13:48 polaris kernel: [11915.126810] Stack:
Jun  1 13:13:48 polaris kernel: [11915.126814]  0000000000000000 ffff880072d51168 0000000000000010 ffff880069f2f828
Jun  1 13:13:48 polaris kernel: [11915.126826]  ffff88007f1fbad0 ffffffff8058086a 0000000000000004 ffff880072d51168
Jun  1 13:13:48 polaris kernel: [11915.126840]  ffffffff80abefc8 ffffffff80abe2a0 ffff88007f1fbaf0 ffffffff8057dd12
Jun  1 13:13:48 polaris kernel: [11915.126856] Call Trace:
Jun  1 13:13:48 polaris kernel: [11915.126862]  [<ffffffff8058086a>] sd_remove+0x2a/0x80
Jun  1 13:13:48 polaris kernel: [11915.126873]  [<ffffffff8057dd12>] scsi_bus_remove+0x42/0x50
Jun  1 13:13:48 polaris kernel: [11915.126883]  [<ffffffff80564992>] __device_release_driver+0x72/0xc0
Jun  1 13:13:48 polaris kernel: [11915.126893]  [<ffffffff80564ac8>] device_release_driver+0x28/0x40
Jun  1 13:13:48 polaris kernel: [11915.126902]  [<ffffffff80563e40>] bus_remove_device+0xb0/0xf0
Jun  1 13:13:48 polaris kernel: [11915.126911]  [<ffffffff805622c8>] device_del+0x138/0x1d0
Jun  1 13:13:48 polaris kernel: [11915.126921]  [<ffffffff8057e0a3>] __scsi_remove_device+0x53/0x90
Jun  1 13:13:48 polaris kernel: [11915.126930]  [<ffffffff8057afc5>] scsi_forget_host+0x75/0x80
Jun  1 13:13:48 polaris kernel: [11915.126942]  [<ffffffff80574277>] scsi_remove_host+0x77/0x130
Jun  1 13:13:48 polaris kernel: [11915.126951]  [<ffffffff8061e62a>] quiesce_and_remove_host+0x7a/0xd0
Jun  1 13:13:48 polaris kernel: [11915.126963]  [<ffffffff8061e758>] usb_stor_disconnect+0x18/0x30
Jun  1 13:13:48 polaris kernel: [11915.126973]  [<ffffffff80604942>] usb_unbind_interface+0x62/0x170
Jun  1 13:13:48 polaris kernel: [11915.126986]  [<ffffffff80564992>] __device_release_driver+0x72/0xc0
Jun  1 13:13:48 polaris kernel: [11915.126995]  [<ffffffff80564ac8>] device_release_driver+0x28/0x40
Jun  1 13:13:48 polaris kernel: [11915.127004]  [<ffffffff80563e40>] bus_remove_device+0xb0/0xf0
Jun  1 13:13:48 polaris kernel: [11915.127013]  [<ffffffff805622c8>] device_del+0x138/0x1d0
Jun  1 13:13:48 polaris kernel: [11915.127022]  [<ffffffff806015d5>] usb_disable_device+0xa5/0x130
Jun  1 13:13:48 polaris kernel: [11915.127032]  [<ffffffff805fc1db>] usb_disconnect+0xbb/0x130
Jun  1 13:13:48 polaris kernel: [11915.127042]  [<ffffffff805fd0df>] hub_thread+0x3ef/0x13e0
Jun  1 13:13:48 polaris kernel: [11915.127051]  [<ffffffff8026bdbd>] ? trace_hardirqs_on+0xd/0x10
Jun  1 13:13:48 polaris kernel: [11915.127066]  [<ffffffff8080da0f>] ? _spin_unlock_irqrestore+0x3f/0x60
Jun  1 13:13:48 polaris kernel: [11915.127079]  [<ffffffff8025aea0>] ? autoremove_wake_function+0x0/0x40
Jun  1 13:13:48 polaris kernel: [11915.127091]  [<ffffffff805fccf0>] ? hub_thread+0x0/0x13e0
Jun  1 13:13:48 polaris kernel: [11915.127100]  [<ffffffff805fccf0>] ? hub_thread+0x0/0x13e0
Jun  1 13:13:48 polaris kernel: [11915.127109]  [<ffffffff8025aac6>] kthread+0x56/0x90
Jun  1 13:13:48 polaris kernel: [11915.127118]  [<ffffffff8020c43a>] child_rip+0xa/0x20
Jun  1 13:13:48 polaris kernel: [11915.127131]  [<ffffffff8020be3c>] ? restore_args+0x0/0x30
Jun  1 13:13:48 polaris kernel: [11915.127141]  [<ffffffff8025aa70>] ? kthread+0x0/0x90
Jun  1 13:13:48 polaris kernel: [11915.127150]  [<ffffffff8020c430>] ? child_rip+0x0/0x20
Jun  1 13:13:48 polaris kernel: [11915.127160] Code: 48 83 c4 08 5b 41 5c 41 5d 41 5e 41 5f c9 c3 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 56 41 55 41 54 49 89 f
c 53 <48> 8b 87 a8 00 00 00 4c 8b 37 48 85 c0 74 18 48 8b 78 70 4c 89
Jun  1 13:13:48 polaris kernel: [11915.127263] RIP  [<ffffffff8056219e>] device_del+0xe/0x1d0
Jun  1 13:13:48 polaris kernel: [11915.127263]  RSP <ffff88007f1fba80>
Jun  1 13:13:48 polaris kernel: [11915.127263] CR2: 00000000000000b8
Jun  1 13:13:48 polaris kernel: [11915.127329] ---[ end trace cc2ced89cc82911f ]---
Jun  1 13:13:48 polaris kernel: [11915.130236] sd 6:0:0:0: [sdb] READ CAPACITY failed
Jun  1 13:13:48 polaris kernel: [11915.130246] sd 6:0:0:0: [sdb] Result: hostbyte=0x01 driverbyte=0x00
Jun  1 13:13:48 polaris kernel: [11915.130256] sd 6:0:0:0: [sdb] Sense not available.
Jun  1 13:13:48 polaris kernel: [11915.130299] sd 6:0:0:0: [sdb] Write Protect is off
Jun  1 13:13:48 polaris kernel: [11915.130306] sd 6:0:0:0: [sdb] Mode Sense: 00 00 00 00
Jun  1 13:13:48 polaris kernel: [11915.130312] sd 6:0:0:0: [sdb] Assuming drive cache: write through
Jun  1 13:13:48 polaris kernel: [11915.130582] sd 6:0:0:0: [sdb] Attached SCSI removable disk
Comment 3 Greg Kroah-Hartman 2009-06-02 14:18:40 UTC
On Mon, Jun 01, 2009 at 09:48:01PM -0700, Andrew Morton wrote:
> Kay: if you have time: driver do this rather a lot and it would be good
> if we could bullet-proof the core a bit more to handle these bugs more
> gracefully.

This should be fixed in 2.6.30-rc8 by making the driver core more robust
in this type of problem.  It will still spit out a big tracedump if it
happens, so that will be good to see what is going on.

thanks,

greg k-h
Comment 4 Alan Stern 2009-06-02 15:07:51 UTC
On Mon, 1 Jun 2009, Greg KH wrote:

> On Mon, Jun 01, 2009 at 09:48:01PM -0700, Andrew Morton wrote:
> > Kay: if you have time: driver do this rather a lot and it would be good
> > if we could bullet-proof the core a bit more to handle these bugs more
> > gracefully.
> 
> This should be fixed in 2.6.30-rc8 by making the driver core more robust
> in this type of problem.  It will still spit out a big tracedump if it
> happens, so that will be good to see what is going on.

It's better to remove these problems at the source.  The two attached 
patches should take care of it.

Alan Stern
Comment 5 Greg Kroah-Hartman 2012-02-22 21:07:27 UTC
All USB bugs should be sent to the linux-usb@vger.kernel.org mailing 
list, and not entered into bugzilla.  Please bring this issue up there,
if it is still a problem in the latest kernel release.

Note You need to log in before you can comment on or make changes to this bug.