Bug 407689 - prism2_usb: kernel BUG at net/core/dev.c:861!
Summary: prism2_usb: kernel BUG at net/core/dev.c:861!
Status: RESOLVED FIXED
Alias: None
Product: openSUSE 11.0
Classification: openSUSE
Component: Kernel (show other bugs)
Version: Final
Hardware: x86 openSUSE 11.0
: P3 - Medium : Major (vote)
Target Milestone: ---
Assignee: Oliver Neukum
QA Contact: E-mail List
URL:
Whiteboard:
Keywords: Backwards_Compatibility
Depends on:
Blocks:
 
Reported: 2008-07-09 18:15 UTC by Marco Antonio Garcia Prieto
Modified: 2008-09-11 06:33 UTC (History)
2 users (show)

See Also:
Found By: Customer
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
The support.txt file generated by openSUSE (423.70 KB, text/plain)
2008-07-09 18:15 UTC, Marco Antonio Garcia Prieto
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marco Antonio Garcia Prieto 2008-07-09 18:15:46 UTC
Created attachment 226822 [details]
The support.txt file generated by openSUSE

I'm getting a kernel bug when I try to connect my usb wireless device (SL-2511UB-2.00 with chip ISL3873BIK). 
It worked ok with previous versions (openSUSE 9 and 10) by using wlan-ng software and it works ok too under Ubuntu 8.04.

This is the error:

------------[ cut here ]------------
kernel BUG at net/core/dev.c:861!
invalid opcode: 0000 [#1] SMP
last sysfs file: /sys/devices/pci0000:00/0000:00:0a.1/usb3/3-1/3-1:1.1/bInterfaceClass
Modules linked in: prism2_usb(+) p80211 binfmt_misc snd_pcm_oss snd_mixer_oss snd_seq ipv6 nfs lockd nfs_acl sunrpc af_packet fuse loop dm_mod ppdev rtc_cmos rtc_core rtc_lib parport_pc ns558 parport snd_via82xx gameport snd_ac97_codec ac97_bus snd_pcm snd_timer snd_page_alloc snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore i2c_viapro sr_mod cdrom i2c_core via_ircc irda rndis_wlan crc_ccitt rndis_host sg cdc_ether usbnet joydev shpchp button pci_hotplug via_agp e100 mii agpgart usbhid hid ff_memless sd_mod ehci_hcd uhci_hcd usbcore edd ext3 mbcache jbd fan sata_via pata_via libata scsi_mod dock thermal processor [last unloaded: speedstep_lib]

Pid: 3146, comm: modprobe Tainted: G        N (2.6.25.9-0.2-pae #1)
EIP: 0060:[<c02825b2>] EFLAGS: 00010246 CPU: 0
EIP is at dev_alloc_name+0x15/0x41
EAX: 00000000 EBX: f5556400 ECX: 00000000 EDX: f93e31c5
ESI: f64b0000 EDI: f64b0000 EBP: f6983d78 ESP: f6983d5c
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process modprobe (pid: 3146, ti=f6982000 task=f55e1080 task.ti=f6982000)
Stack: f6983d6c c028a5ab f64b0000 f5556400 f5556400 f6c92000 f64b0000 f6983d8c
       f93e1d27 f5556400 f6c92000 f5467c00 f6983da8 f94aa646 f7c17800 f5467c5c
       f7c17800 00000000 f94b3c78 f6983dc4 f95dbd08 f94b2d68 f5467c00 f7c1781c
Call Trace:
 [<f93e1d27>] register_wlandev+0x1a/0xb7 [p80211]
 [<f94aa646>] prism2sta_probe_usb+0x138/0x1f2 [prism2_usb]
 [<f95dbd08>] usb_probe_interface+0xc6/0x108 [usbcore]
 [<c024faf9>] driver_probe_device+0xa0/0x136
 [<c024fbea>] __driver_attach+0x5b/0x91
 [<c024f4d5>] bus_for_each_dev+0x36/0x5e
 [<c024f99e>] driver_attach+0x14/0x16
 [<c024eeda>] bus_add_driver+0x9d/0x1ba
 [<c024fd60>] driver_register+0x47/0xa7
 [<f95dbefd>] usb_register_driver+0x66/0xc0 [usbcore]
 [<f8818041>] prism2usb_init+0x41/0x43 [prism2_usb]
 [<c0144da1>] sys_init_module+0x198b/0x1ab8
 [<c01059e4>] sysenter_past_esp+0x6d/0xa9
 [<ffffe430>] 0xffffe430
 =======================
Code: 74 0d 56 68 fc 4b 37 c0 e8 a9 0c eb ff 5e 58 8d 65 f8 5b 5e 5d c3 55 89 e5 57 56 89 c6 53 83 ec 10 8b 80 68 03 00 00 85 c0 75 04 <0f> 0b eb fe 8d 7d e4 89 f9 e8 70 dd ff ff 85 c0 89 c3 78 0e b9
EIP: [<c02825b2>] dev_alloc_name+0x15/0x41 SS:ESP 0068:f6983d5c
---[ end trace a97a350440bc2e1b ]---
Comment 1 Oliver Neukum 2008-07-11 10:02:54 UTC
Looks like the kmp wasn't updated to network namespaces
Comment 2 Marco Antonio Garcia Prieto 2008-07-11 10:29:23 UTC
If you need I try something please tell me

Regards,
   Marco
Comment 3 Oliver Neukum 2008-07-21 12:28:47 UTC
Please try the kernel appropriate for your cpu found at:

http://beta.suse.com/private/oneukum/407689
Comment 4 Marco Antonio Garcia Prieto 2008-07-21 19:51:35 UTC
Now these are the lines added to messages file when I connect the adapter:

Jul 21 20:49:09 linux-torre kernel: usb usb2: usb resume
Jul 21 20:49:09 linux-torre kernel: ehci_hcd 0000:00:0a.2: resume root hub
Jul 21 20:49:09 linux-torre kernel: ehci_hcd 0000:00:0a.2: port 1 full speed --> companion
Jul 21 20:49:09 linux-torre kernel: ehci_hcd 0000:00:0a.2: GetStatus port 1 status 003801 POWER OWNER sig=j CONNECT
Jul 21 20:49:09 linux-torre kernel: hub 2-0:1.0: hub_resume
Jul 21 20:49:09 linux-torre kernel: hub 2-0:1.0: state 7 ports 4 chg 0000 evt 0000
Jul 21 20:49:09 linux-torre kernel: usb usb1: usb resume
Jul 21 20:49:09 linux-torre kernel: usb usb1: wakeup_rh
Jul 21 20:49:09 linux-torre kernel: hub 1-0:1.0: hub_resume
Jul 21 20:49:09 linux-torre kernel: uhci_hcd 0000:00:0a.0: port 1 portsc 0093,00
Jul 21 20:49:09 linux-torre kernel: hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0000
Jul 21 20:49:09 linux-torre kernel: uhci_hcd 0000:00:0a.0: port 1 portsc 0093,00
Jul 21 20:49:09 linux-torre kernel: hub 1-0:1.0: port 1, status 0101, change 0001, 12 Mb/s
Jul 21 20:49:09 linux-torre kernel: hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101
Jul 21 20:49:10 linux-torre kernel: usb 1-1: new full speed USB device using uhci_hcd and address 6
Jul 21 20:49:10 linux-torre kernel: usb 1-1: ep0 maxpacket = 8
Jul 21 20:49:10 linux-torre kernel: usb 1-1: config 1 has an invalid interface number: 1 but max is 0
Jul 21 20:49:10 linux-torre kernel: usb 1-1: config 1 has no interface number 0
Jul 21 20:49:10 linux-torre kernel: usb 1-1: default language 0x0409
Jul 21 20:49:10 linux-torre kernel: usb 1-1: uevent
Jul 21 20:49:10 linux-torre kernel: usb 1-1: usb_probe_device
Jul 21 20:49:10 linux-torre kernel: usb 1-1: configuration #1 chosen from 1 choice
Jul 21 20:49:10 linux-torre kernel: usb 1-1: adding 1-1:1.1 (config #1, interface 1)
Jul 21 20:49:10 linux-torre kernel: usb 1-1:1.1: uevent
Jul 21 20:49:10 linux-torre kernel: drivers/usb/core/inode.c: creating file '006'
Jul 21 20:49:10 linux-torre kernel: usb 1-1: New USB device found, idVendor=09aa, idProduct=3642
Jul 21 20:49:10 linux-torre kernel: usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=1
Jul 21 20:49:10 linux-torre kernel: usb 1-1: SerialNumber: 01310126
Jul 21 20:49:10 linux-torre kernel: prism2usb_init: prism2_usb.o: 0.2.7 Loaded
Jul 21 20:49:10 linux-torre kernel: prism2usb_init: dev_info is: prism2_usb
Jul 21 20:49:10 linux-torre kernel: prism2_usb 1-1:1.1: usb_probe_interface
Jul 21 20:49:10 linux-torre kernel: prism2_usb 1-1:1.1: usb_probe_interface - got id
Jul 21 20:49:10 linux-torre kernel: usbcore: registered new interface driver prism2_usb
Jul 21 20:49:10 linux-torre ifup: Network interface is managed from NetworkManager
Jul 21 20:49:10 linux-torre ifup: NetworkManager will be advised to set up wlan0
Jul 21 20:49:10 linux-torre ifup: but it cannot be assured from here.
Jul 21 20:49:12 linux-torre kernel: hub 2-0:1.0: hub_suspend
Jul 21 20:49:12 linux-torre kernel: usb usb2: bus auto-suspend
Jul 21 20:49:12 linux-torre kernel: ehci_hcd 0000:00:0a.2: suspend root hub
Jul 21 20:49:14 linux-torre nm-system-settings: Adding default connection 'Auto wlan0' for /org/freedesktop/Hal/devices/net_usb_device_ffffffff_ffffffff_noserial_if1


It looks far better than before :-)
Just only one strange message:

config 1 has an invalid interface number: 1 but max is 0

The led adapter keeps off but maybe it has to be with hotplug/boot/manual startup options and using ifup instead of networkmanager. I'll keep trying...

Regards,
   Marco
Comment 5 Oliver Neukum 2008-07-22 07:06:08 UTC
You get a lot of messages because I compiled you a kernel with debugging enabled so I'd see the problem in case it wouldn't have worked.

What happens if you try to configure the interface with YaST and try to use it?
Comment 6 Marco Antonio Garcia Prieto 2008-07-22 19:53:54 UTC
Using YaST + NetworkManager it seems NetworkManager detects the adapter as an ethernet adapter. YaST shows prism2_usb as a wireless interface but under NetworkManager the wlan0 option shows the ethernet icon and you can only configure IP, mask and dns, no ssid or key at all. So it doesn't work. 

What I don't know is why NetworkManager wrongly detects the wlan0 as ethernet instead of wireless. This is the NetworkManager log:

Jul 22 20:36:31 linux-torre NetworkManager: <info>  starting...
Jul 22 20:36:31 linux-torre NetworkManager: <info>  wlan0: Driver 'prism2_usb' does not support carrier detection.      You must switch to it manually.
Jul 22 20:36:31 linux-torre NetworkManager: <info>  Found new Ethernet device 'wlan0'.
Jul 22 20:36:31 linux-torre NetworkManager: <info>  (wlan0): exported as /org/freedesktop/Hal/devices/net_usb_device_9aa_3642_01310126_if1
Jul 22 20:36:31 linux-torre NetworkManager: <info>  eth0: Device is fully-supported using driver 'e100'.
Jul 22 20:36:31 linux-torre NetworkManager: <info>  Found new Ethernet device 'eth0'.
Jul 22 20:36:31 linux-torre NetworkManager: <info>  (eth0): exported as /org/freedesktop/Hal/devices/net_00_02_b3_8c_7f_c1
Jul 22 20:36:31 linux-torre NetworkManager: <info>  Trying to start the supplicant...
Jul 22 20:36:31 linux-torre NetworkManager: <info>  Trying to start the system settings daemon...
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (wlan0): device state change: 1 -> 2
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (wlan0): bringing up device.
Jul 22 20:36:35 linux-torre NetworkManager: <WARN>  nm_device_hw_bring_up(): (wlan0): device not up after timeout!
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (wlan0): deactivating device.
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (eth0): device state change: 1 -> 2
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (eth0): bringing up device.
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (eth0): preparing device.
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (eth0): deactivating device.
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (eth0): carrier now ON (device state 2)
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (eth0): device state change: 2 -> 3
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (eth0): carrier now OFF (device state 3)
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (eth0): device state change: 3 -> 2
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (eth0): deactivating device.
Jul 22 20:36:35 linux-torre NetworkManager: <info>  (wlan0): device state change: 2 -> 3
Jul 22 20:36:36 linux-torre NetworkManager: <info>  Activation (wlan0) starting connection 'Auto wlan0'
Jul 22 20:36:36 linux-torre NetworkManager: <info>  (wlan0): device state change: 3 -> 4
Jul 22 20:36:36 linux-torre NetworkManager: <info>  Activation (wlan0) Stage 1 of 5 (Device Prepare) scheduled...
Jul 22 20:36:36 linux-torre NetworkManager: <info>  Activation (wlan0) Stage 1 of 5 (Device Prepare) started...
Jul 22 20:36:36 linux-torre NetworkManager: <info>  Activation (wlan0) Stage 2 of 5 (Device Configure) scheduled...
Jul 22 20:36:36 linux-torre NetworkManager: <info>  Activation (wlan0) Stage 1 of 5 (Device Prepare) complete.
Jul 22 20:36:36 linux-torre NetworkManager: <info>  Activation (wlan0) Stage 2 of 5 (Device Configure) starting...
Jul 22 20:36:36 linux-torre NetworkManager: <info>  (wlan0): device state change: 4 -> 5
Jul 22 20:36:36 linux-torre NetworkManager: <info>  (wlan0): bringing up device.
Jul 22 20:36:36 linux-torre NetworkManager: <WARN>  nm_device_hw_bring_up(): (wlan0): device not up after timeout!
Jul 22 20:36:36 linux-torre NetworkManager: <info>  (wlan0): device state change: 5 -> 9
Jul 22 20:36:36 linux-torre NetworkManager: <info>  Marking connection 'Auto wlan0' invalid.
Jul 22 20:36:36 linux-torre NetworkManager: <info>  Activation (wlan0) failed.
Jul 22 20:36:36 linux-torre NetworkManager: <info>  Activation (wlan0) Stage 2 of 5 (Device Configure) complete.
Jul 22 20:36:36 linux-torre NetworkManager: <info>  (wlan0): device state change: 9 -> 3
Jul 22 20:36:36 linux-torre NetworkManager: <info>  (wlan0): deactivating device.


But... it works ok when I change to ifup method and use the same script as I did on previous versions (10.x):

wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable
wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable
wlanctl-ng wlan0 lnxreq_hostwep decrypt=true encrypt=true
wlanctl-ng wlan0 dot11req_mibset mibattribute=dot11PrivacyInvoked=true
wlanctl-ng wlan0 dot11req_mibset mibattribute=dot11WEPDefaultKeyID=0
wlanctl-ng wlan0 dot11req_mibset mibattribute=dot11WEPDefaultKey0="XX:XX:XX..."
wlanctl-ng wlan0 lnxreq_autojoin ssid="MySSID" authtype="opensystem"
ifconfig wlan0 192.168.1.4 netmask 255.255.255.0 up
route add default gw 192.168.1.1

I've added this lines to boot.local so system starts with the wlan0 up and connected to the network.

Regards,
   Marco
Comment 7 Oliver Neukum 2008-07-22 20:15:59 UTC
If this is indeed a bug, it is a different bug. In any cases it should be handled in another bugzilla entry. From a kernel perspective, this bug is fixed.

Fix committed to CVS for SL110_BRANCH
Comment 8 Marcus Meissner 2008-09-11 06:33:44 UTC
released for opensuse 11.0 as 2.6.25.16-0.1