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