2012-12-17 11:02:28

by Mikael Pettersson

[permalink] [raw]
Subject: [3.7.0 regression] rt2x00lib_probe_dev: Error - Failed to initialize hw

I just updated an old 1st gen AMD64 laptop from kernel 3.6.0 to 3.7.0,
Fedora 15 user-space, and was greeted by the following kernel warning:

WARNING: at net/wireless/core.c:389 wiphy_register+0x5c3/0x600 [cfg80211]()
Hardware name: SAM#451B
Modules linked in: rt2500pci(+) snd_mpu401_uart rt2x00pci snd_rawmidi rt2x00lib sg snd_seq_device mac80211 cfg80211 amd64_agp agpgart snd eeprom_93cx6 soundcore via_rhine mii evdev ipv6 ehci_hcd uhci_hcd sr_mod cdrom usbcore usb_common
Pid: 378, comm: modprobe Not tainted 3.7.0 #1
Call Trace:
[<ffffffff810260b9>] ? warn_slowpath_common+0x79/0xc0
[<ffffffffa0115773>] ? wiphy_register+0x5c3/0x600 [cfg80211]
[<ffffffff810c5b3f>] ? __kmalloc+0xef/0x170
[<ffffffffa013ac97>] ? ieee80211_register_hw+0x347/0x6d0 [mac80211]
[<ffffffffa00f92ed>] ? rt2x00lib_probe_dev+0x53d/0x720 [rt2x00lib]
[<ffffffffa0060888>] ? rt2x00pci_probe+0x168/0x2e4 [rt2x00pci]
[<ffffffff81194cd0>] ? pci_device_probe+0xd0/0x170
[<ffffffff811f2934>] ? driver_probe_device+0x64/0x210
[<ffffffff811f2b73>] ? __driver_attach+0x93/0xa0
[<ffffffff811f2ae0>] ? driver_probe_device+0x210/0x210
[<ffffffff811f0f95>] ? bus_for_each_dev+0x45/0x80
[<ffffffff811f20d8>] ? bus_add_driver+0x178/0x250
[<ffffffff811f314e>] ? driver_register+0x6e/0x170
[<ffffffff81048a14>] ? notifier_call_chain+0x44/0x60
[<ffffffffa0196000>] ? 0xffffffffa0195fff
[<ffffffff810002ca>] ? do_one_initcall+0x11a/0x160
[<ffffffff81069786>] ? sys_init_module+0x76/0x1c0
[<ffffffff812c15d0>] ? system_call_fastpath+0x16/0x1b
---[ end trace f8413f27de31929d ]---
phy0 -> rt2x00lib_probe_dev: Error - Failed to initialize hw.
rt2500pci: probe of 0000:00:0c.0 failed with error -22

Rebooting into 3.6.0 shows no such error, booting 3.7.0 again shows the error,
so it's completely reproducible.

lspci -v for the device in question:

00:0c.0 Network controller: Ralink corp. RT2500 802.11g (rev 01)
Subsystem: Micro-Star International Co., Ltd. Unknown 802.11g mini-PCI Adapter
Flags: bus master, slow devsel, latency 64, IRQ 18
Memory at d0000000 (32-bit, non-prefetchable) [size=8K]
Capabilities: [40] Power Management version 2
Kernel driver in use: rt2500pci
Kernel modules: rt2500pci

I've never actually used or configured this device (the laptop is always
on wired ethernet), but thought you should know about this possible driver
regression.

/Mikael


2012-12-17 11:10:39

by devendra.aaru

[permalink] [raw]
Subject: Re: [3.7.0 regression] rt2x00lib_probe_dev: Error - Failed to initialize hw

On Mon, Dec 17, 2012 at 5:51 AM, Mikael Pettersson <[email protected]> wrote:
> I just updated an old 1st gen AMD64 laptop from kernel 3.6.0 to 3.7.0,
> Fedora 15 user-space, and was greeted by the following kernel warning:
>
> WARNING: at net/wireless/core.c:389 wiphy_register+0x5c3/0x600 [cfg80211]()

I am seeing this line actually when i do vim +389 net/wireless/core.c.

u16 all_iftypes = 0;

its good if you tell us the top sha1 of yours?


> Hardware name: SAM#451B
> Modules linked in: rt2500pci(+) snd_mpu401_uart rt2x00pci snd_rawmidi rt2x00lib sg snd_seq_device mac80211 cfg80211 amd64_agp agpgart snd eeprom_93cx6 soundcore via_rhine mii evdev ipv6 ehci_hcd uhci_hcd sr_mod cdrom usbcore usb_common
> Pid: 378, comm: modprobe Not tainted 3.7.0 #1
> Call Trace:
> [<ffffffff810260b9>] ? warn_slowpath_common+0x79/0xc0
> [<ffffffffa0115773>] ? wiphy_register+0x5c3/0x600 [cfg80211]
> [<ffffffff810c5b3f>] ? __kmalloc+0xef/0x170
> [<ffffffffa013ac97>] ? ieee80211_register_hw+0x347/0x6d0 [mac80211]
> [<ffffffffa00f92ed>] ? rt2x00lib_probe_dev+0x53d/0x720 [rt2x00lib]
> [<ffffffffa0060888>] ? rt2x00pci_probe+0x168/0x2e4 [rt2x00pci]
> [<ffffffff81194cd0>] ? pci_device_probe+0xd0/0x170
> [<ffffffff811f2934>] ? driver_probe_device+0x64/0x210
> [<ffffffff811f2b73>] ? __driver_attach+0x93/0xa0
> [<ffffffff811f2ae0>] ? driver_probe_device+0x210/0x210
> [<ffffffff811f0f95>] ? bus_for_each_dev+0x45/0x80
> [<ffffffff811f20d8>] ? bus_add_driver+0x178/0x250
> [<ffffffff811f314e>] ? driver_register+0x6e/0x170
> [<ffffffff81048a14>] ? notifier_call_chain+0x44/0x60
> [<ffffffffa0196000>] ? 0xffffffffa0195fff
> [<ffffffff810002ca>] ? do_one_initcall+0x11a/0x160
> [<ffffffff81069786>] ? sys_init_module+0x76/0x1c0
> [<ffffffff812c15d0>] ? system_call_fastpath+0x16/0x1b
> ---[ end trace f8413f27de31929d ]---
> phy0 -> rt2x00lib_probe_dev: Error - Failed to initialize hw.
> rt2500pci: probe of 0000:00:0c.0 failed with error -22
>
> Rebooting into 3.6.0 shows no such error, booting 3.7.0 again shows the error,
> so it's completely reproducible.
>

there are lots of WARN_ON's btw, :) may be one of them triggered, but
please tell us the top sha1 of yours, so that the wireless dev's can
easily see whats' happening with the rt2x00 to trigger this :)


> lspci -v for the device in question:
>
> 00:0c.0 Network controller: Ralink corp. RT2500 802.11g (rev 01)
> Subsystem: Micro-Star International Co., Ltd. Unknown 802.11g mini-PCI Adapter
> Flags: bus master, slow devsel, latency 64, IRQ 18
> Memory at d0000000 (32-bit, non-prefetchable) [size=8K]
> Capabilities: [40] Power Management version 2
> Kernel driver in use: rt2500pci
> Kernel modules: rt2500pci
>
> I've never actually used or configured this device (the laptop is always
> on wired ethernet), but thought you should know about this possible driver
> regression.
>
> /Mikael
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2012-12-17 12:59:07

by devendra.aaru

[permalink] [raw]
Subject: Re: [3.7.0 regression] rt2x00lib_probe_dev: Error - Failed to initialize hw

On Mon, Dec 17, 2012 at 7:22 AM, Mikael Pettersson <[email protected]> wrote:
> devendra.aaru writes:
> > On Mon, Dec 17, 2012 at 5:51 AM, Mikael Pettersson <[email protected]> wrote:
> > > I just updated an old 1st gen AMD64 laptop from kernel 3.6.0 to 3.7.0,
> > > Fedora 15 user-space, and was greeted by the following kernel warning:
> > >
> > > WARNING: at net/wireless/core.c:389 wiphy_register+0x5c3/0x600 [cfg80211]()
> >
> > I am seeing this line actually when i do vim +389 net/wireless/core.c.
> >
> > u16 all_iftypes = 0;
> >
> > its good if you tell us the top sha1 of yours?
>
> It's the plain linux-3.7.tar.xz from kernel.org, no git involved.
> Lines 389-390 of net/wireless/core.c are:
>
> if (WARN_ON(c->max_interfaces < 2))
> return -EINVAL;
>

so its v3.7 tag hash 29594404d7fe73cd80eaa4ee8c43dcc53970c60e.

i see that code line :). thanks

i traced a while and looked at the rt2500pci.c code and there we are
assigning the max_ap_intf variable to 1. the same go with the
rt2800pci.c

here's the part of the ops structure

static const struct rt2x00_ops rt2500pci_ops = {
.name = KBUILD_MODNAME,
.max_ap_intf = 1,
.eeprom_size = EEPROM_SIZE,
.rf_size = RF_SIZE,
.tx_queues = NUM_TX_QUEUES,
.extra_tx_headroom = 0,
.rx = &rt2500pci_queue_rx,
.tx = &rt2500pci_queue_tx,
.bcn = &rt2500pci_queue_bcn,
.atim = &rt2500pci_queue_atim,
.lib = &rt2500pci_rt2x00_ops,
.hw = &rt2500pci_mac80211_ops,
#ifdef CONFIG_RT2X00_LIB_DEBUGFS
.debugfs = &rt2500pci_rt2x00debug,
#endif /* CONFIG_RT2X00_LIB_DEBUGFS */
};

i really dont know why is that max_ap_intf is 1. may be some wireless
dev's know about this?


> /Mikael
>

2012-12-17 13:58:11

by Mikael Pettersson

[permalink] [raw]
Subject: Re: [3.7.0 regression] rt2x00lib_probe_dev: Error - Failed to initialize hw

Gertjan van Wingerde writes:
> Mikael, Devendra,
>
> On Mon, Dec 17, 2012 at 1:59 PM, devendra.aaru <[email protected]> wrote:
> > On Mon, Dec 17, 2012 at 7:22 AM, Mikael Pettersson <[email protected]> wrote:
> >> devendra.aaru writes:
> >> > On Mon, Dec 17, 2012 at 5:51 AM, Mikael Pettersson <[email protected]> wrote:
> >> > > I just updated an old 1st gen AMD64 laptop from kernel 3.6.0 to 3.7.0,
> >> > > Fedora 15 user-space, and was greeted by the following kernel warning:
> >> > >
> >> > > WARNING: at net/wireless/core.c:389 wiphy_register+0x5c3/0x600 [cfg80211]()
...
> This is caused by the introduction of interface combinations. Helmut
> Schaa has already submitted a patch to fix this, but this has
> unfortunately not ended up in 3.7. I'm confident it will end up in one
> of the upcoming 3.7.x stable releases.
>
> See http://marc.info/?l=linux-wireless&m=135478723823922&w=2 for the
> patch submitted by Helmut.

That patch fixes the problem. Thanks.

/Mikael

2012-12-17 13:48:50

by Stanislaw Gruszka

[permalink] [raw]
Subject: Re: [3.7.0 regression] rt2x00lib_probe_dev: Error - Failed to initialize hw

On Mon, Dec 17, 2012 at 11:51:14AM +0100, Mikael Pettersson wrote:
> I just updated an old 1st gen AMD64 laptop from kernel 3.6.0 to 3.7.0,
> Fedora 15 user-space, and was greeted by the following kernel warning:
>
> WARNING: at net/wireless/core.c:389 wiphy_register+0x5c3/0x600 [cfg80211]()

Already fixed on linus tree, should appear in 3.7 -stable soon.

commit f5685ba675449b072feab6a5391a9ef9f604bc94
Author: Helmut Schaa <[email protected]>
Date: Mon Dec 3 22:35:39 2012 +0100

rt2x00: Only specify interface combinations if more then one interface is possible

Stanislaw

2012-12-17 11:11:43

by devendra.aaru

[permalink] [raw]
Subject: Re: [3.7.0 regression] rt2x00lib_probe_dev: Error - Failed to initialize hw

> I am seeing this line actually when i do vim +389 net/wireless/core.c.
>
> u16 all_iftypes = 0;
>
> its good if you tell us the top sha1 of yours?

i am sorry, btw mine's at a4f1de176614f634c367e5994a7bcc428c940df0.

2012-12-17 13:21:22

by Gertjan van Wingerde

[permalink] [raw]
Subject: Re: [3.7.0 regression] rt2x00lib_probe_dev: Error - Failed to initialize hw

Mikael, Devendra,

On Mon, Dec 17, 2012 at 1:59 PM, devendra.aaru <[email protected]> wrote:
> On Mon, Dec 17, 2012 at 7:22 AM, Mikael Pettersson <[email protected]> wrote:
>> devendra.aaru writes:
>> > On Mon, Dec 17, 2012 at 5:51 AM, Mikael Pettersson <[email protected]> wrote:
>> > > I just updated an old 1st gen AMD64 laptop from kernel 3.6.0 to 3.7.0,
>> > > Fedora 15 user-space, and was greeted by the following kernel warning:
>> > >
>> > > WARNING: at net/wireless/core.c:389 wiphy_register+0x5c3/0x600 [cfg80211]()
>> >
>> > I am seeing this line actually when i do vim +389 net/wireless/core.c.
>> >
>> > u16 all_iftypes = 0;
>> >
>> > its good if you tell us the top sha1 of yours?
>>
>> It's the plain linux-3.7.tar.xz from kernel.org, no git involved.
>> Lines 389-390 of net/wireless/core.c are:
>>
>> if (WARN_ON(c->max_interfaces < 2))
>> return -EINVAL;
>>
>
> so its v3.7 tag hash 29594404d7fe73cd80eaa4ee8c43dcc53970c60e.
>
> i see that code line :). thanks
>
> i traced a while and looked at the rt2500pci.c code and there we are
> assigning the max_ap_intf variable to 1. the same go with the
> rt2800pci.c
>
> here's the part of the ops structure
>
> static const struct rt2x00_ops rt2500pci_ops = {
> .name = KBUILD_MODNAME,
> .max_ap_intf = 1,
> .eeprom_size = EEPROM_SIZE,
> .rf_size = RF_SIZE,
> .tx_queues = NUM_TX_QUEUES,
> .extra_tx_headroom = 0,
> .rx = &rt2500pci_queue_rx,
> .tx = &rt2500pci_queue_tx,
> .bcn = &rt2500pci_queue_bcn,
> .atim = &rt2500pci_queue_atim,
> .lib = &rt2500pci_rt2x00_ops,
> .hw = &rt2500pci_mac80211_ops,
> #ifdef CONFIG_RT2X00_LIB_DEBUGFS
> .debugfs = &rt2500pci_rt2x00debug,
> #endif /* CONFIG_RT2X00_LIB_DEBUGFS */
> };
>
> i really dont know why is that max_ap_intf is 1. may be some wireless
> dev's know about this?
>
>
>> /Mikael

This is caused by the introduction of interface combinations. Helmut
Schaa has already submitted a patch to fix this, but this has
unfortunately not ended up in 3.7. I'm confident it will end up in one
of the upcoming 3.7.x stable releases.

See http://marc.info/?l=linux-wireless&m=135478723823922&w=2 for the
patch submitted by Helmut.
---
Gertjan

2012-12-17 14:14:35

by devendra.aaru

[permalink] [raw]
Subject: Re: [3.7.0 regression] rt2x00lib_probe_dev: Error - Failed to initialize hw

> This is caused by the introduction of interface combinations. Helmut
> Schaa has already submitted a patch to fix this, but this has
> unfortunately not ended up in 3.7. I'm confident it will end up in one
> of the upcoming 3.7.x stable releases.
>
> See http://marc.info/?l=linux-wireless&m=135478723823922&w=2 for the
> patch submitted by Helmut.
> ---
> Gertjan


thanks for the info, it seems that it fixes Mikael's problem.

2012-12-17 12:24:08

by Mikael Pettersson

[permalink] [raw]
Subject: Re: [3.7.0 regression] rt2x00lib_probe_dev: Error - Failed to initialize hw

devendra.aaru writes:
> On Mon, Dec 17, 2012 at 5:51 AM, Mikael Pettersson <[email protected]> wrote:
> > I just updated an old 1st gen AMD64 laptop from kernel 3.6.0 to 3.7.0,
> > Fedora 15 user-space, and was greeted by the following kernel warning:
> >
> > WARNING: at net/wireless/core.c:389 wiphy_register+0x5c3/0x600 [cfg80211]()
>
> I am seeing this line actually when i do vim +389 net/wireless/core.c.
>
> u16 all_iftypes = 0;
>
> its good if you tell us the top sha1 of yours?

It's the plain linux-3.7.tar.xz from kernel.org, no git involved.
Lines 389-390 of net/wireless/core.c are:

if (WARN_ON(c->max_interfaces < 2))
return -EINVAL;

/Mikael

>
>
> > Hardware name: SAM#451B
> > Modules linked in: rt2500pci(+) snd_mpu401_uart rt2x00pci snd_rawmidi rt2x00lib sg snd_seq_device mac80211 cfg80211 amd64_agp agpgart snd eeprom_93cx6 soundcore via_rhine mii evdev ipv6 ehci_hcd uhci_hcd sr_mod cdrom usbcore usb_common
> > Pid: 378, comm: modprobe Not tainted 3.7.0 #1
> > Call Trace:
> > [<ffffffff810260b9>] ? warn_slowpath_common+0x79/0xc0
> > [<ffffffffa0115773>] ? wiphy_register+0x5c3/0x600 [cfg80211]
> > [<ffffffff810c5b3f>] ? __kmalloc+0xef/0x170
> > [<ffffffffa013ac97>] ? ieee80211_register_hw+0x347/0x6d0 [mac80211]
> > [<ffffffffa00f92ed>] ? rt2x00lib_probe_dev+0x53d/0x720 [rt2x00lib]
> > [<ffffffffa0060888>] ? rt2x00pci_probe+0x168/0x2e4 [rt2x00pci]
> > [<ffffffff81194cd0>] ? pci_device_probe+0xd0/0x170
> > [<ffffffff811f2934>] ? driver_probe_device+0x64/0x210
> > [<ffffffff811f2b73>] ? __driver_attach+0x93/0xa0
> > [<ffffffff811f2ae0>] ? driver_probe_device+0x210/0x210
> > [<ffffffff811f0f95>] ? bus_for_each_dev+0x45/0x80
> > [<ffffffff811f20d8>] ? bus_add_driver+0x178/0x250
> > [<ffffffff811f314e>] ? driver_register+0x6e/0x170
> > [<ffffffff81048a14>] ? notifier_call_chain+0x44/0x60
> > [<ffffffffa0196000>] ? 0xffffffffa0195fff
> > [<ffffffff810002ca>] ? do_one_initcall+0x11a/0x160
> > [<ffffffff81069786>] ? sys_init_module+0x76/0x1c0
> > [<ffffffff812c15d0>] ? system_call_fastpath+0x16/0x1b
> > ---[ end trace f8413f27de31929d ]---
> > phy0 -> rt2x00lib_probe_dev: Error - Failed to initialize hw.
> > rt2500pci: probe of 0000:00:0c.0 failed with error -22
> >
> > Rebooting into 3.6.0 shows no such error, booting 3.7.0 again shows the error,
> > so it's completely reproducible.
> >
>
> there are lots of WARN_ON's btw, :) may be one of them triggered, but
> please tell us the top sha1 of yours, so that the wireless dev's can
> easily see whats' happening with the rt2x00 to trigger this :)
>
>
> > lspci -v for the device in question:
> >
> > 00:0c.0 Network controller: Ralink corp. RT2500 802.11g (rev 01)
> > Subsystem: Micro-Star International Co., Ltd. Unknown 802.11g mini-PCI Adapter
> > Flags: bus master, slow devsel, latency 64, IRQ 18
> > Memory at d0000000 (32-bit, non-prefetchable) [size=8K]
> > Capabilities: [40] Power Management version 2
> > Kernel driver in use: rt2500pci
> > Kernel modules: rt2500pci
> >
> > I've never actually used or configured this device (the laptop is always
> > on wired ethernet), but thought you should know about this possible driver
> > regression.
> >
> > /Mikael
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
>