2010-06-02 09:36:12

by Fabio Rossi

[permalink] [raw]
Subject: WARNING: at drivers/base/core.c:130 device_release+0x82/0x90()

Compiling the kernel without ACPI (CONFIG_ACPI=n) gives the following warning:

cfg80211: Calling CRDA to update world regulatory domain
cfg80211: World regulatory domain updated:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
(2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
ath5k 0000:08:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
ath5k 0000:08:01.0: registered as 'phy0'
ath5k phy0: request_irq failed
------------[ cut here ]------------
WARNING: at drivers/base/core.c:130 device_release+0x82/0x90()
Hardware name: System Product Name
Device 'phy0' does not have a release() function, it is broken and must be
fixed.
Modules linked in: ath5k(+) mac80211 ath cfg80211 vmnet vsock vmci vmmon
gspca_zc3xx gspca_main [last unloaded: cfg80211]
Pid: 8607, comm: modprobe Tainted: G W 2.6.35-rc1-wl #50
Call Trace:
[<ffffffff8103917a>] warn_slowpath_common+0x7a/0xb0
[<ffffffff81039251>] warn_slowpath_fmt+0x41/0x50
[<ffffffff8138c4a2>] device_release+0x82/0x90
[<ffffffff81225fc7>] kobject_release+0x47/0x90
[<ffffffff81225f80>] ? kobject_release+0x0/0x90
[<ffffffff81227187>] kref_put+0x37/0x70
[<ffffffff81225e87>] kobject_put+0x27/0x60
[<ffffffff8138be22>] put_device+0x12/0x20
[<ffffffffa00eb790>] wiphy_free+0x10/0x20 [cfg80211]
[<ffffffffa011102d>] ieee80211_free_hw+0xd/0x10 [mac80211]
[<ffffffffa016f891>] ath5k_pci_probe+0x16da/0x1710 [ath5k]
[<ffffffff811089da>] ? __sysfs_add_one+0x2a/0xe0
[<ffffffff81108b07>] ? sysfs_add_one+0x27/0xd0
[<ffffffff8123e322>] local_pci_probe+0x12/0x20
[<ffffffff8123e5d0>] pci_device_probe+0x80/0xb0
[<ffffffff8138f98a>] ? driver_sysfs_add+0x5a/0x90
[<ffffffff8138facd>] driver_probe_device+0x8d/0x1a0
[<ffffffff8138fc73>] __driver_attach+0x93/0xa0
[<ffffffff8138fbe0>] ? __driver_attach+0x0/0xa0
[<ffffffff8138f1e8>] bus_for_each_dev+0x68/0x90
[<ffffffff8138f929>] driver_attach+0x19/0x20
[<ffffffff8138e9a8>] bus_add_driver+0xb8/0x260
[<ffffffff8138ff68>] driver_register+0x78/0x140
[<ffffffff8123e841>] __pci_register_driver+0x51/0xd0
[<ffffffff811f2996>] ? debugfs_create_dir+0x16/0x20
[<ffffffffa0180000>] ? init_ath5k_pci+0x0/0x43 [ath5k]
[<ffffffffa0180028>] init_ath5k_pci+0x28/0x43 [ath5k]
[<ffffffff810001d7>] do_one_initcall+0x37/0x190
[<ffffffff81066fc6>] sys_init_module+0xd6/0x250
[<ffffffff810023ab>] system_call_fastpath+0x16/0x1b
---[ end trace a6ef611dbd725746 ]---
ath5k 0000:08:01.0: PCI INT A disabled
ath5k: probe of 0000:08:01.0 failed with error -22

It is not possible to use the wireless network.

Fabio


2010-06-06 09:45:04

by Fabio Rossi

[permalink] [raw]
Subject: Re: WARNING: at drivers/base/core.c:130 device_release+0x82/0x90()

On Sunday 06 June 2010 11:29:54 Luis R. Rodriguez wrote:

> On Sun, Jun 6, 2010 at 2:28 AM, Luis R. Rodriguez <[email protected]> wrote:
> > On Fri, Jun 4, 2010 at 1:25 AM, Fabio Rossi <[email protected]> wrote:
> >> On Wednesday 02 June 2010 23:42:14 Luis R. Rodriguez wrote:
> >>> On Wed, Jun 2, 2010 at 2:29 AM, Fabio Rossi <[email protected]> wrote:
> >>> > Compiling the kernel without ACPI (CONFIG_ACPI=n) gives the following
> >>> > warning:
> >>> >
> >>> > cfg80211: Calling CRDA to update world regulatory domain
> >>> > cfg80211: World regulatory domain updated:
> >>> > (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
> >>> > (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> >>> > ath5k 0000:08:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
> >>> > ath5k 0000:08:01.0: registered as 'phy0'
> >>> > ath5k phy0: request_irq failed
> >>> > ------------[ cut here ]------------
> >>>
> >>> Since traces are printed reversed you will have to read my logic from
> >>> bottom to top:
> >>>
> >>> Seems we need to implement the dev_release() op for the class of our
> >>> devices.
> >>
> >> Shall I open a bug in kernel bugzilla to keep trace of this?
> >
> > Nah something else is up...
> >
> > struct class ieee80211_class = {
> > .name = "ieee80211",
> > .owner = THIS_MODULE,
> > .dev_release = wiphy_dev_release,
> > .dev_attrs = ieee80211_dev_attrs,
> > #ifdef CONFIG_HOTPLUG
> > .dev_uevent = wiphy_uevent,
> > #endif
> > .suspend = wiphy_suspend,
> > .resume = wiphy_resume,
> > };
>
> This is wireless-testing, not compat-wireless right?

Yes, I'm using the latest wireless-testing.git

Fabio


2010-06-06 09:29:11

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: WARNING: at drivers/base/core.c:130 device_release+0x82/0x90()

On Fri, Jun 4, 2010 at 1:25 AM, Fabio Rossi <[email protected]> wrote:
> On Wednesday 02 June 2010 23:42:14 Luis R. Rodriguez wrote:
>
>> On Wed, Jun 2, 2010 at 2:29 AM, Fabio Rossi <[email protected]> wrote:
>> > Compiling the kernel without ACPI (CONFIG_ACPI=n) gives the following
>> > warning:
>> >
>> > cfg80211: Calling CRDA to update world regulatory domain
>> > cfg80211: World regulatory domain updated:
>> >    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
>> >    (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
>> > ath5k 0000:08:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
>> > ath5k 0000:08:01.0: registered as 'phy0'
>> > ath5k phy0: request_irq failed
>> > ------------[ cut here ]------------
>>
>> Since traces are printed reversed you will have to read my logic from
>> bottom to top:
>>
>> Seems we need to implement the dev_release() op for the class of our
>> devices.
>
> Shall I open a bug in kernel bugzilla to keep trace of this?

Nah something else is up...

struct class ieee80211_class = {
.name = "ieee80211",
.owner = THIS_MODULE,
.dev_release = wiphy_dev_release,
.dev_attrs = ieee80211_dev_attrs,
#ifdef CONFIG_HOTPLUG
.dev_uevent = wiphy_uevent,
#endif
.suspend = wiphy_suspend,
.resume = wiphy_resume,
};

2010-06-04 08:25:13

by Fabio Rossi

[permalink] [raw]
Subject: Re: WARNING: at drivers/base/core.c:130 device_release+0x82/0x90()

On Wednesday 02 June 2010 23:42:14 Luis R. Rodriguez wrote:

> On Wed, Jun 2, 2010 at 2:29 AM, Fabio Rossi <[email protected]> wrote:
> > Compiling the kernel without ACPI (CONFIG_ACPI=n) gives the following
> > warning:
> >
> > cfg80211: Calling CRDA to update world regulatory domain
> > cfg80211: World regulatory domain updated:
> > (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
> > (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> > ath5k 0000:08:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
> > ath5k 0000:08:01.0: registered as 'phy0'
> > ath5k phy0: request_irq failed
> > ------------[ cut here ]------------
>
> Since traces are printed reversed you will have to read my logic from
> bottom to top:
>
> Seems we need to implement the dev_release() op for the class of our
> devices.

Shall I open a bug in kernel bugzilla to keep trace of this?

Fabio

2010-06-06 09:46:18

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: WARNING: at drivers/base/core.c:130 device_release+0x82/0x90()

On Sun, Jun 6, 2010 at 2:43 AM, Fabio Rossi <[email protected]> wrote:
> On Sunday 06 June 2010 11:29:54 Luis R. Rodriguez wrote:
>
>> On Sun, Jun 6, 2010 at 2:28 AM, Luis R. Rodriguez <[email protected]> wrote:
>> > On Fri, Jun 4, 2010 at 1:25 AM, Fabio Rossi <[email protected]> wrote:
>> >> On Wednesday 02 June 2010 23:42:14 Luis R. Rodriguez wrote:
>> >>> On Wed, Jun 2, 2010 at 2:29 AM, Fabio Rossi <[email protected]> wrote:
>> >>> > Compiling the kernel without ACPI (CONFIG_ACPI=n) gives the following
>> >>> > warning:
>> >>> >
>> >>> > cfg80211: Calling CRDA to update world regulatory domain
>> >>> > cfg80211: World regulatory domain updated:
>> >>> >    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
>> >>> >    (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
>> >>> > ath5k 0000:08:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
>> >>> > ath5k 0000:08:01.0: registered as 'phy0'
>> >>> > ath5k phy0: request_irq failed
>> >>> > ------------[ cut here ]------------
>> >>>
>> >>> Since traces are printed reversed you will have to read my logic from
>> >>> bottom to top:
>> >>>
>> >>> Seems we need to implement the dev_release() op for the class of our
>> >>> devices.
>> >>
>> >> Shall I open a bug in kernel bugzilla to keep trace of this?
>> >
>> > Nah something else is up...
>> >
>> > struct class ieee80211_class = {
>> >        .name = "ieee80211",
>> >        .owner = THIS_MODULE,
>> >        .dev_release = wiphy_dev_release,
>> >        .dev_attrs = ieee80211_dev_attrs,
>> > #ifdef CONFIG_HOTPLUG
>> >        .dev_uevent = wiphy_uevent,
>> > #endif
>> >        .suspend = wiphy_suspend,
>> >        .resume = wiphy_resume,
>> > };
>>
>> This is wireless-testing, not compat-wireless right?
>
> Yes, I'm using the latest wireless-testing.git

Then I don't know WTF is going on, some sort of class corruption...
anyone else have another idea?

Luis

2010-06-02 21:42:37

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: WARNING: at drivers/base/core.c:130 device_release+0x82/0x90()

On Wed, Jun 2, 2010 at 2:29 AM, Fabio Rossi <[email protected]> wrote:
> Compiling the kernel without ACPI (CONFIG_ACPI=n) gives the following warning:
>
> cfg80211: Calling CRDA to update world regulatory domain
> cfg80211: World regulatory domain updated:
>    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
>    (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> ath5k 0000:08:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
> ath5k 0000:08:01.0: registered as 'phy0'
> ath5k phy0: request_irq failed
> ------------[ cut here ]------------

Since traces are printed reversed you will have to read my logic from
bottom to top:

Seems we need to implement the dev_release() op for the class of our devices.

> WARNING: at drivers/base/core.c:130 device_release+0x82/0x90()
> Hardware name: System Product Name
> Device 'phy0' does not have a release() function, it is broken and must be
> fixed.
> Modules linked in: ath5k(+) mac80211 ath cfg80211 vmnet vsock vmci vmmon
> gspca_zc3xx gspca_main [last unloaded: cfg80211]
> Pid: 8607, comm: modprobe Tainted: G        W   2.6.35-rc1-wl #50
> Call Trace:
>  [<ffffffff8103917a>] warn_slowpath_common+0x7a/0xb0
>  [<ffffffff81039251>] warn_slowpath_fmt+0x41/0x50
>  [<ffffffff8138c4a2>] device_release+0x82/0x90
>  [<ffffffff81225fc7>] kobject_release+0x47/0x90
>  [<ffffffff81225f80>] ? kobject_release+0x0/0x90
>  [<ffffffff81227187>] kref_put+0x37/0x70
>  [<ffffffff81225e87>] kobject_put+0x27/0x60
>  [<ffffffff8138be22>] put_device+0x12/0x20

Here is cfg80211's cleanup.

>  [<ffffffffa00eb790>] wiphy_free+0x10/0x20 [cfg80211]

And something on probe failed, which triggered it to bail out and free
the struct.

>  [<ffffffffa011102d>] ieee80211_free_hw+0xd/0x10 [mac80211]

OK so the device was probed.

>  [<ffffffffa016f891>] ath5k_pci_probe+0x16da/0x1710 [ath5k]
>  [<ffffffff811089da>] ? __sysfs_add_one+0x2a/0xe0
>  [<ffffffff81108b07>] ? sysfs_add_one+0x27/0xd0
>  [<ffffffff8123e322>] local_pci_probe+0x12/0x20
>  [<ffffffff8123e5d0>] pci_device_probe+0x80/0xb0
>  [<ffffffff8138f98a>] ? driver_sysfs_add+0x5a/0x90
>  [<ffffffff8138facd>] driver_probe_device+0x8d/0x1a0
>  [<ffffffff8138fc73>] __driver_attach+0x93/0xa0
>  [<ffffffff8138fbe0>] ? __driver_attach+0x0/0xa0
>  [<ffffffff8138f1e8>] bus_for_each_dev+0x68/0x90
>  [<ffffffff8138f929>] driver_attach+0x19/0x20
>  [<ffffffff8138e9a8>] bus_add_driver+0xb8/0x260
>  [<ffffffff8138ff68>] driver_register+0x78/0x140
>  [<ffffffff8123e841>] __pci_register_driver+0x51/0xd0
>  [<ffffffff811f2996>] ? debugfs_create_dir+0x16/0x20
>  [<ffffffffa0180000>] ? init_ath5k_pci+0x0/0x43 [ath5k]
>  [<ffffffffa0180028>] init_ath5k_pci+0x28/0x43 [ath5k]
>  [<ffffffff810001d7>] do_one_initcall+0x37/0x190
>  [<ffffffff81066fc6>] sys_init_module+0xd6/0x250
>  [<ffffffff810023ab>] system_call_fastpath+0x16/0x1b
> ---[ end trace a6ef611dbd725746 ]---
> ath5k 0000:08:01.0: PCI INT A disabled
> ath5k: probe of 0000:08:01.0 failed with error -22
>
> It is not possible to use the wireless network.
>
> Fabio
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

2010-06-06 09:30:15

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: WARNING: at drivers/base/core.c:130 device_release+0x82/0x90()

On Sun, Jun 6, 2010 at 2:28 AM, Luis R. Rodriguez <[email protected]> wrote:
> On Fri, Jun 4, 2010 at 1:25 AM, Fabio Rossi <[email protected]> wrote:
>> On Wednesday 02 June 2010 23:42:14 Luis R. Rodriguez wrote:
>>
>>> On Wed, Jun 2, 2010 at 2:29 AM, Fabio Rossi <[email protected]> wrote:
>>> > Compiling the kernel without ACPI (CONFIG_ACPI=n) gives the following
>>> > warning:
>>> >
>>> > cfg80211: Calling CRDA to update world regulatory domain
>>> > cfg80211: World regulatory domain updated:
>>> >    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
>>> >    (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
>>> > ath5k 0000:08:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
>>> > ath5k 0000:08:01.0: registered as 'phy0'
>>> > ath5k phy0: request_irq failed
>>> > ------------[ cut here ]------------
>>>
>>> Since traces are printed reversed you will have to read my logic from
>>> bottom to top:
>>>
>>> Seems we need to implement the dev_release() op for the class of our
>>> devices.
>>
>> Shall I open a bug in kernel bugzilla to keep trace of this?
>
> Nah something else is up...
>
> struct class ieee80211_class = {
>        .name = "ieee80211",
>        .owner = THIS_MODULE,
>        .dev_release = wiphy_dev_release,
>        .dev_attrs = ieee80211_dev_attrs,
> #ifdef CONFIG_HOTPLUG
>        .dev_uevent = wiphy_uevent,
> #endif
>        .suspend = wiphy_suspend,
>        .resume = wiphy_resume,
> };
>

This is wireless-testing, not compat-wireless right?

Luis