* phyX enumeration conflict
@ 2010-10-08 19:59 Christian Lamparter
2010-10-10 8:09 ` Johannes Berg
0 siblings, 1 reply; 9+ messages in thread
From: Christian Lamparter @ 2010-10-08 19:59 UTC (permalink / raw)
To: linux-wireless; +Cc: John W. Linville, Johannes Berg, Ben Greear, rainbow lum
This is a report from a user(added to CC):
He has two different mac80211-powered USB devices:
one which has an ISL3887 (supported by p54usb),
the other is an AR9170 (carl9170).
"I found another problem---the driver use the phy index from 0, which
will conflict with p54usb driver(i have two wifi card,another one use
p54usb). this will cause boot-period wireless init fail.
bellow are some details.
[ 5.049234] usbcore: registered new interface driver usbfs
[ 5.069937] usbcore: registered new interface driver hub
[ 5.093766] usbcore: registered new device driver usb
[ 5.163736] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 5.170118] ohci_hcd 0000:00:0a.0: OHCI Host Controller
[ 5.190581] ohci_hcd 0000:00:0a.0: new USB bus registered, assigned bus
number 1
[ 5.202619] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 5.233765] ohci_hcd 0000:00:0a.0: irq 7, io mem 0xfeffd000
[ 5.248441] Warning! ehci_hcd should always be loaded before uhci_hcd and
ohci_hcd, not after
[ 5.328444] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[ 5.335301] usb usb1: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[ 5.342550] usb usb1: Product: OHCI Host Controller
[ 5.349599] usb usb1: Manufacturer: Linux 2.6.36-rc6-wl-wlplug20101006
ohci_hcd
[ 5.362825] usb usb1: SerialNumber: 0000:00:0a.0
[ 5.369904] hub 1-0:1.0: USB hub found
[ 5.373812] hub 1-0:1.0: 2 ports detected
[ 5.379112] ehci_hcd 0000:00:0a.1: EHCI Host Controller
[ 5.384472] ehci_hcd 0000:00:0a.1: new USB bus registered, assigned bus
number 2
[ 5.415841] ehci_hcd 0000:00:0a.1: irq 9, io mem 0xfefff800
[ 5.433679] ehci_hcd 0000:00:0a.1: USB 2.0 started, EHCI 1.00
[ 5.439605] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 5.446451] usb usb2: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[ 5.453717] usb usb2: Product: EHCI Host Controller
[ 5.458621] usb usb2: Manufacturer: Linux 2.6.36-rc6-wl-wlplug20101006
ehci_hcd
[ 5.465974] usb usb2: SerialNumber: 0000:00:0a.1
[ 5.472880] hub 2-0:1.0: USB hub found
[ 5.476790] hub 2-0:1.0: 2 ports detected
[ 5.482134] ohci_hcd 0000:00:0b.0: OHCI Host Controller
[ 5.487507] ohci_hcd 0000:00:0b.0: new USB bus registered, assigned bus
number 3
[ 5.495105] ohci_hcd 0000:00:0b.0: irq 10, io mem 0xfeffe000
[ 5.583815] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[ 5.590635] usb usb3: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[ 5.597906] usb usb3: Product: OHCI Host Controller
[ 5.602810] usb usb3: Manufacturer: Linux 2.6.36-rc6-wl-wlplug20101006
ohci_hcd
[ 5.610216] usb usb3: SerialNumber: 0000:00:0b.0
[ 5.617114] hub 3-0:1.0: USB hub found
[ 5.620920] hub 3-0:1.0: 2 ports detected
[ 5.626326] ehci_hcd 0000:00:0b.1: EHCI Host Controller
[ 5.631628] ehci_hcd 0000:00:0b.1: new USB bus registered, assigned bus
number 4
[ 5.723840] ehci_hcd 0000:00:0b.1: irq 11, io mem 0xfefffc00
[ 5.793740] usb 2-2: new high speed USB device using ehci_hcd and address
2
[ 5.813661] ehci_hcd 0000:00:0b.1: USB 2.0 started, EHCI 1.00
[ 5.819624] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002
[ 5.826550] usb usb4: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[ 5.833845] usb usb4: Product: EHCI Host Controller
[ 5.838765] usb usb4: Manufacturer: Linux 2.6.36-rc6-wl-wlplug20101006
ehci_hcd
[ 5.846122] usb usb4: SerialNumber: 0000:00:0b.1
[ 5.853073] hub 4-0:1.0: USB hub found
[ 5.856972] hub 4-0:1.0: 2 ports detected
[ 6.012773] usb 2-2: New USB device found, idVendor=0cf3, idProduct=1002
[ 6.019545] usb 2-2: New USB device strings: Mfr=16, Product=32,
SerialNumber=48
[ 6.026993] usb 2-2: Product: USB2.0 WLAN
[ 6.031041] usb 2-2: Manufacturer: ATHER
[ 6.037793] usb 2-2: SerialNumber: 12345
[ 6.264804] REISERFS (device hda1): found reiserfs format "3.6" with
standard journal
[ 6.272704] REISERFS (device hda1): using ordered data mode
[ 6.285441] REISERFS (device hda1): journal params: device hda1, size
8192, journal first block 18, max trans len 1024, max batch 900, max commit
age 30, max trans age 30
[ 6.311500] REISERFS (device hda1): checking transaction log (hda1)
[ 6.343736] usb 4-2: new high speed USB device using ehci_hcd and address
2
[ 6.498133] usb 4-2: New USB device found, idVendor=1435, idProduct=0427
[ 6.505010] usb 4-2: New USB device strings: Mfr=1, Product=2,
SerialNumber=0
[ 6.512273] usb 4-2: Product: Cohiba 3887 rev0
[ 6.516876] usb 4-2: Manufacturer: GlobespanVirata
[ 6.604230] REISERFS (device hda1): replayed 22 transactions in 0 seconds
[ 6.611613] REISERFS (device hda1): Using r5 hash to sort names
[ 14.180410] udevd version 125 started
[ 17.303283] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
[ 17.394543] rtc0: alarms up to one day, 114 bytes nvram
[ 18.090664] cfg80211: Calling CRDA to update world regulatory domain
[ 18.944222] usb 2-2: reset high speed USB device using ehci_hcd and
address 2
[ 19.141331] usbcore: registered new interface driver carl9170
[ 19.244279] usb 4-2: reset high speed USB device using ehci_hcd and
address 2
[ 19.286717] usb 2-2: driver API: 1.8.8.3 2010-09-28 [1-1]
[ 19.292335] usb 2-2: firmware API: 1.8.8.3 2010-09-28
[ 19.482896] ieee80211 phy0: p54 detected a LM87 firmware ----------phy0
used by p54usb
[ 19.492278] p54: rx_mtu reduced from 3240 to 2384
[ 19.500711] ieee80211 phy0: FW rev 2.13.24.0 - Softmac protocol 5.9
[ 19.507146] ieee80211 phy0: cryptographic accelerator WEP:YES, TKIP:YES,
CCMP:YES
[ 20.511550] ieee80211 phy0: hwaddr 00:0b:6b:9d:9e:12, MAC:isl3887
RF:Frisbee
[ 20.596019] ath: EEPROM regdomain: 0x809c
[ 20.596047] ath: EEPROM indicates we should expect a country code
[ 20.596070] ath: doing EEPROM country->regdmn map search
[ 20.596091] ath: country maps to regdmn code: 0x52
[ 20.596112] ath: Country alpha2 being used: CN
[ 20.596130] ath: Regpair used: 0x52
[ 20.596317] ------------[ cut here ]------------
[ 20.600994] WARNING: at fs/sysfs/dir.c:451 sysfs_add_one+0x82/0xa0()
[ 20.624263] sysfs: cannot create duplicate filename
'/class/ieee80211/phy0' --seems carl9170 want to use the same phy id which
was taken by p54usb
[ 20.631249] Modules linked in: p54usb(+) carl9170 p54common led_class
crc_ccitt mac80211 ath cfg80211 rtc_cmos ehci_hcd ohci_hcd usbcore
ide_gd_mod
[ 20.664483] Pid: 1141, comm: firmware/carl91 Not tainted
2.6.36-rc6-wl-wlplug20101006 #1
[ 20.672595] Call Trace:
[ 20.684320] [<c10d0d52>] ? sysfs_add_one+0x82/0xa0
[ 20.689235] [<c10d0d52>] ? sysfs_add_one+0x82/0xa0
[ 20.694159] [<c101e37c>] warn_slowpath_common+0x6c/0xa0
[ 20.714291] [<c10d0d52>] ? sysfs_add_one+0x82/0xa0
[ 20.719210] [<c101e42e>] warn_slowpath_fmt+0x2e/0x30
[ 20.734351] [<c10d0d52>] sysfs_add_one+0x82/0xa0
[ 20.739098] [<c10d1c71>] sysfs_do_create_link+0xf1/0x1d0
[ 20.754405] [<c10d0565>] ? sysfs_add_file_mode+0x55/0x90
[ 20.759855] [<c10d1d82>] sysfs_create_link+0x12/0x20
[ 20.774302] [<c1190d74>] device_add+0x124/0x580
[ 20.779007] [<e099091b>] wiphy_register+0x19b/0x280 [cfg80211]
[ 20.794752] [<c1083cb0>] ? __kmalloc+0x70/0xc0
[ 20.799374] [<e0a5442e>] ieee80211_register_hw+0x17e/0x530 [mac80211]
[ 20.824361] [<e0b265f0>] ? carl9170_reg_notifier+0x0/0x40 [carl9170]
[ 20.830849] [<e0b2639e>] carl9170_register+0x1ee/0x440 [carl9170]
[ 20.844310] [<c1197920>] ? request_firmware_work_func+0x0/0x80
[ 20.850280] [<e0b29ed1>] carl9170_usb_firmware_step2+0x81/0xe0
[carl9170]
[ 20.874296] [<c1197920>] ? request_firmware_work_func+0x0/0x80
[ 20.880253] [<c119795b>] request_firmware_work_func+0x3b/0x80
[ 20.894782] [<c1035c24>] kthread+0x74/0x80
[ 20.899003] [<c1035bb0>] ? kthread+0x0/0x80
[ 20.903307] [<c1002fb6>] kernel_thread_helper+0x6/0x10
[ 20.924282] ---[ end trace 9fa154a9ec88252b ]---
[ 21.238237] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 21.240677] Registered led device: p54-phy0::assoc
[ 21.240874] Registered led device: p54-phy0::tx
[ 21.241065] Registered led device: p54-phy0::rx
[ 21.241259] Registered led device: p54-phy0::radio
[ 21.241331] usb 4-2: is registered as 'phy0'
[ 21.251183] usbcore: registered new interface driver p54usb
[ 21.287635] udev: renamed network interface wlan0 to wlan2
[ 23.197295] Adding 1004024k swap on /dev/hda5. Priority:-1 extents:1
across:1004024k
and when I replug the usb device it shows:
[ 381.379902] usb 2-2: USB disconnect, address 2
[ 384.589713] usb 2-2: new high speed USB device using ehci_hcd and address
3
[ 384.797802] usb 2-2: New USB device found, idVendor=0cf3, idProduct=1002
[ 384.805225] usb 2-2: New USB device strings: Mfr=16, Product=32,
SerialNumber=48
[ 384.813306] usb 2-2: Product: USB2.0 WLAN
[ 384.817350] usb 2-2: Manufacturer: ATHER
[ 384.822311] usb 2-2: SerialNumber: 12345
[ 385.229748] usb 2-2: reset high speed USB device using ehci_hcd and
address 3
[ 385.428787] usbcore: registered new interface driver carl9170
[ 385.501003] usb 2-2: driver API: 1.8.8.3 2010-09-28 [1-1]
[ 385.506622] usb 2-2: firmware API: 1.8.8.3 2010-09-28
[ 386.805068] ath: EEPROM regdomain: 0x809c
[ 386.805095] ath: EEPROM indicates we should expect a country code
[ 386.805119] ath: doing EEPROM country->regdmn map search
[ 386.805139] ath: country maps to regdmn code: 0x52
[ 386.805161] ath: Country alpha2 being used: CN
[ 386.805178] ath: Regpair used: 0x52
[ 386.812918] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[ 386.816154] cfg80211: Calling CRDA for country: CN
[ 386.833303] input: phy1 WPS Button as
/devices/pci0000:00/0000:00:0a.1/usb2/2-2/2-2:1.0/ieee80211/phy1/input0
[ 386.846922] udev: renamed network interface wlan0 to wlan6
[ 386.879907] usb 2-2: Atheros AR9170 is registered as 'phy1' --------
then all goes fine."
In a roundup he said that the bug might originate from:
http://git.kernel.org/?p=linux/kernel/git/linville/wireless-testing.git;a=commitdiff;h=5a254ffe3ffdfa84fe076009bd8e88da412180d2
and that a previous version of net/wireless/core.c
solved the problem.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: phyX enumeration conflict
2010-10-08 19:59 phyX enumeration conflict Christian Lamparter
@ 2010-10-10 8:09 ` Johannes Berg
2010-10-10 8:16 ` Johannes Berg
0 siblings, 1 reply; 9+ messages in thread
From: Johannes Berg @ 2010-10-10 8:09 UTC (permalink / raw)
To: Christian Lamparter
Cc: linux-wireless, John W. Linville, Ben Greear, rainbow lum
John, please revert 5a254ffe3ffdfa84fe076009bd8e88da412180d2 with the
following commit log.
Revert "wireless: Use first phyX name available when registering phy devices."
This reverts 5a254ffe3ffdfa84fe076009bd8e88da412180d2.
The commit failed to take into account that allocated wireless devices
(wiphys) are not added into the device list upon allocation, but only
when they are registered. Therefore, it opened up a race between
allocating and registering a name, so that if two processes allocate and
register concurrently ("alloc, alloc, register, register" rather than
"alloc, register, alloc, register") the code will attempt to use the
same name twice.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
I apologise for not catching this during review and will try to do
better in the future.
johannes
On Fri, 2010-10-08 at 21:59 +0200, Christian Lamparter wrote:
> This is a report from a user(added to CC):
>
> He has two different mac80211-powered USB devices:
> one which has an ISL3887 (supported by p54usb),
> the other is an AR9170 (carl9170).
>
> "I found another problem---the driver use the phy index from 0, which
> will conflict with p54usb driver(i have two wifi card,another one use
> p54usb). this will cause boot-period wireless init fail.
> bellow are some details.
>
> [ 5.049234] usbcore: registered new interface driver usbfs
> [ 5.069937] usbcore: registered new interface driver hub
> [ 5.093766] usbcore: registered new device driver usb
> [ 5.163736] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
> [ 5.170118] ohci_hcd 0000:00:0a.0: OHCI Host Controller
> [ 5.190581] ohci_hcd 0000:00:0a.0: new USB bus registered, assigned bus
> number 1
> [ 5.202619] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> [ 5.233765] ohci_hcd 0000:00:0a.0: irq 7, io mem 0xfeffd000
> [ 5.248441] Warning! ehci_hcd should always be loaded before uhci_hcd and
> ohci_hcd, not after
> [ 5.328444] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
> [ 5.335301] usb usb1: New USB device strings: Mfr=3, Product=2,
> SerialNumber=1
> [ 5.342550] usb usb1: Product: OHCI Host Controller
> [ 5.349599] usb usb1: Manufacturer: Linux 2.6.36-rc6-wl-wlplug20101006
> ohci_hcd
> [ 5.362825] usb usb1: SerialNumber: 0000:00:0a.0
> [ 5.369904] hub 1-0:1.0: USB hub found
> [ 5.373812] hub 1-0:1.0: 2 ports detected
> [ 5.379112] ehci_hcd 0000:00:0a.1: EHCI Host Controller
> [ 5.384472] ehci_hcd 0000:00:0a.1: new USB bus registered, assigned bus
> number 2
> [ 5.415841] ehci_hcd 0000:00:0a.1: irq 9, io mem 0xfefff800
> [ 5.433679] ehci_hcd 0000:00:0a.1: USB 2.0 started, EHCI 1.00
> [ 5.439605] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
> [ 5.446451] usb usb2: New USB device strings: Mfr=3, Product=2,
> SerialNumber=1
> [ 5.453717] usb usb2: Product: EHCI Host Controller
> [ 5.458621] usb usb2: Manufacturer: Linux 2.6.36-rc6-wl-wlplug20101006
> ehci_hcd
> [ 5.465974] usb usb2: SerialNumber: 0000:00:0a.1
> [ 5.472880] hub 2-0:1.0: USB hub found
> [ 5.476790] hub 2-0:1.0: 2 ports detected
> [ 5.482134] ohci_hcd 0000:00:0b.0: OHCI Host Controller
> [ 5.487507] ohci_hcd 0000:00:0b.0: new USB bus registered, assigned bus
> number 3
> [ 5.495105] ohci_hcd 0000:00:0b.0: irq 10, io mem 0xfeffe000
> [ 5.583815] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
> [ 5.590635] usb usb3: New USB device strings: Mfr=3, Product=2,
> SerialNumber=1
> [ 5.597906] usb usb3: Product: OHCI Host Controller
> [ 5.602810] usb usb3: Manufacturer: Linux 2.6.36-rc6-wl-wlplug20101006
> ohci_hcd
> [ 5.610216] usb usb3: SerialNumber: 0000:00:0b.0
> [ 5.617114] hub 3-0:1.0: USB hub found
> [ 5.620920] hub 3-0:1.0: 2 ports detected
> [ 5.626326] ehci_hcd 0000:00:0b.1: EHCI Host Controller
> [ 5.631628] ehci_hcd 0000:00:0b.1: new USB bus registered, assigned bus
> number 4
> [ 5.723840] ehci_hcd 0000:00:0b.1: irq 11, io mem 0xfefffc00
> [ 5.793740] usb 2-2: new high speed USB device using ehci_hcd and address
> 2
> [ 5.813661] ehci_hcd 0000:00:0b.1: USB 2.0 started, EHCI 1.00
> [ 5.819624] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002
> [ 5.826550] usb usb4: New USB device strings: Mfr=3, Product=2,
> SerialNumber=1
> [ 5.833845] usb usb4: Product: EHCI Host Controller
> [ 5.838765] usb usb4: Manufacturer: Linux 2.6.36-rc6-wl-wlplug20101006
> ehci_hcd
> [ 5.846122] usb usb4: SerialNumber: 0000:00:0b.1
> [ 5.853073] hub 4-0:1.0: USB hub found
> [ 5.856972] hub 4-0:1.0: 2 ports detected
> [ 6.012773] usb 2-2: New USB device found, idVendor=0cf3, idProduct=1002
> [ 6.019545] usb 2-2: New USB device strings: Mfr=16, Product=32,
> SerialNumber=48
> [ 6.026993] usb 2-2: Product: USB2.0 WLAN
> [ 6.031041] usb 2-2: Manufacturer: ATHER
> [ 6.037793] usb 2-2: SerialNumber: 12345
> [ 6.264804] REISERFS (device hda1): found reiserfs format "3.6" with
> standard journal
> [ 6.272704] REISERFS (device hda1): using ordered data mode
> [ 6.285441] REISERFS (device hda1): journal params: device hda1, size
> 8192, journal first block 18, max trans len 1024, max batch 900, max commit
> age 30, max trans age 30
> [ 6.311500] REISERFS (device hda1): checking transaction log (hda1)
> [ 6.343736] usb 4-2: new high speed USB device using ehci_hcd and address
> 2
> [ 6.498133] usb 4-2: New USB device found, idVendor=1435, idProduct=0427
> [ 6.505010] usb 4-2: New USB device strings: Mfr=1, Product=2,
> SerialNumber=0
> [ 6.512273] usb 4-2: Product: Cohiba 3887 rev0
> [ 6.516876] usb 4-2: Manufacturer: GlobespanVirata
> [ 6.604230] REISERFS (device hda1): replayed 22 transactions in 0 seconds
> [ 6.611613] REISERFS (device hda1): Using r5 hash to sort names
> [ 14.180410] udevd version 125 started
> [ 17.303283] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
> [ 17.394543] rtc0: alarms up to one day, 114 bytes nvram
> [ 18.090664] cfg80211: Calling CRDA to update world regulatory domain
> [ 18.944222] usb 2-2: reset high speed USB device using ehci_hcd and
> address 2
> [ 19.141331] usbcore: registered new interface driver carl9170
> [ 19.244279] usb 4-2: reset high speed USB device using ehci_hcd and
> address 2
> [ 19.286717] usb 2-2: driver API: 1.8.8.3 2010-09-28 [1-1]
> [ 19.292335] usb 2-2: firmware API: 1.8.8.3 2010-09-28
> [ 19.482896] ieee80211 phy0: p54 detected a LM87 firmware ----------phy0
> used by p54usb
> [ 19.492278] p54: rx_mtu reduced from 3240 to 2384
> [ 19.500711] ieee80211 phy0: FW rev 2.13.24.0 - Softmac protocol 5.9
> [ 19.507146] ieee80211 phy0: cryptographic accelerator WEP:YES, TKIP:YES,
> CCMP:YES
> [ 20.511550] ieee80211 phy0: hwaddr 00:0b:6b:9d:9e:12, MAC:isl3887
> RF:Frisbee
> [ 20.596019] ath: EEPROM regdomain: 0x809c
> [ 20.596047] ath: EEPROM indicates we should expect a country code
> [ 20.596070] ath: doing EEPROM country->regdmn map search
> [ 20.596091] ath: country maps to regdmn code: 0x52
> [ 20.596112] ath: Country alpha2 being used: CN
> [ 20.596130] ath: Regpair used: 0x52
> [ 20.596317] ------------[ cut here ]------------
> [ 20.600994] WARNING: at fs/sysfs/dir.c:451 sysfs_add_one+0x82/0xa0()
> [ 20.624263] sysfs: cannot create duplicate filename
> '/class/ieee80211/phy0' --seems carl9170 want to use the same phy id which
> was taken by p54usb
> [ 20.631249] Modules linked in: p54usb(+) carl9170 p54common led_class
> crc_ccitt mac80211 ath cfg80211 rtc_cmos ehci_hcd ohci_hcd usbcore
> ide_gd_mod
> [ 20.664483] Pid: 1141, comm: firmware/carl91 Not tainted
> 2.6.36-rc6-wl-wlplug20101006 #1
> [ 20.672595] Call Trace:
> [ 20.684320] [<c10d0d52>] ? sysfs_add_one+0x82/0xa0
> [ 20.689235] [<c10d0d52>] ? sysfs_add_one+0x82/0xa0
> [ 20.694159] [<c101e37c>] warn_slowpath_common+0x6c/0xa0
> [ 20.714291] [<c10d0d52>] ? sysfs_add_one+0x82/0xa0
> [ 20.719210] [<c101e42e>] warn_slowpath_fmt+0x2e/0x30
> [ 20.734351] [<c10d0d52>] sysfs_add_one+0x82/0xa0
> [ 20.739098] [<c10d1c71>] sysfs_do_create_link+0xf1/0x1d0
> [ 20.754405] [<c10d0565>] ? sysfs_add_file_mode+0x55/0x90
> [ 20.759855] [<c10d1d82>] sysfs_create_link+0x12/0x20
> [ 20.774302] [<c1190d74>] device_add+0x124/0x580
> [ 20.779007] [<e099091b>] wiphy_register+0x19b/0x280 [cfg80211]
> [ 20.794752] [<c1083cb0>] ? __kmalloc+0x70/0xc0
> [ 20.799374] [<e0a5442e>] ieee80211_register_hw+0x17e/0x530 [mac80211]
> [ 20.824361] [<e0b265f0>] ? carl9170_reg_notifier+0x0/0x40 [carl9170]
> [ 20.830849] [<e0b2639e>] carl9170_register+0x1ee/0x440 [carl9170]
> [ 20.844310] [<c1197920>] ? request_firmware_work_func+0x0/0x80
> [ 20.850280] [<e0b29ed1>] carl9170_usb_firmware_step2+0x81/0xe0
> [carl9170]
> [ 20.874296] [<c1197920>] ? request_firmware_work_func+0x0/0x80
> [ 20.880253] [<c119795b>] request_firmware_work_func+0x3b/0x80
> [ 20.894782] [<c1035c24>] kthread+0x74/0x80
> [ 20.899003] [<c1035bb0>] ? kthread+0x0/0x80
> [ 20.903307] [<c1002fb6>] kernel_thread_helper+0x6/0x10
> [ 20.924282] ---[ end trace 9fa154a9ec88252b ]---
> [ 21.238237] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
> [ 21.240677] Registered led device: p54-phy0::assoc
> [ 21.240874] Registered led device: p54-phy0::tx
> [ 21.241065] Registered led device: p54-phy0::rx
> [ 21.241259] Registered led device: p54-phy0::radio
> [ 21.241331] usb 4-2: is registered as 'phy0'
> [ 21.251183] usbcore: registered new interface driver p54usb
> [ 21.287635] udev: renamed network interface wlan0 to wlan2
> [ 23.197295] Adding 1004024k swap on /dev/hda5. Priority:-1 extents:1
> across:1004024k
>
> and when I replug the usb device it shows:
>
> [ 381.379902] usb 2-2: USB disconnect, address 2
> [ 384.589713] usb 2-2: new high speed USB device using ehci_hcd and address
> 3
> [ 384.797802] usb 2-2: New USB device found, idVendor=0cf3, idProduct=1002
> [ 384.805225] usb 2-2: New USB device strings: Mfr=16, Product=32,
> SerialNumber=48
> [ 384.813306] usb 2-2: Product: USB2.0 WLAN
> [ 384.817350] usb 2-2: Manufacturer: ATHER
> [ 384.822311] usb 2-2: SerialNumber: 12345
> [ 385.229748] usb 2-2: reset high speed USB device using ehci_hcd and
> address 3
> [ 385.428787] usbcore: registered new interface driver carl9170
> [ 385.501003] usb 2-2: driver API: 1.8.8.3 2010-09-28 [1-1]
> [ 385.506622] usb 2-2: firmware API: 1.8.8.3 2010-09-28
> [ 386.805068] ath: EEPROM regdomain: 0x809c
> [ 386.805095] ath: EEPROM indicates we should expect a country code
> [ 386.805119] ath: doing EEPROM country->regdmn map search
> [ 386.805139] ath: country maps to regdmn code: 0x52
> [ 386.805161] ath: Country alpha2 being used: CN
> [ 386.805178] ath: Regpair used: 0x52
> [ 386.812918] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
> [ 386.816154] cfg80211: Calling CRDA for country: CN
> [ 386.833303] input: phy1 WPS Button as
> /devices/pci0000:00/0000:00:0a.1/usb2/2-2/2-2:1.0/ieee80211/phy1/input0
> [ 386.846922] udev: renamed network interface wlan0 to wlan6
> [ 386.879907] usb 2-2: Atheros AR9170 is registered as 'phy1' --------
>
> then all goes fine."
>
> In a roundup he said that the bug might originate from:
> http://git.kernel.org/?p=linux/kernel/git/linville/wireless-testing.git;a=commitdiff;h=5a254ffe3ffdfa84fe076009bd8e88da412180d2
>
> and that a previous version of net/wireless/core.c
> solved the problem.
>
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: phyX enumeration conflict
2010-10-10 8:09 ` Johannes Berg
@ 2010-10-10 8:16 ` Johannes Berg
2010-10-10 15:39 ` Ben Greear
0 siblings, 1 reply; 9+ messages in thread
From: Johannes Berg @ 2010-10-10 8:16 UTC (permalink / raw)
To: Christian Lamparter
Cc: linux-wireless, John W. Linville, Ben Greear, rainbow lum
On Sun, 2010-10-10 at 10:09 +0200, Johannes Berg wrote:
> The commit failed to take into account that allocated wireless devices
> (wiphys) are not added into the device list upon allocation, but only
> when they are registered. Therefore, it opened up a race between
> allocating and registering a name, so that if two processes allocate and
> register concurrently ("alloc, alloc, register, register" rather than
> "alloc, register, alloc, register") the code will attempt to use the
> same name twice.
And as for the actual feature, as far as I'm concerned the discussion
ends here because we otherwise need to use something as complex as idr.
A udev rule can't break the kernel and works just as well, even if
you'll have to use a different namespace, i.e. not "phy%d" -- use say
"wiphy%d" instead.
johannes
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: phyX enumeration conflict
2010-10-10 8:16 ` Johannes Berg
@ 2010-10-10 15:39 ` Ben Greear
2010-10-10 16:43 ` Johannes Berg
0 siblings, 1 reply; 9+ messages in thread
From: Ben Greear @ 2010-10-10 15:39 UTC (permalink / raw)
To: Johannes Berg
Cc: Christian Lamparter, linux-wireless, John W. Linville,
rainbow lum
On 10/10/2010 01:16 AM, Johannes Berg wrote:
> On Sun, 2010-10-10 at 10:09 +0200, Johannes Berg wrote:
>
>> The commit failed to take into account that allocated wireless devices
>> (wiphys) are not added into the device list upon allocation, but only
>> when they are registered. Therefore, it opened up a race between
>> allocating and registering a name, so that if two processes allocate and
>> register concurrently ("alloc, alloc, register, register" rather than
>> "alloc, register, alloc, register") the code will attempt to use the
>> same name twice.
>
> And as for the actual feature, as far as I'm concerned the discussion
> ends here because we otherwise need to use something as complex as idr.
> A udev rule can't break the kernel and works just as well, even if
> you'll have to use a different namespace, i.e. not "phy%d" -- use say
> "wiphy%d" instead.
Sorry about that. If anyone has any example udev magic to do this sort
of thing, I'd like to try that out.
Thanks,
Ben
>
> johannes
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: phyX enumeration conflict
2010-10-10 15:39 ` Ben Greear
@ 2010-10-10 16:43 ` Johannes Berg
2010-10-11 17:26 ` Ben Greear
0 siblings, 1 reply; 9+ messages in thread
From: Johannes Berg @ 2010-10-10 16:43 UTC (permalink / raw)
To: Ben Greear
Cc: Christian Lamparter, linux-wireless, John W. Linville,
rainbow lum
On Sun, 2010-10-10 at 08:39 -0700, Ben Greear wrote:
> Sorry about that. If anyone has any example udev magic to do this sort
> of thing, I'd like to try that out.
This works:
/etc/udev/rules.d/70-phyname.rules:
-- begin --
ACTION!="add", GOTO="phyname_end"
SUBSYSTEM!="ieee80211", GOTO="phyname_end"
# read MAC address
ENV{MATCHADDR}="$attr{macaddress}"
ENV{PHYIDX}="$attr{index}"
ENV{MATCHADDR}=="02:00:00:00:00:00", RUN+="/usr/sbin/iw %k set name hwsim0"
LABEL="phyname_end"
-- end --
Of course, you'd probably want to do something like
persistent-net-generator etc, but I'll leave that to somebody else.
Just remember you can't actually name it "phy0".
johannes
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: phyX enumeration conflict
2010-10-10 16:43 ` Johannes Berg
@ 2010-10-11 17:26 ` Ben Greear
2010-10-11 17:34 ` Johannes Berg
0 siblings, 1 reply; 9+ messages in thread
From: Ben Greear @ 2010-10-11 17:26 UTC (permalink / raw)
To: Johannes Berg
Cc: Christian Lamparter, linux-wireless, John W. Linville,
rainbow lum
On 10/10/2010 09:43 AM, Johannes Berg wrote:
> On Sun, 2010-10-10 at 08:39 -0700, Ben Greear wrote:
>
>> Sorry about that. If anyone has any example udev magic to do this sort
>> of thing, I'd like to try that out.
>
> This works:
>
> /etc/udev/rules.d/70-phyname.rules:
> -- begin --
> ACTION!="add", GOTO="phyname_end"
> SUBSYSTEM!="ieee80211", GOTO="phyname_end"
>
> # read MAC address
> ENV{MATCHADDR}="$attr{macaddress}"
> ENV{PHYIDX}="$attr{index}"
>
> ENV{MATCHADDR}=="02:00:00:00:00:00", RUN+="/usr/sbin/iw %k set name hwsim0"
>
> LABEL="phyname_end"
> -- end --
>
> Of course, you'd probably want to do something like
> persistent-net-generator etc, but I'll leave that to somebody else.
>
> Just remember you can't actually name it "phy0".
Ok, that part is working.
However, the 'phy0' name doesn't change in
/debug/ath5k/[phy-dev]/ link, so it confuses my tools.
I'm going to see if I can get that fixed somehow...
Thanks,
Ben
>
> johannes
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: phyX enumeration conflict
2010-10-11 17:26 ` Ben Greear
@ 2010-10-11 17:34 ` Johannes Berg
2010-10-11 17:46 ` Ben Greear
0 siblings, 1 reply; 9+ messages in thread
From: Johannes Berg @ 2010-10-11 17:34 UTC (permalink / raw)
To: Ben Greear
Cc: Christian Lamparter, linux-wireless, John W. Linville,
rainbow lum
On Mon, 2010-10-11 at 10:26 -0700, Ben Greear wrote:
> However, the 'phy0' name doesn't change in
> /debug/ath5k/[phy-dev]/ link, so it confuses my tools.
If it used /debug/ieee80211/[phy-dev]/ then it'd be renamed
automatically...
johannes
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: phyX enumeration conflict
2010-10-11 17:34 ` Johannes Berg
@ 2010-10-11 17:46 ` Ben Greear
2010-10-11 17:56 ` Johannes Berg
0 siblings, 1 reply; 9+ messages in thread
From: Ben Greear @ 2010-10-11 17:46 UTC (permalink / raw)
To: Johannes Berg
Cc: Christian Lamparter, linux-wireless, John W. Linville,
rainbow lum
On 10/11/2010 10:34 AM, Johannes Berg wrote:
> On Mon, 2010-10-11 at 10:26 -0700, Ben Greear wrote:
>
>> However, the 'phy0' name doesn't change in
>> /debug/ath5k/[phy-dev]/ link, so it confuses my tools.
>
> If it used /debug/ieee80211/[phy-dev]/ then it'd be renamed
> automatically...
I need to get at specific info in the driver's debugfs dir, however.
Thanks,
Ben
>
> johannes
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: phyX enumeration conflict
2010-10-11 17:46 ` Ben Greear
@ 2010-10-11 17:56 ` Johannes Berg
0 siblings, 0 replies; 9+ messages in thread
From: Johannes Berg @ 2010-10-11 17:56 UTC (permalink / raw)
To: Ben Greear
Cc: Christian Lamparter, linux-wireless, John W. Linville,
rainbow lum
On Mon, 2010-10-11 at 10:46 -0700, Ben Greear wrote:
> On 10/11/2010 10:34 AM, Johannes Berg wrote:
> > On Mon, 2010-10-11 at 10:26 -0700, Ben Greear wrote:
> >
> >> However, the 'phy0' name doesn't change in
> >> /debug/ath5k/[phy-dev]/ link, so it confuses my tools.
> >
> > If it used /debug/ieee80211/[phy-dev]/ then it'd be renamed
> > automatically...
>
> I need to get at specific info in the driver's debugfs dir, however.
Yeah but you can change the driver to put its own stuff into that
directory, and then it doesn't have to worry about renames (which it
isn't told about anyway)
johannes
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-10-11 17:56 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-08 19:59 phyX enumeration conflict Christian Lamparter
2010-10-10 8:09 ` Johannes Berg
2010-10-10 8:16 ` Johannes Berg
2010-10-10 15:39 ` Ben Greear
2010-10-10 16:43 ` Johannes Berg
2010-10-11 17:26 ` Ben Greear
2010-10-11 17:34 ` Johannes Berg
2010-10-11 17:46 ` Ben Greear
2010-10-11 17:56 ` Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).