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.

Reply via email to