Hi, I found this patch causes troubles on 2.4.25-pre4 and also 2.4.24-rc2. Here is the resolved stack trace in "cr.res" file. :(
Some details. The usb0 had assigned an IP address and was up(not sure if that matters). In "dmesg" I saw several times: usb0: rxqlen 0 --> 1 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2
I unplugged the usb cable and that triggered kernel panic. This bug manifests only with the patch applied. :(
Martin
On Mon, 5 Jan 2004, Martin MOKREJŠ wrote:
Hi, yes that patch helped for me on 2.4.24-pre2 (had to patch manually). The patch is attached as usbnet.c.patch.
On Sun, 28 Dec 2003, David Brownell wrote:
> Martin MOKREJ? wrote: > > > > When trying "ifconfig usb0 IP-address", I get in syslog: > > > > ... > > usb0: register usbnet at usb-0000:00:1d.0-2, Prolific PL-2301/PL-2302 > > usb0: open reset fail (-32) usbnet usb-0000:00:1d.0-2, Prolific PL-2301/PL-2302 > > I think the right answer is just a patch to ignore open reset failures. > Thing is, some Prolific chips seem to require it, others seem to fail it. > Lacking information from Prolific, we can't do better.
hub.c: new USB device 00:1d.0-1, assigned address 5 usb.c: kmalloc IF f29aca44, numif 1 usb.c: new device strings: Mfr=1, Product=0, SerialNumber=0 usb.c: USB device number 5 default language ID 0x409 Manufacturer: Prolific Technology Inc. usb.c: unhandled interfaces on device usb.c: USB device 5 (vend/prod 0x67b/0x1) is not claimed by any active driver. Length = 18 DescriptorType = 01 USB version = 1.00 Vendor:Product = 067b:0001 MaxPacketSize0 = 8 NumConfigurations = 1 Device version = 0.01 Device Class:SubClass:Protocol = 00:00:00 Per-interface classes Configuration: bLength = 9 bDescriptorType = 02 wTotalLength = 0027 bNumInterfaces = 01 bConfigurationValue = 01 iConfiguration = 00 bmAttributes = a0 MaxPower = 100mA
Interface: 0 Alternate Setting: 0 bLength = 9 bDescriptorType = 04 bInterfaceNumber = 00 bAlternateSetting = 00 bNumEndpoints = 03 bInterface Class:SubClass:Protocol = ff:00:00 iInterface = 00 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 81 (in) bmAttributes = 03 (Interrupt) wMaxPacketSize = 0001 bInterval = 01 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 02 (out) bmAttributes = 02 (Bulk) wMaxPacketSize = 0040 bInterval = 00 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 83 (in) bmAttributes = 02 (Bulk) wMaxPacketSize = 0040 bInterval = 00 usb.c: kusbd: /sbin/hotplug add 5 hub.c: port 2, portstatus 303, change 0, 1.5 Mb/s hub.c: port 1, portstatus 103, change 0, 12 Mb/s hub.c: port 2, portstatus 303, change 0, 1.5 Mb/s usb.c: registered new driver usbnet usb0: register usbnet usb-00:1d.0-1, Prolific PL-2301/PL-2302 usb.c: usbnet driver claimed interface f29aca44 ieee1394: Node removed: ID:BUS[0-00:1023] GUID[00e018000305e5fc] usb-uhci.c: interrupt, status 3, frame# 1943 usb0: rxqlen 0 --> 1 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 NETDEV WATCHDOG: usb0: transmit timed out usbnet.c: usb0 tx: err -2 usb-uhci.c: interrupt, status 2, frame# 997 usbnet.c: usb0 rx: status -84 usbnet.c: usb0 rx: status -84 usbnet.c: usb0 rx: status -84 hub.c: port 1, portstatus 100, change 3, 12 Mb/s hub.c: port 1 connection change hub.c: port 1, portstatus 100, change 3, 12 Mb/s usb.c: USB disconnect on device 00:1d.0-1 address 5 usb0: unregister usbnet usb-00:1d.0-1, Prolific PL-2301/PL-2302 usbnet.c: usb0 rx shutdown, code -104 usb.c: kusbd: /sbin/hotplug remove 5 hub.c: port 2, portstatus 303, change 0, 1.5 Mb/s hub.c: port 1, portstatus 100, change 2, 12 Mb/s hub.c: port 1 enable change, status 100 hub.c: port 2, portstatus 303, change 0, 1.5 Mb/s
I don't know what those "err -2" mean, but maybe that's because the other computer was not configured yet.
BTW: I tried to use GEMBIRD USB-USB cable (UAU211), but it's not detected at all, possibly it has unsupported chipset. Any clue on that?
Thanks!
-- Martin Mokrejs <[EMAIL PROTECTED]> PGP5.0i key is at http://www.natur.cuni.cz/~mmokrejs
--- 1.77/drivers/usb/net/usbnet.c Mon Nov 3 05:05:44 2003
+++ edited/drivers/usb/net/usbnet.c Sun Dec 28 16:50:05 2003 @@ -2011,8 +2011,12 @@ static int pl_reset (struct usbnet *dev) { - return pl_set_QuickLink_features (dev, + /* some units seem to need this reset, others reject it utterly. + * FIXME be more like "naplink" or windows drivers. + */ + (void) pl_set_QuickLink_features (dev, PL_S_EN|PL_RESET_OUT|PL_RESET_IN|PL_PEER_E); + return 0; } static const struct driver_info prolific_info = {
--- drivers/usb/usbnet.c.ori 2004-01-05 11:12:10.000000000 +0100 +++ drivers/usb/usbnet.c 2004-01-05 11:12:13.000000000 +0100 @@ -1592,14 +1592,18 @@ } /*-------------------------------------------------------------------------*/ static int pl_reset (struct usbnet *dev) { - return pl_set_QuickLink_features (dev, - PL_S_EN|PL_RESET_OUT|PL_RESET_IN|PL_PEER_E); + /* some units seem to need this reset, others reject it utterly. + * FIXME be more like "naplink" or windows drivers. + */ + (void) pl_set_QuickLink_features (dev, + PL_S_EN|PL_RESET_OUT|PL_RESET_IN|PL_PEER_E); + return 0; } static const struct driver_info prolific_info = { .description = "Prolific PL-2301/PL-2302", .flags = FLAG_NO_SETINT, /* some PL-2302 versions seem to fail usb_set_interface() */
ksymoops 2.4.9 on i686 2.4.25-pre4. Options used -V (default) -k /proc/ksyms (default) -l /proc/modules (default) -o /lib/modules/2.4.25-pre4/ (default) -m /usr/src/linux/System.map (default) Warning: You did not tell me where to find symbol information. I will assume that the log matches the kernel and modules that are running right now and I'll use the default options above for symbol resolution. If the current kernel and/or modules do not match the log, you can get more accurate output by telling me the kernel version and where to find map, modules, ksyms etc. ksymoops -h explains the options. Warning (compare_maps): ksyms_base symbol acpi_dbg_layer_R__ver_acpi_dbg_layer not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol acpi_dbg_level_R__ver_acpi_dbg_level not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol acpi_ut_debug_print_R__ver_acpi_ut_debug_print not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol acpi_ut_debug_print_raw_R__ver_acpi_ut_debug_print_raw not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol acpi_ut_exit_R__ver_acpi_ut_exit not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol acpi_ut_status_exit_R__ver_acpi_ut_status_exit not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol acpi_ut_trace_R__ver_acpi_ut_trace not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol acpi_ut_value_exit_R__ver_acpi_ut_value_exit not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol neigh_app_ns_R__ver_neigh_app_ns not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): ksyms_base symbol video_proc_entry_R__ver_video_proc_entry not found in System.map. Ignoring ksyms_base entry This bug manifests only with the patch applied. :( *pde = 00000000 Oops: 0002 CPU: 0 EIP: 0010:[<f8db7ac6>] Not tainted Using defaults from ksymoops -t elf32-i386 -a i386 EFLAGS: 00010002 eax: f350da24 ebx: f350d800 ecx: 5a5a5a5a edx: f6f4b51c esi: 00000296 edi: f350d800 ebp: 00000000 esp: c0441ed8 ds: 0018 es: 0018 ss: 0018 Process swapper (pid: 0, stackpage=c0441000) Stack: f6f4b51c ffffff98 f8db7e34 f350d800 f6f4b51c ffffff98 f6f4b54c f360c654 f24eb184 00000003 f7090db0 f8d5a03f f360c654 f360c654 f24eb184 f7090db0 0000077f f1c47000 f7090d00 00000000 f7090ce4 f7090d00 f8d5bf8d f7090ce4 Call Trace: [<f8db7e34>] [<f8d5a03f>] [<f8d5bf8d>] [<c0108a25>] [<c0108bd4>] [<c01053a0>] [<c010b278>] [<c01053a0>] [<c01053c3>] [<c0105452>] [<c0105000>] Code: 89 11 89 50 04 83 bb 2c 02 00 00 01 74 0d 56 9d 8b 1c 24 8b >>EIP; f8db7ac6 <END_OF_CODE+5b85f/????> <===== >>eax; f350da24 <_end+3305f08c/388366c8> >>ebx; f350d800 <_end+3305ee68/388366c8> >>edx; f6f4b51c <_end+36a9cb84/388366c8> >>edi; f350d800 <_end+3305ee68/388366c8> >>esp; c0441ed8 <init_task_union+1ed8/2000> Trace; f8db7e34 <END_OF_CODE+5bbcd/????> Trace; f8d5a03f <[ehci-hcd]bios_handoff+ff/140> Trace; f8d5bf8d <[ehci-hcd].rodata.end+d9e/1031> Trace; c0108a25 <handle_IRQ_event+45/70> Trace; c0108bd4 <do_IRQ+64/a0> Trace; c01053a0 <default_idle+0/40> Trace; c010b278 <call_do_IRQ+5/d> Trace; c01053a0 <default_idle+0/40> Trace; c01053c3 <default_idle+23/40> Trace; c0105452 <cpu_idle+52/70> Trace; c0105000 <_stext+0/0> Code; f8db7ac6 <END_OF_CODE+5b85f/????> 00000000 <_EIP>: Code; f8db7ac6 <END_OF_CODE+5b85f/????> <===== 0: 89 11 mov %edx,(%ecx) <===== Code; f8db7ac8 <END_OF_CODE+5b861/????> 2: 89 50 04 mov %edx,0x4(%eax) Code; f8db7acb <END_OF_CODE+5b864/????> 5: 83 bb 2c 02 00 00 01 cmpl $0x1,0x22c(%ebx) Code; f8db7ad2 <END_OF_CODE+5b86b/????> c: 74 0d je 1b <_EIP+0x1b> Code; f8db7ad4 <END_OF_CODE+5b86d/????> e: 56 push %esi Code; f8db7ad5 <END_OF_CODE+5b86e/????> f: 9d popf Code; f8db7ad6 <END_OF_CODE+5b86f/????> 10: 8b 1c 24 mov (%esp,1),%ebx Code; f8db7ad9 <END_OF_CODE+5b872/????> 13: 8b 00 mov (%eax),%eax <0>Kernel panic: Aiee, killing interrupt handler! 11 warnings issued. Results may not be reliable.