Messages in this thread | | | Date | Mon, 12 Jun 2006 19:21:26 -0400 | From | Mark Lord <> | Subject | Re: pl2303 ttyUSB0: pl2303_open - failed submitting interrupt urb, error -28 |
| |
Mark Lord wrote: > Greg KH wrote: >> So we should have finally covered both of them now. > > Yes, agreed. > > So if modify pl2303_open() to have it simulate -ENOMEM from > usb_submit_urb(), > then this should not crash the entire USB subsystem. Right? > > Ditto if it happens due to low-memory, rather than me hacking the code > to test it?
Mmmm.. looks like it's still buggy, but we manage to avoid the bug under *most* circumstances. Which is good!
But the bug will still need to be fixed. A failure from usb_submit_urb() should not require a reboot to recover. Here's the results of a simulated -ENOMEM test:
kernel BUG at kernel/workqueue.c:110! invalid opcode: 0000 [#1] PREEMPT Modules linked in: pl2303 mct_u232 usblp usbserial usbhid snd_pcm_oss uhci_hcd ehci_hcd vmnet vmmon nfsd exportfs lockd nfs_acl sunrpc speedstep_centrino cpufreq_conservative cpufreq_stats cpufreq_userspace cpufreq_powersave freq_table cpufreq_ondemand thermal fan battery ac processor container video button rfcomm l2cap bluetooth cfq_iosched deflate zlib_deflate twofish serpent aes blowfish des sha256 sha1 crypto_null af_key af_packet sbp2 pcmcia ipw2200 ieee80211 ieee80211_crypt snd_intel8x0 snd_ac97_codec snd_ac97_bus yenta_socket ohci1394 ieee1394 snd_mixer_oss mousedev rsrc_nonstatic pcmcia_core mmc_core b44 mii firmware_class snd_pcm snd_timer snd soundcore serio_raw pcspkr snd_page_alloc psmouse intel_agp agpgart usbcore sg sr_mod cdrom unix CPU: 0 EIP: 0060:[queue_work+81/96] Tainted: P VLI EFLAGS: 00010286 (2.6.17-rc6-git2 #3) EIP is at queue_work+0x51/0x60 eax: f317093c ebx: 00000000 ecx: b21b9f80 edx: f3170938 esi: f4782640 edi: f4782640 ebp: f7333414 esp: f7cc3e4c ds: 007b es: 007b ss: 0068 Process khubd (pid: 1737, threadinfo=f7cc2000 task=b21bb070) Stack: 00000000 f8a30d63 b01ca38f b02e136b f8884ad3 f7333400 f8c52080 f8c520a4 f7333414 f88867f2 f733347c f7333414 b022240f f7333414 f7333414 f889bae0 b02226a6 f7333414 b0221c87 f7333414 f7519c58 00000001 b0220e35 f7333400 Call Trace: <f8a30d63> usb_serial_disconnect+0x53/0xd0 [usbserial] <b01ca38f> kref_put+0x2f/0x80 <f8884ad3> usb_disable_interface+0x53/0x70 [usbcore] <f88867f2> usb_unbind_interface+0x32/0x70 [usbcore] <b022240f> __device_release_driver+0x5f/0xc0 <b02226a6> device_release_driver+0x16/0x30 <b0221c87> bus_remove_device+0x77/0x90 <b0220e35> device_del+0x35/0x70 <f8885733> usb_disable_device+0xb3/0x100 [usbcore] <f887f404> usb_disconnect+0x94/0x100 [usbcore] <f887f3f2> usb_disconnect+0x82/0x100 [usbcore] <f887f3f2> usb_disconnect+0x82/0x100 [usbcore] <f8881c1e> hub_thread+0x3be/0xc75 [usbcore] <b012efc0> autoremove_wake_function+0x0/0x50 <b02b6d9f> preempt_schedule+0x4f/0x70 <b012eed6> kthread+0xd6/0xe0 <f8881860> hub_thread+0x0/0xc75 [usbcore] <b012ee00> kthread+0x0/0xe0 <b0101005> kernel_thread_helper+0x5/0x10 Code: a8 08 75 1c 89 d8 5b c3 89 f6 8d 42 04 3b 42 04 75 19 8b 01 bb 01 00 00 00 e8 dc fa ff ff eb d3 e8 85 ae 18 00 89 d8 5b 89 f6 c3 <0f> 0b 6e 00 d1 de 2c b0 eb dd 90 8d 74 26 00 89 c2 a1 d4 d1 38 EIP: [queue_work+81/96] queue_work+0x51/0x60 SS:ESP 0068:f7cc3e4c <6>note: khubd[1737] exited with preempt_count 1 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |