Em Wednesday 20 February 2008 19:05:50 Herton Ronaldo Krzesinski escreveu:
> Em Wednesday 20 February 2008 17:55:35 Alan Stern escreveu:
> >
> > Maybe with a complete log the cause will be evident. If you want to
> > experiment a little, you could try adding some printk lines to the
> > hub_reset_resume() routine in drivers/usb/core/hub.c. It would be nice
> > to know for sure which branch was taken inside the "if (child) {"
> > block. Another good place to look is in finish_port_resume() in the
> > same source file; does the "if (udev->reset_resume)" test succeed?
>
> Ok, will try this.
I inserted some dev_printk/printk's, I paste here for reference. I went further
trying to debug, so that's why there is more things, I'll explain:
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 68fc521..f365bd4 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1570,8 +1570,10 @@ static int hub_port_wait_reset(struct usb_hub *hub, int
port1,
/* read and decode port status */
ret = hub_port_status(hub, port1, &portstatus, &portchange);
- if (ret < 0)
+ if (ret < 0) {
+ printk("hub_port_wait_reset ret == %d\n", ret);
return ret;
+ }
/* Device went away? */
if (!(portstatus & USB_PORT_STAT_CONNECTION))
@@ -1581,6 +1583,8 @@ static int hub_port_wait_reset(struct usb_hub *hub, int
port1,
if ((portchange & USB_PORT_STAT_C_CONNECTION))
return -ENOTCONN;
+ printk("hub_port_wait_reset successful or delayed\n");
+
/* if we`ve finished resetting, then break out of the loop */
if (!(portstatus & USB_PORT_STAT_RESET) &&
(portstatus & USB_PORT_STAT_ENABLE)) {
@@ -1796,8 +1800,10 @@ static int finish_port_resume(struct usb_device *udev)
* operation is carried out here, after the port has been
* resumed.
*/
- if (udev->reset_resume)
+ if (udev->reset_resume) {
+ dev_printk(KERN_DEBUG, &udev->dev, "finish_port_resume:
udev->reset_resume enabled\n");
status = usb_reset_device(udev);
+ }
/* 10.5.4.5 says be sure devices in the tree are still there.
* For now let's assume the device didn't go crazy on resume,
@@ -2032,12 +2038,14 @@ static int hub_reset_resume(struct usb_interface *intf)
if (child) {
+ dev_printk (KERN_DEBUG, hub->intfdev, "%s: child
TRUE\n", __FUNCTION__);
/* For "USB_PERSIST"-enabled children we must
* mark the child device for reset-resume and
* turn off the connect-change status to prevent
* khubd from disconnecting it later.
*/
if (USB_PERSIST && child->persist_enabled) {
+ dev_printk (KERN_DEBUG, hub->intfdev, "%s:
USB_PERSIST && child->persist_enabled\n", __FUNCTION__);
child->reset_resume = 1;
clear_port_feature(hdev, port1,
USB_PORT_FEAT_C_CONNECTION);
@@ -2047,6 +2055,7 @@ static int hub_reset_resume(struct usb_interface *intf)
* we have to do a "logical" disconnect.
*/
} else {
+ dev_printk (KERN_DEBUG, hub->intfdev, "%s:
hub_port_logical_disconnect\n", __FUNCTION__);
hub_port_logical_disconnect(hub, port1);
}
}
@@ -3064,8 +3073,10 @@ int usb_reset_device(struct usb_device *udev)
if (!parent_hdev->parent && !parent_hub->busy_bits[0])
usb_enable_root_hub_irq(parent_hdev->bus);
- if (ret < 0)
+ if (ret < 0) {
+ dev_dbg(&udev->dev, "usb_reset_device ret == %d\n", ret);
goto re_enumerate;
+ }
/* Device might have changed firmware (DFU or similar) */
if (memcmp(&udev->descriptor, &descriptor, sizeof descriptor)
With this I get this log output:
[ 56.909790] PM: Syncing filesystems ... done.
[ 56.930590] Freezing user space processes ... (elapsed 0.02 seconds) done.
[ 56.951450] Freezing remaining freezable tasks ... (elapsed 0.00 seconds)
done.
[ 56.951811] ACPI: Preparing to enter system sleep state S3
[ 56.952507] Suspending console(s)
[ 57.462787] uhci_hcd 0000:00:1d.1: release dev 2 ep81-INT, period 8, phase
4, 118 us
[ 57.463712] uhci_hcd 0000:00:1d.1: release dev 2 ep82-INT, period 8, phase
4, 118 us
[ 57.466626] usb 3-1: usb suspend
[ 57.476792] usb 1-6: usb suspend
[ 57.487754] usb 1-5: usb suspend
[ 57.498723] usb 1-1: usb suspend
[ 57.509688] hub 3-0:1.0: hub_suspend
[ 57.509701] usb usb3: bus suspend
[ 57.509706] usb usb3: suspend_rh
[ 57.509732] hub 1-0:1.0: hub_suspend
[ 57.509736] usb usb1: bus suspend
[ 57.509740] ehci_hcd 0000:00:1d.7: suspend root hub
[ 57.509776] drm_sysfs_suspend
[ 57.510337] ACPI: PCI interrupt for device 0000:00:02.0 disabled
[ 57.520927] ACPI handle has no context!
[ 57.520954] ACPI handle has no context!
[ 57.531930] ACPI: PCI interrupt for device 0000:00:1e.2 disabled
[ 57.532050] ACPI: PCI interrupt for device 0000:00:1d.7 disabled
[ 57.542596] ehci_hcd 0000:00:1d.7: --> PCI D3/wakeup
[ 57.542625] uhci_hcd 0000:00:1d.3: uhci_suspend
[ 57.542660] ACPI: PCI interrupt for device 0000:00:1d.3 disabled
[ 57.542663] uhci_hcd 0000:00:1d.3: --> PCI D0/legacy
[ 57.542667] uhci_hcd 0000:00:1d.2: uhci_suspend
[ 57.542700] ACPI: PCI interrupt for device 0000:00:1d.2 disabled
[ 57.542703] uhci_hcd 0000:00:1d.2: --> PCI D0/legacy
[ 57.542707] uhci_hcd 0000:00:1d.1: uhci_suspend
[ 57.542739] ACPI: PCI interrupt for device 0000:00:1d.1 disabled
[ 57.542743] uhci_hcd 0000:00:1d.1: --> PCI D0/legacy
[ 57.542746] uhci_hcd 0000:00:1d.0: uhci_suspend
[ 57.542779] ACPI: PCI interrupt for device 0000:00:1d.0 disabled
[ 57.542782] uhci_hcd 0000:00:1d.0: --> PCI D0/legacy
[ 57.542782] Intel machine check architecture supported.
[ 57.542795] Intel machine check reporting enabled on CPU#0.
[ 57.542849] Back to C!
[ 57.572279] PM: Writing back config space on device 0000:00:02.0 at offset 1
(was 900007, writing 900003)
[ 57.591858] PM: Writing back config space on device 0000:00:1c.0 at offset f
(was 20100, writing 2010a)
[ 57.591928] ACPI: PCI Interrupt 0000:00:1c.0[A] -> GSI 16 (level, low) ->
IRQ 16
[ 57.591937] PCI: Setting latency timer of device 0000:00:1c.0 to 64
[ 57.591944] uhci_hcd 0000:00:1d.0: PCI legacy resume
[ 57.591951] ACPI: PCI Interrupt 0000:00:1d.0[A] -> GSI 23 (level, low) ->
IRQ 23
[ 57.591959] PCI: Setting latency timer of device 0000:00:1d.0 to 64
[ 57.591988] uhci_hcd 0000:00:1d.0: uhci_resume
[ 57.591994] uhci_hcd 0000:00:1d.0: uhci_check_and_reset_hc: legsup = 0x0f30
[ 57.591999] uhci_hcd 0000:00:1d.0: Performing full reset
[ 57.592020] usb usb2: root hub lost power or was reset
[ 57.592024] usb usb2: suspend_rh
[ 57.592041] uhci_hcd 0000:00:1d.1: PCI legacy resume
[ 57.592048] ACPI: PCI Interrupt 0000:00:1d.1[B] -> GSI 19 (level, low) ->
IRQ 19
[ 57.592056] PCI: Setting latency timer of device 0000:00:1d.1 to 64
[ 57.592084] uhci_hcd 0000:00:1d.1: uhci_resume
[ 57.592089] uhci_hcd 0000:00:1d.1: uhci_check_and_reset_hc: legsup = 0x0030
[ 57.592093] uhci_hcd 0000:00:1d.1: Performing full reset
[ 57.592113] usb usb3: root hub lost power or was reset
[ 57.592116] usb usb3: suspend_rh
[ 57.592170] uhci_hcd 0000:00:1d.2: PCI legacy resume
[ 57.592179] ACPI: PCI Interrupt 0000:00:1d.2[C] -> GSI 18 (level, low) ->
IRQ 18
[ 57.592188] PCI: Setting latency timer of device 0000:00:1d.2 to 64
[ 57.592216] uhci_hcd 0000:00:1d.2: uhci_resume
[ 57.592221] uhci_hcd 0000:00:1d.2: uhci_check_and_reset_hc: legsup = 0x0030
[ 57.592225] uhci_hcd 0000:00:1d.2: Performing full reset
[ 57.592245] usb usb4: root hub lost power or was reset
[ 57.592249] usb usb4: suspend_rh
[ 57.592264] uhci_hcd 0000:00:1d.3: PCI legacy resume
[ 57.592271] ACPI: PCI Interrupt 0000:00:1d.3[D] -> GSI 16 (level, low) ->
IRQ 16
[ 57.592279] PCI: Setting latency timer of device 0000:00:1d.3 to 64
[ 57.592307] uhci_hcd 0000:00:1d.3: uhci_resume
[ 57.592312] uhci_hcd 0000:00:1d.3: uhci_check_and_reset_hc: legsup = 0x0030
[ 57.592315] uhci_hcd 0000:00:1d.3: Performing full reset
[ 57.592335] usb usb5: root hub lost power or was reset
[ 57.592339] usb usb5: suspend_rh
[ 57.592361] ehci_hcd 0000:00:1d.7: PCI D0, from previous PCI D3
[ 57.603361] ACPI: PCI Interrupt 0000:00:1d.7[A] -> GSI 23 (level, low) ->
IRQ 23
[ 57.603374] PCI: Setting latency timer of device 0000:00:1d.7 to 64
[ 57.603449] PM: Writing back config space on device 0000:00:1e.0 at offset f
(was 20000, writing 200ff)
[ 57.603486] PCI: Setting latency timer of device 0000:00:1e.0 to 64
[ 57.603519] PM: Writing back config space on device 0000:00:1e.2 at offset 1
(was 2900007, writing 2900003)
[ 57.603537] ACPI: PCI Interrupt 0000:00:1e.2[A] -> GSI 17 (level, low) ->
IRQ 17
[ 57.603546] PCI: Setting latency timer of device 0000:00:1e.2 to 64
[ 57.618352] PM: Writing back config space on device 0000:01:00.0 at offset f
(was 100, writing 10a)
[ 57.618367] PM: Writing back config space on device 0000:01:00.0 at offset c
(was 0, writing febc0000)
[ 57.618386] PM: Writing back config space on device 0000:01:00.0 at offset 6
(was 4, writing febff004)
[ 57.618397] PM: Writing back config space on device 0000:01:00.0 at offset 4
(was 1, writing e801)
[ 57.618406] PM: Writing back config space on device 0000:01:00.0 at offset 3
(was 0, writing 10)
[ 57.618417] PM: Writing back config space on device 0000:01:00.0 at offset 1
(was 100000, writing 100007)
[ 57.622332] r8169: eth0: link up
[ 57.629308] ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) ->
IRQ 16
[ 57.630747] usb usb1: usb resume
[ 57.630753] ehci_hcd 0000:00:1d.7: resume root hub
[ 57.641725] hub 1-0:1.0: hub_resume
[ 57.641740] usb usb2: usb resume
[ 57.641744] usb usb2: wakeup_rh
[ 57.673669] hub 2-0:1.0: trying to enable port power on non-switchable hub
[ 57.774471] usb usb3: usb resume
[ 57.774477] usb usb3: wakeup_rh
[ 57.806397] hub 3-0:1.0: trying to enable port power on non-switchable hub
[ 57.907183] hub 3-0:1.0: hub_reset_resume: child TRUE
[ 57.907191] hub 3-0:1.0: hub_reset_resume: USB_PERSIST &&
child->persist_enabled
[ 57.907212] usb usb4: usb resume
[ 57.907216] usb usb4: wakeup_rh
[ 57.939140] hub 4-0:1.0: trying to enable port power on non-switchable hub
[ 58.039917] usb usb5: usb resume
[ 58.039926] usb usb5: wakeup_rh
[ 58.071856] hub 5-0:1.0: trying to enable port power on non-switchable hub
[ 58.172665] ehci_hcd 0000:00:1d.7: GetStatus port 1 status 001803 POWER
sig=j CSC CONNECT
[ 58.183620] usb 1-1: finish reset-resume
[ 58.183627] usb 1-1: finish_port_resume: udev->reset_resume enabled
[ 58.234776] ehci_hcd 0000:00:1d.7: port 1 high speed
[ 58.234785] ehci_hcd 0000:00:1d.7: GetStatus port 1 status 001007 POWER
sig=se0 PE CSC CONNECT
[ 58.234803] usb 1-1: usb_reset_device ret == -107
[ 58.234807] hub 1-0:1.0: logical disconnect on port 1
[ 58.234815] usb 1-1: gone after usb resume? status -19
[ 58.234819] usb 1-1: can't resume, status -19
[ 58.234822] hub 1-0:1.0: logical disconnect on port 1
[ 58.234841] ehci_hcd 0000:00:1d.7: GetStatus port 5 status 001803 POWER
sig=j CSC CONNECT
[ 58.234848] hub 1-0:1.0: port 5 status 0001.0501 after resume, 0
[ 58.234852] usb 1-5: can't resume, status -19
[ 58.234855] hub 1-0:1.0: logical disconnect on port 5
[ 58.234870] ehci_hcd 0000:00:1d.7: GetStatus port 6 status 001803 POWER
sig=j CSC CONNECT
[ 58.234876] hub 1-0:1.0: port 6 status 0001.0501 after resume, 0
[ 58.234880] usb 1-6: can't resume, status -19
[ 58.234883] hub 1-0:1.0: logical disconnect on port 6
[ 58.234900] uhci_hcd 0000:00:1d.1: port 1 portsc 01a9,00
[ 58.245481] usb 3-1: finish reset-resume
[ 58.245486] usb 3-1: finish_port_resume: udev->reset_resume enabled
[ 58.446042] hub_port_wait_reset successful or delayed
[ 58.496879] usb 3-1: reset low speed USB device using uhci_hcd and address 2
[ 58.704322] hub_port_wait_reset successful or delayed
[ 58.772031] usb usb2: suspend_rh (auto-stop)
[ 58.801548] uhci_hcd 0000:00:1d.1: reserve dev 2 ep81-INT, period 8, phase
4, 118 us
[ 58.804451] uhci_hcd 0000:00:1d.1: reserve dev 2 ep82-INT, period 8, phase
4, 118 us
[ 59.017942] usb usb4: suspend_rh (auto-stop)
[ 59.265998] usb usb5: suspend_rh (auto-stop)
[ 59.346796] Restarting tasks ... <7>hub 1-0:1.0: state 7 ports 8 chg 0062
evt 0000
[ 59.347957] hub 1-0:1.0: port 1, status 0501, change 0000, 480 Mb/s
[ 59.348050] usb 1-1: USB disconnect, address 2
[ 59.348135] usb 1-1: unregistering device
[ 59.348219] usb 1-1: usb_disable_device nuking all URBs
[ 59.348312] usb 1-1: unregistering interface 1-1:1.0
[ 59.357092] usb 1-1:1.0: uevent
[ 59.357485] usb 1-1: uevent
[ 59.364468] EXT3-fs error (device sda1): ext3_find_entry: reading directory
#7201 offset 0
[ 59.364810] Buffer I/O error on device sda1, logical block 0
[ 59.364906] lost page write due to I/O error on sda1
[ 59.365485] EXT3-fs error (device sda1): ext3_find_entry: reading directory
#7201 offset 0
[ 59.365779] ------------[ cut here ]------------
[ 59.365868] WARNING: at fs/buffer.c:1184 mark_buffer_dirty+0x5d/0x80()
[ 59.365960] Modules linked in: netconsole af_packet ipv6 snd_seq_oss
snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss binfmt_misc
rtc_cmos rtc_core rtc_lib snd_intel8x0 pcspkr snd_ac97_codec i2c_i801 ac97_bus
i2c_core snd_pcm snd_timer snd snd_page_alloc r8169 battery ac thermal
processor joydev evdev [last unloaded: button]
[ 59.367674] Pid: 2587, comm: dbus-daemon Not tainted 2.6.25-rc2 #21
[ 59.367866] [<c0123444>] warn_on_slowpath+0x54/0x70
[ 59.369294] [<e0185a0c>] ? write_msg+0xcc/0xf0 [netconsole]
[ 59.369515] [<c0123c54>] ? __call_console_drivers+0x54/0x70
[ 59.369701] [<c0123ce9>] ? _call_console_drivers+0x79/0x90
[ 59.369894] [<c0123f19>] ? release_console_sem+0x1d9/0x210
[ 59.370076] [<c0124320>] ? vprintk+0x210/0x3e0
[ 59.370257] [<c0124320>] ? vprintk+0x210/0x3e0
[ 59.370434] [<c0198d9d>] mark_buffer_dirty+0x5d/0x80
[ 59.370571] [<c01c71b6>] ext3_commit_super+0x46/0x70
[ 59.370765] [<c01c7b25>] ext3_handle_error+0x75/0xb0
[ 59.370910] [<c012450b>] ? printk+0x1b/0x20
[ 59.371086] [<c01c7c22>] ext3_error+0x52/0x60
[ 59.371221] [<c01c5788>] ext3_find_entry+0x518/0x670
[ 59.371357] [<c0200cd8>] ? rb_insert_color+0xb8/0xe0
[ 59.371546] [<c0139e6e>] ? hrtimer_start+0x6e/0xf0
[ 59.371769] [<c0376064>] ? schedule+0x2b4/0x460
[ 59.371962] [<c01c628a>] ext3_lookup+0x3a/0xd0
[ 59.378392] [<c017e483>] do_lookup+0x133/0x180
[ 59.378556] [<c017f7ec>] __link_path_walk+0x12c/0xe10
[ 59.378714] [<c030dac9>] ? kfree_skb+0x19/0x30
[ 59.378894] [<c036d24a>] ? unix_stream_recvmsg+0x39a/0x530
[ 59.379082] [<c0180510>] link_path_walk+0x40/0xa0
[ 59.379219] [<c0162049>] ? handle_mm_fault+0xf9/0x5f0
[ 59.379404] [<c0174c31>] ? get_unused_fd_flags+0xc1/0x100
[ 59.379588] [<c0180588>] path_walk+0x18/0x20
[ 59.379766] [<c0180792>] do_path_lookup+0x82/0x1c0
[ 59.379904] [<c0177861>] ? get_empty_filp+0x61/0x130
[ 59.380085] [<c018135d>] __path_lookup_intent_open+0x4d/0x90
[ 59.380223] [<c018141f>] path_lookup_open+0x1f/0x30
[ 59.380354] [<c018151b>] open_namei+0x5b/0x620
[ 59.380484] [<c0153254>] ? unlock_page+0x24/0x30
[ 59.380666] [<c016021d>] ? __do_fault+0x17d/0x3d0
[ 59.380895] [<c0174f6c>] do_filp_open+0x2c/0x50
[ 59.381029] [<c0162049>] ? handle_mm_fault+0xf9/0x5f0
[ 59.381213] [<c0174c31>] ? get_unused_fd_flags+0xc1/0x100
[ 59.381392] [<c0174fd9>] do_sys_open+0x49/0xe0
[ 59.381527] [<c01750ac>] sys_open+0x1c/0x20
[ 59.381660] [<c0104d1e>] sysenter_past_esp+0x5f/0x85
[ 59.381849] [<c0370000>] ? wireless_send_event+0x300/0x330
[ 59.384513] =======================
[ 59.384606] ---[ end trace c3920ae13dfb59b5 ]---
[ 59.384730] Buffer I/O error on device sda1, logical block 0
[ 59.384730] lost page write due to I/O error on sda1
[ 59.385821] input: AT Translated Set 2 keyboard as /class/input/input10
[ 59.395791] done.
[ 59.408060] ehci_hcd 0000:00:1d.7: port 1 high speed
[ 59.408165] ehci_hcd 0000:00:1d.7: GetStatus port 1 status 001005 POWER
sig=se0 PE CONNECT
[ 59.408300] hub_port_wait_reset successful or delayed
[ 59.458789] usb 1-1: new high speed USB device using ehci_hcd and address 6
[ 59.510057] ehci_hcd 0000:00:1d.7: port 1 high speed
[ 59.510163] ehci_hcd 0000:00:1d.7: GetStatus port 1 status 001005 POWER
sig=se0 PE CONNECT
[ 59.510303] hub_port_wait_reset successful or delayed
[ 59.572822] usb 1-1: USB quirks for this device: 2
[ 59.573321] usb 1-1: default language 0x0409
[ 59.573877] usb 1-1: uevent
[ 59.574027] usb 1-1: usb_probe_device
[ 59.574269] usb 1-1: configuration #1 chosen from 1 choice
[ 59.575051] usb 1-1: adding 1-1:1.0 (config #1, interface 0)
[ 59.575230] usb 1-1:1.0: uevent
[ 59.575376] usb-storage 1-1:1.0: usb_probe_interface
[ 59.575479] usb-storage 1-1:1.0: usb_probe_interface - got id
[ 59.584623] scsi1 : SCSI emulation for USB Mass Storage devices
[ 59.586578] drivers/usb/core/inode.c: creating file '006'
[ 59.586755] usb 1-1: New USB device found, idVendor=08ec, idProduct=1000
[ 59.586853] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 59.586953] usb 1-1: Product: uDiskOnChip
[ 59.587033] usb 1-1: Manufacturer: M-Systems
[ 59.587116] usb 1-1: SerialNumber: 0FA14860F30378F8
[ 59.587234] ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001803 POWER
sig=j CSC CONNECT
[ 59.587359] hub 1-0:1.0: port 4, status 0501, change 0001, 480 Mb/s
[ 59.587481] usb-storage: device found at 6
[ 59.587568] usb-storage: waiting for device to settle before scanning
[ 59.690731] hub 1-0:1.0: debounce: port 4: total 100ms stable 100ms status
0x501
[ 59.741902] ehci_hcd 0000:00:1d.7: port 4 high speed
[ 59.742001] ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001005 POWER
sig=se0 PE CONNECT
[ 59.742131] hub_port_wait_reset successful or delayed
[ 59.792718] usb 1-4: new high speed USB device using ehci_hcd and address 7
[ 59.845892] ehci_hcd 0000:00:1d.7: port 4 high speed
[ 59.845992] ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001005 POWER
sig=se0 PE CONNECT
[ 59.846130] hub_port_wait_reset successful or delayed
[ 59.911155] usb 1-4: default language 0x0409
[ 59.915742] usb 1-4: uevent
[ 59.915890] usb 1-4: usb_probe_device
[ 59.916128] usb 1-4: configuration #1 chosen from 1 choice
[ 59.916899] usb 1-4: adding 1-4:1.0 (config #1, interface 0)
[ 59.917077] usb 1-4:1.0: uevent
[ 59.917225] usb-storage 1-4:1.0: usb_probe_interface
[ 59.917329] usb-storage 1-4:1.0: usb_probe_interface - got id
[ 59.926489] scsi2 : SCSI emulation for USB Mass Storage devices
[ 59.928457] drivers/usb/core/inode.c: creating file '007'
[ 59.928601] usb 1-4: New USB device found, idVendor=05e3, idProduct=0715
[ 59.928687] usb 1-4: New USB device strings: Mfr=3, Product=4, SerialNumber=5
[ 59.928783] usb 1-4: Product: USB Reader
[ 59.928868] usb 1-4: Manufacturer: Genesys
[ 59.928949] usb 1-4: SerialNumber: 000000000000
[ 59.929061] hub 1-0:1.0: port 5, status 0501, change 0000, 480 Mb/s
[ 59.929151] usb 1-5: USB disconnect, address 4
[ 59.929240] usb 1-5: unregistering device
[ 59.929317] usb 1-5: usb_disable_device nuking all URBs
[ 59.929412] usb 1-5: unregistering interface 1-5:1.0
[ 59.929994] usb 1-5:1.0: uevent
[ 59.930373] usb 1-5: uevent
[ 59.930557] usb-storage: device found at 7
[ 59.930685] usb-storage: waiting for device to settle before scanning
[ 59.980987] ehci_hcd 0000:00:1d.7: port 5 high speed
[ 59.981092] ehci_hcd 0000:00:1d.7: GetStatus port 5 status 001005 POWER
sig=se0 PE CONNECT
[ 59.981231] hub_port_wait_reset successful or delayed
[ 60.031687] usb 1-5: new high speed USB device using ehci_hcd and address 8
[ 60.100861] ehci_hcd 0000:00:1d.7: port 5 high speed
[ 60.100962] ehci_hcd 0000:00:1d.7: GetStatus port 5 status 001005 POWER
sig=se0 PE CONNECT
[ 60.101095] hub_port_wait_reset successful or delayed
[ 60.256118] usb 1-5: default language 0x0409
[ 60.324542] usb 1-5: uevent
[ 60.324679] usb 1-5: usb_probe_device
[ 60.324925] usb 1-5: configuration #1 chosen from 1 choice
[ 60.340739] usb 1-5: adding 1-5:1.0 (config #1, interface 0)
[ 60.340922] usb 1-5:1.0: uevent
[ 60.356497] drivers/usb/core/inode.c: creating file '008'
[ 60.356658] usb 1-5: New USB device found, idVendor=148f, idProduct=2573
[ 60.356758] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 60.356856] usb 1-5: Product: 802.11 bg WLAN
[ 60.356934] usb 1-5: Manufacturer: Ralink
[ 60.357035] hub 1-0:1.0: port 6, status 0501, change 0000, 480 Mb/s
[ 60.357124] usb 1-6: USB disconnect, address 5
[ 60.357213] usb 1-6: unregistering device
[ 60.357293] usb 1-6: usb_disable_device nuking all URBs
[ 60.357386] usb 1-6: unregistering interface 1-6:1.0
[ 60.357707] usb 1-6:1.0: uevent
[ 60.357845] usb 1-6: unregistering interface 1-6:1.1
[ 60.358010] usb 1-6:1.1: uevent
[ 60.358388] usb 1-6: uevent
[ 60.408826] ehci_hcd 0000:00:1d.7: port 6 high speed
[ 60.408933] ehci_hcd 0000:00:1d.7: GetStatus port 6 status 001005 POWER
sig=se0 PE CONNECT
[ 60.409070] hub_port_wait_reset successful or delayed
[ 60.459623] usb 1-6: new high speed USB device using ehci_hcd and address 9
[ 60.511812] ehci_hcd 0000:00:1d.7: port 6 high speed
[ 60.511913] ehci_hcd 0000:00:1d.7: GetStatus port 6 status 001005 POWER
sig=se0 PE CONNECT
[ 60.512046] hub_port_wait_reset successful or delayed
[ 60.717201] usb 1-6: skipped 1 descriptor after configuration
[ 60.717303] usb 1-6: skipped 5 descriptors after interface
[ 60.717403] usb 1-6: skipped 1 descriptor after endpoint
[ 60.717489] usb 1-6: skipped 9 descriptors after interface
[ 60.718587] usb 1-6: default language 0x0409
[ 60.724245] usb 1-6: uevent
[ 60.724395] usb 1-6: usb_probe_device
[ 60.724678] usb 1-6: configuration #1 chosen from 1 choice
[ 60.725658] usb 1-6: adding 1-6:1.0 (config #1, interface 0)
[ 60.725839] usb 1-6:1.0: uevent
[ 60.727815] usb 1-6: adding 1-6:1.1 (config #1, interface 1)
[ 60.727974] usb 1-6:1.1: uevent
[ 60.728202] drivers/usb/core/inode.c: creating file '009'
[ 60.728334] usb 1-6: New USB device found, idVendor=0ac8, idProduct=c312
[ 60.728426] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 60.728564] usb 1-6: Product: Sirius USB2.0 Camera
[ 60.728652] usb 1-6: Manufacturer: Vimicro Corp.
[ 60.728768] hub 2-0:1.0: state 7 ports 2 chg 0000 evt 0000
[ 60.728886] hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0002
[ 60.728996] hub 4-0:1.0: state 7 ports 2 chg 0000 evt 0000
[ 60.729103] hub 5-0:1.0: state 7 ports 2 chg 0000 evt 0000
[ 62.728258] hub 2-0:1.0: hub_suspend
[ 62.728375] usb usb2: bus auto-suspend
[ 62.728454] usb usb2: suspend_rh
[ 62.728542] hub 4-0:1.0: hub_suspend
[ 62.728620] usb usb4: bus auto-suspend
[ 62.728706] usb usb4: suspend_rh
[ 62.728782] hub 5-0:1.0: hub_suspend
[ 62.728868] usb usb5: bus auto-suspend
[ 62.728945] usb usb5: suspend_rh
[ 64.586678] scsi 1:0:0:0: Direct-Access M-Sys uDiskOnChip 5.u4
PQ: 0 ANSI: 0 CCS
[ 64.589136] sd 1:0:0:0: [sdb] 2052607 512-byte hardware sectors (1051 MB)
[ 64.590039] sd 1:0:0:0: [sdb] Write Protect is off
[ 64.590159] sd 1:0:0:0: [sdb] Mode Sense: 2b 00 00 00
[ 64.590244] sd 1:0:0:0: [sdb] Assuming drive cache: write through
[ 64.591510] sd 1:0:0:0: [sdb] 2052607 512-byte hardware sectors (1051 MB)
[ 64.592410] sd 1:0:0:0: [sdb] Write Protect is off
[ 64.592533] sd 1:0:0:0: [sdb] Mode Sense: 2b 00 00 00
[ 64.592615] sd 1:0:0:0: [sdb] Assuming drive cache: write through
[ 64.592709] sdb: sdb1
[ 64.593833] sd 1:0:0:0: [sdb] Attached SCSI disk
[ 64.594088] sd 1:0:0:0: Attached scsi generic sg0 type 0
[ 64.595503] usb-storage: device scan complete
[ 64.932636] scsi 2:0:0:0: Direct-Access Generic STORAGE DEVICE 9404
PQ: 0 ANSI: 0
[ 64.935110] sd 2:0:0:0: [sdc] Attached SCSI removable disk
[ 64.935332] sd 2:0:0:0: Attached scsi generic sg1 type 0
[ 64.936726] usb-storage: device scan complete
[ 65.965263] EXT3-fs error (device sda1): ext3_find_entry: reading directory
#7201 offset 0
[ 65.965541] Buffer I/O error on device sda1, logical block 0
[ 65.965634] lost page write due to I/O error on sda1
So the child branch is taken and USB_PERSIST && child->persist_enabled
evaluates as true. Also udev->reset_resume is enabled. The problem here
is inside usb_reset_device. The devices are redetected because a
reenumeration is forced, see that usb_reset_device return -ENOTCONN because:
- usb_reset_device call chain is hub_port_init -> hub_port_reset ->
hub_port_wait_reset. In hub_port_wait_reset, the call to hub_port_status
doesn't fail, but portstatus or portchange are respectively
USB_PORT_STAT_CONNECTION or USB_PORT_STAT_C_CONNECTION
(Look that no one of the printks in hub_port_wait_reset are printed),
and -ENOTCONN then from one of the two returns go back until
usb_reset_device that then takes the re_enumeration label that causes the
logical disconnect, so the redetection happens.
I don't know why ehci is returning this portchange/portstatus, but this is
triggering the redetection.
>
> >
> > Alan Stern
> >
--
[]'s
Herton
-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html