* rt2x00 mesh support
@ 2009-01-23 18:58 Antonio Marques
2009-01-23 19:02 ` Andrey Yurovsky
0 siblings, 1 reply; 28+ messages in thread
From: Antonio Marques @ 2009-01-23 18:58 UTC (permalink / raw)
To: linux-wireless
Hi,
I have been trying to setup a mesh network using the 802.11s stack, but
unfortunately the only hardware that I have readily available are rt2x00
usb dongles and an ath5k mini-pci card. Since support for rt2x00
driver is listed on o11s.org as being in development, what is the
current status
of mesh support for this driver?
I see recent commit activity such as
fdc26201323eb8ba543ac5624f8d71e55b6f7352,
"rt2x00: Add mesh support" but I am still unable to establish mesh
links using
rt2x00 devices. An rt2x00 device can see the ath5k device according to
'iw dev mesh station dump', but the link state never changes to ESTAB.
Thanks,
Antonio Marques
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-01-23 18:58 rt2x00 mesh support Antonio Marques
@ 2009-01-23 19:02 ` Andrey Yurovsky
2009-01-24 11:40 ` António Marques
0 siblings, 1 reply; 28+ messages in thread
From: Andrey Yurovsky @ 2009-01-23 19:02 UTC (permalink / raw)
To: Antonio Marques; +Cc: linux-wireless, Ivo van Doorn
Hi Antonio. As I understand it, beaconing is currently broken in
rt2x00 (it used to work in the past). This means that, until the
device can send beacons again, it won't be able to do mesh (or AP or
IBSS). However the commit in question at least sets up the driver to
support mesh as soon as beaconing works again.
On Fri, Jan 23, 2009 at 10:58 AM, Antonio Marques <froz@icix.org> wrote:
> Hi,
>
> I have been trying to setup a mesh network using the 802.11s stack, but
> unfortunately the only hardware that I have readily available are rt2x00
> usb dongles and an ath5k mini-pci card. Since support for rt2x00
> driver is listed on o11s.org as being in development, what is the current
> status
> of mesh support for this driver?
>
> I see recent commit activity such as
> fdc26201323eb8ba543ac5624f8d71e55b6f7352,
> "rt2x00: Add mesh support" but I am still unable to establish mesh links
> using
> rt2x00 devices. An rt2x00 device can see the ath5k device according to
> 'iw dev mesh station dump', but the link state never changes to ESTAB.
>
> Thanks,
> Antonio Marques
>
>
> --
> 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
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-01-23 19:02 ` Andrey Yurovsky
@ 2009-01-24 11:40 ` António Marques
2009-03-15 11:54 ` Antonio Marques
0 siblings, 1 reply; 28+ messages in thread
From: António Marques @ 2009-01-24 11:40 UTC (permalink / raw)
To: Andrey Yurovsky; +Cc: linux-wireless, Ivo van Doorn
Ok. I didn't realize the driver was broken and the issue wasn't specific
to mesh support. I hope the driver maintainers can solve this soon.
Thanks,
Antonio Marques
On Jan 23, 2009, at 19:02 , Andrey Yurovsky wrote:
> Hi Antonio. As I understand it, beaconing is currently broken in
> rt2x00 (it used to work in the past). This means that, until the
> device can send beacons again, it won't be able to do mesh (or AP or
> IBSS). However the commit in question at least sets up the driver to
> support mesh as soon as beaconing works again.
>
> On Fri, Jan 23, 2009 at 10:58 AM, Antonio Marques <froz@icix.org>
> wrote:
>> Hi,
>>
>> I have been trying to setup a mesh network using the 802.11s stack,
>> but
>> unfortunately the only hardware that I have readily available are
>> rt2x00
>> usb dongles and an ath5k mini-pci card. Since support for rt2x00
>> driver is listed on o11s.org as being in development, what is the
>> current
>> status
>> of mesh support for this driver?
>>
>> I see recent commit activity such as
>> fdc26201323eb8ba543ac5624f8d71e55b6f7352,
>> "rt2x00: Add mesh support" but I am still unable to establish mesh
>> links
>> using
>> rt2x00 devices. An rt2x00 device can see the ath5k device according
>> to
>> 'iw dev mesh station dump', but the link state never changes to
>> ESTAB.
>>
>> Thanks,
>> Antonio Marques
>>
>>
>> --
>> 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
>>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-01-24 11:40 ` António Marques
@ 2009-03-15 11:54 ` Antonio Marques
2009-03-15 13:45 ` Ivo van Doorn
0 siblings, 1 reply; 28+ messages in thread
From: Antonio Marques @ 2009-03-15 11:54 UTC (permalink / raw)
To: Andrey Yurovsky; +Cc: linux-wireless, Ivo van Doorn
Upon further investigation, beaconing does not work after configuring
an interface in mesh point mode but running 'iwlist mesh scan'
triggers something in the driver that enables beaconing.
After executing this command beacons are generated and correctly
received at other nodes.
This behaviour is present using both rt73usb and rt2500pci based cards.
Once beaconing is triggered the interface works as expected and mesh
peer links are automatically established. I assume this is a bug in =20
the rt2x00
driver. Is there anything I can do to help debug this problem?
Thanks,
Antonio Marques
On Jan 24, 2009, at 11:40 , Ant=F3nio Marques wrote:
> Ok. I didn't realize the driver was broken and the issue wasn't =20
> specific
> to mesh support. I hope the driver maintainers can solve this soon.
>
> Thanks,
> Antonio Marques
>
> On Jan 23, 2009, at 19:02 , Andrey Yurovsky wrote:
>> Hi Antonio. As I understand it, beaconing is currently broken in
>> rt2x00 (it used to work in the past). This means that, until the
>> device can send beacons again, it won't be able to do mesh (or AP or
>> IBSS). However the commit in question at least sets up the driver t=
o
>> support mesh as soon as beaconing works again.
>>
>> On Fri, Jan 23, 2009 at 10:58 AM, Antonio Marques <froz@icix.org> =20
>> wrote:
>>> Hi,
>>>
>>> I have been trying to setup a mesh network using the 802.11s =20
>>> stack, but
>>> unfortunately the only hardware that I have readily available are =20
>>> rt2x00
>>> usb dongles and an ath5k mini-pci card. Since support for rt2x00
>>> driver is listed on o11s.org as being in development, what is the =20
>>> current
>>> status
>>> of mesh support for this driver?
>>>
>>> I see recent commit activity such as
>>> fdc26201323eb8ba543ac5624f8d71e55b6f7352,
>>> "rt2x00: Add mesh support" but I am still unable to establish mesh =
=20
>>> links
>>> using
>>> rt2x00 devices. An rt2x00 device can see the ath5k device =20
>>> according to
>>> 'iw dev mesh station dump', but the link state never changes to =20
>>> ESTAB.
>>>
>>> Thanks,
>>> Antonio Marques
>>>
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-=20
>>> wireless" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-15 11:54 ` Antonio Marques
@ 2009-03-15 13:45 ` Ivo van Doorn
2009-03-16 1:58 ` Pat Erley
2009-03-16 13:22 ` António Marques
0 siblings, 2 replies; 28+ messages in thread
From: Ivo van Doorn @ 2009-03-15 13:45 UTC (permalink / raw)
To: Antonio Marques; +Cc: Andrey Yurovsky, linux-wireless
On Sunday 15 March 2009, Antonio Marques wrote:
> Upon further investigation, beaconing does not work after configuring
> an interface in mesh point mode but running 'iwlist mesh scan'
> triggers something in the driver that enables beaconing.
> After executing this command beacons are generated and correctly
> received at other nodes.
Thats odd, but very interesting :)
Could you enable debugfs and CONFIG_RT2X00_LIB_DEBUGFS and
use the script from http://kernel.org/pub/linux/kernel/people/ivd/tools=
/rt2x00_regdump.sh
to create a register dump before running 'iwlist mesh scan' and afterwa=
rds.
(So basically when beaconing is broken and when it is working).
Thanks,
Ivo
> This behaviour is present using both rt73usb and rt2500pci based card=
s.
> Once beaconing is triggered the interface works as expected and mesh
> peer links are automatically established. I assume this is a bug in =20
> the rt2x00
> driver. Is there anything I can do to help debug this problem?
>=20
> Thanks,
> Antonio Marques
>=20
> On Jan 24, 2009, at 11:40 , Ant=F3nio Marques wrote:
> > Ok. I didn't realize the driver was broken and the issue wasn't =20
> > specific
> > to mesh support. I hope the driver maintainers can solve this soon.
> >
> > Thanks,
> > Antonio Marques
> >
> > On Jan 23, 2009, at 19:02 , Andrey Yurovsky wrote:
> >> Hi Antonio. As I understand it, beaconing is currently broken in
> >> rt2x00 (it used to work in the past). This means that, until the
> >> device can send beacons again, it won't be able to do mesh (or AP =
or
> >> IBSS). However the commit in question at least sets up the driver=
to
> >> support mesh as soon as beaconing works again.
> >>
> >> On Fri, Jan 23, 2009 at 10:58 AM, Antonio Marques <froz@icix.org> =
=20
> >> wrote:
> >>> Hi,
> >>>
> >>> I have been trying to setup a mesh network using the 802.11s =20
> >>> stack, but
> >>> unfortunately the only hardware that I have readily available are=
=20
> >>> rt2x00
> >>> usb dongles and an ath5k mini-pci card. Since support for rt2x00
> >>> driver is listed on o11s.org as being in development, what is the=
=20
> >>> current
> >>> status
> >>> of mesh support for this driver?
> >>>
> >>> I see recent commit activity such as
> >>> fdc26201323eb8ba543ac5624f8d71e55b6f7352,
> >>> "rt2x00: Add mesh support" but I am still unable to establish mes=
h =20
> >>> links
> >>> using
> >>> rt2x00 devices. An rt2x00 device can see the ath5k device =20
> >>> according to
> >>> 'iw dev mesh station dump', but the link state never changes to =20
> >>> ESTAB.
> >>>
> >>> Thanks,
> >>> Antonio Marques
> >>>
> >>>
> >>> --
> >>> To unsubscribe from this list: send the line "unsubscribe linux-=20
> >>> wireless" in
> >>> the body of a message to majordomo@vger.kernel.org
> >>> More majordomo info at http://vger.kernel.org/majordomo-info.htm=
l
> >>>
> >
>=20
>=20
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-15 13:45 ` Ivo van Doorn
@ 2009-03-16 1:58 ` Pat Erley
2009-03-16 13:29 ` Antonio Marques
2009-03-16 13:22 ` António Marques
1 sibling, 1 reply; 28+ messages in thread
From: Pat Erley @ 2009-03-16 1:58 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
Ivo van Doorn wrote:
> On Sunday 15 March 2009, Antonio Marques wrote:
>> Upon further investigation, beaconing does not work after configuring
>> an interface in mesh point mode but running 'iwlist mesh scan'
>> triggers something in the driver that enables beaconing.
>> After executing this command beacons are generated and correctly
>> received at other nodes.
>
> Thats odd, but very interesting :)
> Could you enable debugfs and CONFIG_RT2X00_LIB_DEBUGFS and
> use the script from http://kernel.org/pub/linux/kernel/people/ivd/tools/rt2x00_regdump.sh
> to create a register dump before running 'iwlist mesh scan' and afterwards.
> (So basically when beaconing is broken and when it is working).
>
> Thanks,
>
> Ivo
I get identical behavior with the patch I'm about to RFC for ath9k to enable
mesh mode. I just want to test that it works with my b43, rt61pci, and
rt2x00usb devices. Of the 4, ONLY b43 enables beaconing for mesh mode on
interface up. I suspect my ath5k one will exhibit similar behavior. I've
reviewed the b43 code about 100 times during the writing of my patch for ath9k
and I can't spot what it's doing that's so different.
Pat
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-15 13:45 ` Ivo van Doorn
2009-03-16 1:58 ` Pat Erley
@ 2009-03-16 13:22 ` António Marques
2009-03-16 14:58 ` Ivo van Doorn
1 sibling, 1 reply; 28+ messages in thread
From: António Marques @ 2009-03-16 13:22 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Andrey Yurovsky, linux-wireless
On Mar 15, 2009, at 13:45 , Ivo van Doorn wrote:
> On Sunday 15 March 2009, Antonio Marques wrote:
>> Upon further investigation, beaconing does not work after configuring
>> an interface in mesh point mode but running 'iwlist mesh scan'
>> triggers something in the driver that enables beaconing.
>> After executing this command beacons are generated and correctly
>> received at other nodes.
>
> Thats odd, but very interesting :)
> Could you enable debugfs and CONFIG_RT2X00_LIB_DEBUGFS and
> use the script from http://kernel.org/pub/linux/kernel/people/ivd/tools/rt2x00_regdump.sh
> to create a register dump before running 'iwlist mesh scan' and
> afterwards.
> (So basically when beaconing is broken and when it is working).
>
> Thanks,
>
> Ivo
As requested, I have attached the output of the script run before and
after
running 'iwlist mesh scan'. Unfortunately there seems to be no change in
the output. I have also included the queue statistics as these do
change from
one state to the next. Any further pointers to help debug this? I'll
gladly test
any patches that try to address this issue.
Antonio Marques
Before running 'iwlist mesh scan':
kernel: 2.6.29-rc7-wl
driver: rt73usb
version: 2.3.0
compiled: Mar 16 2009 11:53:37
dev_flags: 0x0000625f
rt chip: 1300
rf chip: 0002
revision: 0002573a
register base words wordsize
csr 12288 300 4
eeprom 0 128 2
bbp 0 128 1
rf 4 4 4
Queues:
qid count limit length index done crypto
14 0 24 1 1 0 0
0 0 24 0 0 0 0
1 0 24 0 0 0 0
2 6 24 0 6 6 0
3 0 24 0 0 0 0
16 0 4 0 0 0 0
After running 'iwlist mesh scan':
kernel: 2.6.29-rc7-wl
driver: rt73usb
version: 2.3.0
compiled: Mar 16 2009 11:53:37
dev_flags: 0x0000625f
rt chip: 1300
rf chip: 0002
revision: 0002573a
register base words wordsize
csr 12288 300 4
eeprom 0 128 2
bbp 0 128 1
rf 4 4 4
Queues:
qid count limit length index done crypto
14 0 24 8 8 0 0
0 11 24 0 11 11 0
1 0 24 0 0 0 0
2 6 24 0 6 6 0
3 0 24 0 0 0 0
16 0 4 0 0 0 0
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-16 1:58 ` Pat Erley
@ 2009-03-16 13:29 ` Antonio Marques
0 siblings, 0 replies; 28+ messages in thread
From: Antonio Marques @ 2009-03-16 13:29 UTC (permalink / raw)
To: Pat Erley; +Cc: Ivo van Doorn, Andrey Yurovsky, linux-wireless
On Mar 16, 2009, at 01:58 , Pat Erley wrote:
> I get identical behavior with the patch I'm about to RFC for ath9k
> to enable
> mesh mode. I just want to test that it works with my b43, rt61pci,
> and
> rt2x00usb devices. Of the 4, ONLY b43 enables beaconing for mesh
> mode on
> interface up. I suspect my ath5k one will exhibit similar
> behavior. I've
> reviewed the b43 code about 100 times during the writing of my patch
> for ath9k
> and I can't spot what it's doing that's so different.
>
> Pat
I have also tested with ath5k which behaves correctly on interface up by
enabling beaconing. You might want to look at it too.
Antonio Marques
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-16 13:22 ` António Marques
@ 2009-03-16 14:58 ` Ivo van Doorn
2009-03-16 19:12 ` Antonio Marques
0 siblings, 1 reply; 28+ messages in thread
From: Ivo van Doorn @ 2009-03-16 14:58 UTC (permalink / raw)
To: António Marques; +Cc: Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 1434 bytes --]
On Monday 16 March 2009, António Marques wrote:
> On Mar 15, 2009, at 13:45 , Ivo van Doorn wrote:
> > On Sunday 15 March 2009, Antonio Marques wrote:
> >> Upon further investigation, beaconing does not work after configuring
> >> an interface in mesh point mode but running 'iwlist mesh scan'
> >> triggers something in the driver that enables beaconing.
> >> After executing this command beacons are generated and correctly
> >> received at other nodes.
> >
> > Thats odd, but very interesting :)
> > Could you enable debugfs and CONFIG_RT2X00_LIB_DEBUGFS and
> > use the script from http://kernel.org/pub/linux/kernel/people/ivd/tools/rt2x00_regdump.sh
> > to create a register dump before running 'iwlist mesh scan' and
> > afterwards.
> > (So basically when beaconing is broken and when it is working).
> >
> > Thanks,
> >
> > Ivo
>
>
> As requested, I have attached the output of the script run before and
> after
> running 'iwlist mesh scan'. Unfortunately there seems to be no change in
> the output. I have also included the queue statistics as these do
> change from
> one state to the next. Any further pointers to help debug this? I'll
> gladly test
> any patches that try to address this issue.
The dumps aren't correct, I had forgotten to update the script on the website
after some API for the rt2x00 debugfs interface changes recently.
Attached is the correct patch.
Ivo
[-- Attachment #2: rt2x00_regdump.sh --]
[-- Type: application/x-shellscript, Size: 2260 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-16 14:58 ` Ivo van Doorn
@ 2009-03-16 19:12 ` Antonio Marques
2009-03-17 9:31 ` Ivo van Doorn
0 siblings, 1 reply; 28+ messages in thread
From: Antonio Marques @ 2009-03-16 19:12 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 775 bytes --]
On Mar 16, 2009, at 14:58 , Ivo van Doorn wrote:
> On Monday 16 March 2009, António Marques wrote:
>>
>> As requested, I have attached the output of the script run before and
>> after
>> running 'iwlist mesh scan'. Unfortunately there seems to be no
>> change in
>> the output. I have also included the queue statistics as these do
>> change from
>> one state to the next. Any further pointers to help debug this? I'll
>> gladly test
>> any patches that try to address this issue.
>
> The dumps aren't correct, I had forgotten to update the script on
> the website
> after some API for the rt2x00 debugfs interface changes recently.
> Attached is the correct patch.
>
> Ivo
> <rt2x00_regdump.sh>
Fixed, new dumps are attached.
Antonio Marques
[-- Attachment #2: before-iwlist.txt --]
[-- Type: text/plain, Size: 7601 bytes --]
kernel: 2.6.29-rc7-wl
driver: rt73usb
version: 2.3.0
compiled: Mar 16 2009 11:53:37
dev_flags: 0x0000625f
rt chip: 1300
rf chip: 0002
revision: 0002573a
register base words wordsize
csr 12288 300 4
eeprom 0 128 2
bbp 0 128 1
rf 4 4 4
csr
0 :0x0002573a
1 :0x00000004
2 :0x648c1e00
3 :0x00ff3687
4 :0x00000000
5 :0x00030000
6 :0x00000fff
7 :0x00000000
8 :0x016c000a
9 :0x0000a314
10 :0x00000718
11 :0x00000000
12 :0x00000009
13 :0x00007f9f
14 :0x00431e46
15 :0x00000000
16 :0x024eb032
17 :0x9eaa9eaf
18 :0x8a8b8c8d
19 :0x00858687
20 :0x740a0732
21 :0x33060000
22 :0x0a143870
23 :0x2e31353b
24 :0x2a2a2a2c
25 :0x00000640
26 :0x00001008
27 :0x0000c78f
28 :0x00000000
29 :0x00000000
30 :0x00000000
31 :0x0000000f
32 :0x00010000
33 :0x000023b0
34 :0x82188200
35 :0x0000ff00
36 :0x140d9a0b
37 :0x00040a06
38 :0x00080606
39 :0x00000408
40 :0x00000000
41 :0x00000000
42 :0x00000000
43 :0x00000000
44 :0x00000000
45 :0x00000000
46 :0x00000000
47 :0x00000000
48 :0x00010035
49 :0x029c004e
50 :0x00000000
51 :0x00000000
52 :0x00000000
53 :0x00000000
54 :0x00000000
55 :0x00000000
56 :0x00000000
57 :0x00000000
58 :0x03000000
59 :0x00000000
60 :0x00000000
61 :0x00000000
62 :0x00000000
63 :0x00000000
64 :0xa04e1400
65 :0xa04e1400
66 :0xa04e1400
67 :0xa04e1400
68 :0xa04e1400
69 :0xa04e1400
70 :0xa04e1400
71 :0xa04e1400
72 :0xa04e1400
73 :0x00000000
74 :0xa04e1400
75 :0xa04e1400
76 :0xa04e1400
77 :0xa04e1400
78 :0xa04e1400
79 :0xa04e1400
80 :0xa04e1400
81 :0xa04e1400
82 :0xa04e1400
83 :0xa04e1400
84 :0x67209839
85 :0xa04e1400
86 :0xa04e1400
87 :0xa04e1400
88 :0xa04e1400
89 :0xa04e1400
90 :0xa04e1400
91 :0xa04e1400
92 :0xa04e1400
93 :0xbec4f4dd
94 :0xa04e1400
95 :0xa04e1400
96 :0xa04e1400
97 :0xa04e1400
98 :0xa04e1400
99 :0xa04e1400
100 :0xa04e1400
101 :0xa04e1400
102 :0xa04e1400
103 :0xa04e1400
104 :0xa04e1400
105 :0xa04e1400
106 :0xa04e1400
107 :0xa04e1400
108 :0xa04e1400
109 :0xa04e1400
110 :0xa04e1400
111 :0xa04e1400
112 :0xa04e1400
113 :0xa04e1400
114 :0xa04e1400
115 :0xa04e1400
116 :0xa04e1400
117 :0xa04e1400
118 :0xa04e1400
119 :0xa04e1400
120 :0xa04e1400
121 :0xa04e1400
122 :0xa04e1400
123 :0xa04e1400
124 :0xa04e1400
125 :0xa04e1400
126 :0xa04e1400
127 :0xa04e1400
128 :0xa04e1400
129 :0xa04e1400
130 :0xa04e1400
131 :0xa04e1400
132 :0xa04e1400
133 :0xa04e1400
134 :0xa04e1400
135 :0xa04e1400
136 :0x6481ed6f
137 :0x00b79ca8
138 :0xa04e1400
139 :0xa04e1400
140 :0xa04e1400
141 :0xa04e1400
142 :0xa04e1400
143 :0xa04e1400
144 :0xa04e1400
145 :0xa04e1400
146 :0xa04e1400
147 :0xa04e1400
148 :0xa04e1400
149 :0xa04e1400
150 :0xa04e1400
151 :0xa04e1400
152 :0xa04e1400
153 :0xa04e1400
154 :0xa04e1400
155 :0x668b8900
156 :0xa04e1400
157 :0xa04e1400
158 :0xa04e1400
159 :0xa04e1400
160 :0xa04e1400
161 :0xa04e1400
162 :0xa04e1400
163 :0xa04e1400
164 :0xa04e1400
165 :0xa04e1400
166 :0xa04e1400
167 :0xa04e1400
168 :0xa04e1400
169 :0xa04e1400
170 :0xa04e1400
171 :0xa04e1400
172 :0xa04e1400
173 :0xa04e1400
174 :0xa04e1400
175 :0xa04e1400
176 :0xa04e1400
177 :0xa04e1400
178 :0xa04e1400
179 :0xa04e1400
180 :0xa04e1400
181 :0xa04e1400
182 :0xa04e1400
183 :0xa04e1400
184 :0xa04e1400
185 :0x9f291434
186 :0xa04e1400
187 :0xa04e1400
188 :0xa04e1400
189 :0xa04e1400
190 :0xa04e1400
191 :0xa04e1400
192 :0xa04e1400
193 :0xa04e1400
194 :0xa04e1400
195 :0xa04e1400
196 :0xa04e1400
197 :0xa04e1400
198 :0xa04e1400
199 :0xa04e1400
200 :0xa04e1400
201 :0xa04e1400
202 :0xa04e1400
203 :0xa04e1400
204 :0xa04e1400
205 :0xa04e1400
206 :0xa04e1400
207 :0x00000000
208 :0xa04e1400
209 :0xa04e1400
210 :0xa04e1400
211 :0xa04e1400
212 :0xa04e1400
213 :0xa04e1400
214 :0xa04e1400
215 :0xa04e1400
216 :0xa04e1400
217 :0xa04e1400
218 :0xa04e1400
219 :0xa04e1400
220 :0xa04e1400
221 :0xa04e1400
222 :0xa04e1400
223 :0xa04e1400
224 :0xa04e1400
225 :0x80ab97b1
226 :0xa04e1400
227 :0xa04e1400
228 :0xa04e1400
229 :0xa04e1400
230 :0xa04e1400
231 :0xa04e1400
232 :0xa04e1400
233 :0xa04e1400
234 :0xa04e1400
235 :0xa04e1400
236 :0xa04e1400
237 :0xa04e1400
238 :0xa04e1400
239 :0xa04e1400
240 :0xa04e1400
241 :0xa04e1400
242 :0x3b7c611b
243 :0xa04e1400
244 :0xa04e1400
245 :0xa04e1400
246 :0xa04e1400
247 :0xa04e1400
248 :0xa04e1400
249 :0xa04e1400
250 :0xa04e1400
251 :0xa04e1400
252 :0xa04e1400
253 :0xa04e1400
254 :0xa04e1400
255 :0xa04e1400
256 :0xa04e1400
257 :0xa04e1400
258 :0xa04e1400
259 :0xa04e1400
260 :0xa04e1400
261 :0xa04e1400
262 :0xa04e1400
263 :0xa04e1400
264 :0xa04e1400
265 :0xa04e1400
266 :0xa04e1400
267 :0xa04e1400
268 :0xa04e1400
269 :0xa04e1400
270 :0xa04e1400
271 :0xa04e1400
272 :0xa04e1400
273 :0xa04e1400
274 :0xa04e1400
275 :0xa04e1400
276 :0xa04e1400
277 :0xa04e1400
278 :0xa04e1400
279 :0xa04e1400
280 :0xa04e1400
281 :0xa04e1400
282 :0xa04e1400
283 :0xa04e1400
284 :0xa04e1400
285 :0xa04e1400
286 :0xa04e1400
287 :0xa04e1400
288 :0xa04e1400
289 :0xa04e1400
290 :0xa04e1400
291 :0xa04e1400
292 :0xa04e1400
293 :0xc9a5296b
294 :0xa04e1400
295 :0xa04e1400
296 :0xa04e1400
297 :0xa04e1400
298 :0xa04e1400
299 :0xa04e1400
eeprom
0 :0x2573
1 :0x0103
2 :0x1e00
3 :0x648c
4 :0x3687
5 :0xffff
6 :0xffff
7 :0xffff
8 :0xffff
9 :0xffff
10 :0xffff
11 :0xffff
12 :0xffff
13 :0xffff
14 :0xffff
15 :0xffff
16 :0x1056
17 :0xffef
18 :0x0100
19 :0xffff
20 :0xffff
21 :0xffff
22 :0xffff
23 :0xffff
24 :0xffff
25 :0xffff
26 :0xffff
27 :0xffff
28 :0xffff
29 :0xffff
30 :0xffff
31 :0xffff
32 :0xffff
33 :0xffff
34 :0xffff
35 :0x0909
36 :0x0909
37 :0x0909
38 :0x0909
39 :0x0909
40 :0x0909
41 :0x0808
42 :0xffff
43 :0xffff
44 :0xffff
45 :0xffff
46 :0xffff
47 :0xff19
48 :0xe000
49 :0xffff
50 :0xffff
51 :0xffff
52 :0xffff
53 :0xffff
54 :0xffff
55 :0xffff
56 :0xffff
57 :0xffff
58 :0xffff
59 :0xffff
60 :0xffff
61 :0xffff
62 :0xffff
63 :0xffff
64 :0xffff
65 :0xffff
66 :0xffff
67 :0xffff
68 :0xffff
69 :0xffff
70 :0xffff
71 :0xffff
72 :0xffff
73 :0xffff
74 :0xffff
75 :0xffff
76 :0xffff
77 :0xff00
78 :0x0000
79 :0xff81
80 :0xffff
81 :0xffff
82 :0xffff
83 :0xffff
84 :0xffff
85 :0xffff
86 :0xffff
87 :0xffff
88 :0xffff
89 :0xffff
90 :0xffff
91 :0xffff
92 :0xffff
93 :0xffff
94 :0xffff
95 :0xffff
96 :0xffff
97 :0xffff
98 :0xffff
99 :0xffff
100 :0xffff
101 :0xffff
102 :0xffff
103 :0xffff
104 :0xffff
105 :0xffff
106 :0xffff
107 :0xffff
108 :0xffff
109 :0xffff
110 :0xffff
111 :0xffff
112 :0xffff
113 :0xffff
114 :0xffff
115 :0xffff
116 :0xffff
117 :0xffff
118 :0xffff
119 :0xffff
120 :0xffff
121 :0xffff
122 :0xffff
123 :0xffff
124 :0xffff
125 :0xffff
126 :0x0508
127 :0x000a
bbp
0 :0x16
1 :0x00
2 :0x00
3 :0x81
4 :0x11
5 :0x0b
6 :0x10
7 :0x00
8 :0x00
9 :0x00
10 :0x00
11 :0x04
12 :0x03
13 :0x40
14 :0x18
15 :0x30
16 :0x2c
17 :0x20
18 :0x06
19 :0x00
20 :0x1e
21 :0xc8
22 :0x38
23 :0x06
24 :0xfe
25 :0x0a
26 :0x0d
27 :0x27
28 :0x06
29 :0x00
30 :0x68
31 :0x2b
32 :0x0b
33 :0x55
34 :0x12
35 :0x50
36 :0x11
37 :0x07
38 :0x00
39 :0xf8
40 :0x0f
41 :0x60
42 :0x0b
43 :0x3c
44 :0x7e
45 :0x07
46 :0xb1
47 :0x0a
48 :0x04
49 :0x04
50 :0x10
51 :0x00
52 :0x00
53 :0x10
54 :0x18
55 :0x00
56 :0x10
57 :0x08
58 :0x02
59 :0x01
60 :0x10
61 :0x04
62 :0x04
63 :0x00
64 :0x01
65 :0x03
66 :0x00
67 :0x00
68 :0x00
69 :0x00
70 :0x26
71 :0x00
72 :0x00
73 :0x00
74 :0xff
75 :0xfe
76 :0x40
77 :0x03
78 :0x00
79 :0x00
80 :0x05
81 :0x14
82 :0x50
83 :0xc0
84 :0x10
85 :0x00
86 :0xfe
87 :0x40
88 :0xfe
89 :0x40
90 :0x0f
91 :0x08
92 :0x00
93 :0x00
94 :0x06
95 :0x08
96 :0x48
97 :0x48
98 :0x48
99 :0x00
100 :0x20
101 :0x06
102 :0x16
103 :0x00
104 :0x2c
105 :0x20
106 :0x90
107 :0x04
108 :0x04
109 :0x00
110 :0x00
111 :0x00
112 :0x00
113 :0x00
114 :0x00
115 :0x00
116 :0x00
117 :0x00
118 :0x00
119 :0x00
120 :0x00
121 :0x00
122 :0x00
123 :0x00
124 :0x00
125 :0x00
126 :0x00
127 :0x00
rf
0 :0x00002c0c
1 :0x00000796
2 :0x00069251
3 :0x000d9a0b
[-- Attachment #3: after-iwlist.txt --]
[-- Type: text/plain, Size: 7601 bytes --]
kernel: 2.6.29-rc7-wl
driver: rt73usb
version: 2.3.0
compiled: Mar 16 2009 11:53:37
dev_flags: 0x0000625f
rt chip: 1300
rf chip: 0002
revision: 0002573a
register base words wordsize
csr 12288 300 4
eeprom 0 128 2
bbp 0 128 1
rf 4 4 4
csr
0 :0x0002573a
1 :0x00000004
2 :0x648c1e00
3 :0x00ff3687
4 :0x00000000
5 :0x00030000
6 :0x00000fff
7 :0x00000000
8 :0x016c000a
9 :0x0000a314
10 :0x00000718
11 :0x00000000
12 :0x00000009
13 :0x00007f9f
14 :0x00431e46
15 :0x00000000
16 :0x024eb032
17 :0x9eaa9eaf
18 :0x8a8b8c8d
19 :0x00858687
20 :0x740a0732
21 :0x33060000
22 :0x0a143870
23 :0x2e31353b
24 :0x2a2a2a2c
25 :0x001d0640
26 :0x00001008
27 :0x0000c78f
28 :0x004ee19c
29 :0x00000000
30 :0x00000640
31 :0x0000000f
32 :0x00010000
33 :0x000023b0
34 :0x82188200
35 :0x00001181
36 :0x140d9a0b
37 :0x00040a06
38 :0x00080606
39 :0x00000408
40 :0x00000000
41 :0x00000000
42 :0x00000000
43 :0x00000000
44 :0x00000000
45 :0x00000000
46 :0x00000000
47 :0x00000000
48 :0x00030011
49 :0x00b9000d
50 :0x00000000
51 :0x00000033
52 :0x0000000b
53 :0x00000000
54 :0x00000000
55 :0x00000000
56 :0x00000000
57 :0x00000000
58 :0x03000000
59 :0x00000000
60 :0x00000000
61 :0x00000000
62 :0x00000000
63 :0x00000000
64 :0xa04e1400
65 :0xa04e1400
66 :0xa04e1400
67 :0xa04e1400
68 :0xa04e1400
69 :0xa04e1400
70 :0xa04e1400
71 :0xa04e1400
72 :0xa04e1400
73 :0xa04e1400
74 :0xa04e1400
75 :0xa04e1400
76 :0xa04e1400
77 :0xa04e1400
78 :0xa04e1400
79 :0xa04e1400
80 :0xa04e1400
81 :0xa04e1400
82 :0xa04e1400
83 :0xa04e1400
84 :0xa04e1400
85 :0xa04e1400
86 :0xa04e1400
87 :0x00008b7b
88 :0xa04e1400
89 :0xa04e1400
90 :0xa04e1400
91 :0xa04e1400
92 :0xa04e1400
93 :0xa04e1400
94 :0xa04e1400
95 :0xa04e1400
96 :0xa04e1400
97 :0xa04e1400
98 :0xa04e1400
99 :0xa04e1400
100 :0xa04e1400
101 :0xa04e1400
102 :0xa04e1400
103 :0xa04e1400
104 :0xa04e1400
105 :0xa04e1400
106 :0xa04e1400
107 :0xa04e1400
108 :0xa04e1400
109 :0xa04e1400
110 :0xa04e1400
111 :0xa04e1400
112 :0xa04e1400
113 :0xa04e1400
114 :0xa04e1400
115 :0xa04e1400
116 :0xa04e1400
117 :0xa04e1400
118 :0xa04e1400
119 :0xa04e1400
120 :0xa04e1400
121 :0xa04e1400
122 :0xa04e1400
123 :0xa04e1400
124 :0xa04e1400
125 :0xa04e1400
126 :0xa04e1400
127 :0xa04e1400
128 :0xa04e1400
129 :0xa04e1400
130 :0xa04e1400
131 :0xa04e1400
132 :0xa04e1400
133 :0xa04e1400
134 :0xa04e1400
135 :0xa04e1400
136 :0xd1eb308b
137 :0xa04e1400
138 :0xa04e1400
139 :0xa04e1400
140 :0xa04e1400
141 :0xa04e1400
142 :0xa04e1400
143 :0xa04e1400
144 :0xa04e1400
145 :0xa04e1400
146 :0xa04e1400
147 :0xa04e1400
148 :0xa04e1400
149 :0xa04e1400
150 :0xa04e1400
151 :0xa04e1400
152 :0xa04e1400
153 :0xa04e1400
154 :0xa04e1400
155 :0xa04e1400
156 :0xa04e1400
157 :0xa04e1400
158 :0xa04e1400
159 :0xa04e1400
160 :0xa04e1400
161 :0xa04e1400
162 :0xa04e1400
163 :0xa04e1400
164 :0xa04e1400
165 :0xa04e1400
166 :0xa04e1400
167 :0xa04e1400
168 :0xa04e1400
169 :0xa04e1400
170 :0xa04e1400
171 :0xa04e1400
172 :0xa04e1400
173 :0xa04e1400
174 :0xa04e1400
175 :0xa04e1400
176 :0xa04e1400
177 :0xa04e1400
178 :0xa04e1400
179 :0xa04e1400
180 :0xa04e1400
181 :0xa04e1400
182 :0xa04e1400
183 :0xa04e1400
184 :0xa04e1400
185 :0x794e1400
186 :0xa04e1400
187 :0xa04e1400
188 :0xa04e1400
189 :0xa04e1400
190 :0xa04e1400
191 :0xa04e1400
192 :0xa04e1400
193 :0xa04e1400
194 :0xa04e1400
195 :0xa04e1400
196 :0xa04e1400
197 :0xa04e1400
198 :0xa04e1400
199 :0xa04e1400
200 :0xa04e1400
201 :0xa04e1400
202 :0xa04e1400
203 :0xa04e1400
204 :0xa04e1400
205 :0xa04e1400
206 :0xa04e1400
207 :0xa04e1400
208 :0xa04e1400
209 :0xa04e1400
210 :0xa04e1400
211 :0xa04e1400
212 :0xa04e1400
213 :0xa04e1400
214 :0xa04e1400
215 :0xa04e1400
216 :0xa04e1400
217 :0xa04e1400
218 :0xa04e1400
219 :0xa04e1400
220 :0xa04e1400
221 :0xa04e1400
222 :0xa04e1400
223 :0x117aadb4
224 :0xa04e1400
225 :0xa04e1400
226 :0xa04e1400
227 :0xa04e1400
228 :0xa04e1400
229 :0xa04e1400
230 :0xa04e1400
231 :0xa04e1400
232 :0xa04e1400
233 :0xa04e1400
234 :0xa04e1400
235 :0xa04e1400
236 :0xa04e1400
237 :0xa04e1400
238 :0xa04e1400
239 :0xa04e1400
240 :0xa04e1400
241 :0xa04e1400
242 :0xa04e1400
243 :0xa04e1400
244 :0xa04e1400
245 :0xa04e1400
246 :0xa04e1400
247 :0xa04e1400
248 :0xa04e1400
249 :0xa04e1400
250 :0xa04e1400
251 :0xa04e1400
252 :0xa04e1400
253 :0xa04e1400
254 :0xa04e1400
255 :0xa04e1400
256 :0xa04e1400
257 :0xa04e1400
258 :0xa04e1400
259 :0xa04e1400
260 :0xa04e1400
261 :0xa04e1400
262 :0xa04e1400
263 :0xa04e1400
264 :0xa04e1400
265 :0xa04e1400
266 :0xa04e1400
267 :0xa04e1400
268 :0xa04e1400
269 :0xa04e1400
270 :0xa04e1400
271 :0xa04e1400
272 :0x1c338900
273 :0xa04e1400
274 :0xa04e1400
275 :0xa04e1400
276 :0xa04e1400
277 :0xa04e1400
278 :0xa04e1400
279 :0x991d217f
280 :0x62664946
281 :0xa04e1400
282 :0xa04e1400
283 :0xa04e1400
284 :0xa04e1400
285 :0xa04e1400
286 :0xa04e1400
287 :0xa04e1400
288 :0xa04e1400
289 :0xa04e1400
290 :0xa04e1400
291 :0xa04e1400
292 :0xa04e1400
293 :0xa04e1400
294 :0xa04e1400
295 :0xa04e1400
296 :0xa04e1400
297 :0xa04e1400
298 :0xa04e1400
299 :0xa04e1400
eeprom
0 :0x2573
1 :0x0103
2 :0x1e00
3 :0x648c
4 :0x3687
5 :0xffff
6 :0xffff
7 :0xffff
8 :0xffff
9 :0xffff
10 :0xffff
11 :0xffff
12 :0xffff
13 :0xffff
14 :0xffff
15 :0xffff
16 :0x1056
17 :0xffef
18 :0x0100
19 :0xffff
20 :0xffff
21 :0xffff
22 :0xffff
23 :0xffff
24 :0xffff
25 :0xffff
26 :0xffff
27 :0xffff
28 :0xffff
29 :0xffff
30 :0xffff
31 :0xffff
32 :0xffff
33 :0xffff
34 :0xffff
35 :0x0909
36 :0x0909
37 :0x0909
38 :0x0909
39 :0x0909
40 :0x0909
41 :0x0808
42 :0xffff
43 :0xffff
44 :0xffff
45 :0xffff
46 :0xffff
47 :0xff19
48 :0xe000
49 :0xffff
50 :0xffff
51 :0xffff
52 :0xffff
53 :0xffff
54 :0xffff
55 :0xffff
56 :0xffff
57 :0xffff
58 :0xffff
59 :0xffff
60 :0xffff
61 :0xffff
62 :0xffff
63 :0xffff
64 :0xffff
65 :0xffff
66 :0xffff
67 :0xffff
68 :0xffff
69 :0xffff
70 :0xffff
71 :0xffff
72 :0xffff
73 :0xffff
74 :0xffff
75 :0xffff
76 :0xffff
77 :0xff00
78 :0x0000
79 :0xff81
80 :0xffff
81 :0xffff
82 :0xffff
83 :0xffff
84 :0xffff
85 :0xffff
86 :0xffff
87 :0xffff
88 :0xffff
89 :0xffff
90 :0xffff
91 :0xffff
92 :0xffff
93 :0xffff
94 :0xffff
95 :0xffff
96 :0xffff
97 :0xffff
98 :0xffff
99 :0xffff
100 :0xffff
101 :0xffff
102 :0xffff
103 :0xffff
104 :0xffff
105 :0xffff
106 :0xffff
107 :0xffff
108 :0xffff
109 :0xffff
110 :0xffff
111 :0xffff
112 :0xffff
113 :0xffff
114 :0xffff
115 :0xffff
116 :0xffff
117 :0xffff
118 :0xffff
119 :0xffff
120 :0xffff
121 :0xffff
122 :0xffff
123 :0xffff
124 :0xffff
125 :0xffff
126 :0x0508
127 :0x000a
bbp
0 :0x16
1 :0x60
2 :0x00
3 :0x81
4 :0x11
5 :0x0b
6 :0x10
7 :0x00
8 :0x00
9 :0x00
10 :0x00
11 :0x04
12 :0x02
13 :0xa8
14 :0x18
15 :0x30
16 :0x2c
17 :0x20
18 :0x06
19 :0x00
20 :0x1e
21 :0xc8
22 :0x38
23 :0x06
24 :0xfe
25 :0x0a
26 :0x0d
27 :0x27
28 :0x06
29 :0x00
30 :0x68
31 :0x2b
32 :0x0b
33 :0x55
34 :0x12
35 :0x50
36 :0x11
37 :0x07
38 :0x00
39 :0xf8
40 :0x0f
41 :0x60
42 :0x03
43 :0x74
44 :0x77
45 :0x97
46 :0x36
47 :0x06
48 :0x5f
49 :0x92
50 :0x38
51 :0x00
52 :0x00
53 :0x10
54 :0x18
55 :0x00
56 :0x10
57 :0x08
58 :0x01
59 :0x01
60 :0x10
61 :0x04
62 :0x04
63 :0x00
64 :0x01
65 :0x03
66 :0x00
67 :0x00
68 :0x00
69 :0x00
70 :0x26
71 :0x00
72 :0x00
73 :0x00
74 :0xff
75 :0xfe
76 :0x40
77 :0x03
78 :0x00
79 :0x00
80 :0x05
81 :0x14
82 :0x50
83 :0xc0
84 :0x10
85 :0x7e
86 :0xfe
87 :0x40
88 :0xfe
89 :0x40
90 :0x0f
91 :0x08
92 :0x00
93 :0x00
94 :0x06
95 :0x08
96 :0x48
97 :0x48
98 :0x48
99 :0x00
100 :0x20
101 :0x06
102 :0x16
103 :0x00
104 :0x2c
105 :0x20
106 :0x90
107 :0x04
108 :0x04
109 :0x00
110 :0x00
111 :0x00
112 :0x00
113 :0x00
114 :0x00
115 :0x00
116 :0x00
117 :0x00
118 :0x00
119 :0x00
120 :0x00
121 :0x00
122 :0x00
123 :0x00
124 :0x00
125 :0x00
126 :0x00
127 :0x00
rf
0 :0x00002c0c
1 :0x00000796
2 :0x00069251
3 :0x000d9a0b
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-16 19:12 ` Antonio Marques
@ 2009-03-17 9:31 ` Ivo van Doorn
2009-03-17 14:11 ` Johannes Berg
2009-03-17 19:38 ` Antonio Marques
0 siblings, 2 replies; 28+ messages in thread
From: Ivo van Doorn @ 2009-03-17 9:31 UTC (permalink / raw)
To: Antonio Marques; +Cc: Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 1244 bytes --]
On Monday 16 March 2009, Antonio Marques wrote:
> On Mar 16, 2009, at 14:58 , Ivo van Doorn wrote:
> > On Monday 16 March 2009, António Marques wrote:
> >>
> >> As requested, I have attached the output of the script run before and
> >> after
> >> running 'iwlist mesh scan'. Unfortunately there seems to be no
> >> change in
> >> the output. I have also included the queue statistics as these do
> >> change from
> >> one state to the next. Any further pointers to help debug this? I'll
> >> gladly test
> >> any patches that try to address this issue.
> >
> > The dumps aren't correct, I had forgotten to update the script on
> > the website
> > after some API for the rt2x00 debugfs interface changes recently.
> > Attached is the correct patch.
> >
> > Ivo
> > <rt2x00_regdump.sh>
>
> Fixed, new dumps are attached.
Thanks for the dumps, the reason why the beaconing isn't working
is (fortunately) very obvious from the registers point of view.
The "generate beacons" bit is simply not enabled. However the reason
why this bit has not been set escapes me. Could you apply the attached
patch? This will add extra debug messages to the driver to see when the
beacon generation bit is set.
Thanks,
Ivo
[-- Attachment #2: rt73usb.beacon.diff --]
[-- Type: text/x-diff, Size: 4176 bytes --]
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index 24fdfdf..0824e15 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -519,6 +519,7 @@ static void rt73usb_config_intf(struct rt2x00_dev *rt2x00dev,
{
unsigned int beacon_base;
u32 reg;
+ u32 reg2;
if (flags & CONFIG_UPDATE_TYPE) {
/*
@@ -538,6 +539,8 @@ static void rt73usb_config_intf(struct rt2x00_dev *rt2x00dev,
rt2x00_set_field32(®, TXRX_CSR9_TSF_SYNC, conf->sync);
rt2x00_set_field32(®, TXRX_CSR9_TBTT_ENABLE, 1);
rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg);
+ rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®2);
+ ERROR(rt2x00dev, "TXRX_CSR9 WRITE: 0x%.08x, READ: 0x%.08x\n", reg, reg2);
}
if (flags & CONFIG_UPDATE_MAC) {
@@ -838,6 +841,7 @@ static void rt73usb_config_duration(struct rt2x00_dev *rt2x00dev,
struct rt2x00lib_conf *libconf)
{
u32 reg;
+ u32 reg2;
rt2x00usb_register_read(rt2x00dev, TXRX_CSR0, ®);
rt2x00_set_field32(®, TXRX_CSR0_TSF_OFFSET, IEEE80211_HEADER);
@@ -851,6 +855,8 @@ static void rt73usb_config_duration(struct rt2x00_dev *rt2x00dev,
rt2x00_set_field32(®, TXRX_CSR9_BEACON_INTERVAL,
libconf->conf->beacon_int * 16);
rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg);
+ rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®2);
+ ERROR(rt2x00dev, "TXRX_CSR9 WRITE: 0x%.08x, READ: 0x%.08x\n", reg, reg2);
}
static void rt73usb_config_ps(struct rt2x00_dev *rt2x00dev,
@@ -1139,6 +1145,7 @@ static int rt73usb_load_firmware(struct rt2x00_dev *rt2x00dev,
static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)
{
u32 reg;
+ u32 reg2;
rt2x00usb_register_read(rt2x00dev, TXRX_CSR0, ®);
rt2x00_set_field32(®, TXRX_CSR0_AUTO_TX_SEQ, 1);
@@ -1205,6 +1212,8 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)
rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 0);
rt2x00_set_field32(®, TXRX_CSR9_TIMESTAMP_COMPENSATE, 0);
rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg);
+ rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®2);
+ ERROR(rt2x00dev, "TXRX_CSR9 WRITE: 0x%.08x, READ: 0x%.08x\n", reg, reg2);
rt2x00usb_register_write(rt2x00dev, TXRX_CSR15, 0x0000000f);
@@ -1375,12 +1384,16 @@ static int rt73usb_enable_radio(struct rt2x00_dev *rt2x00dev)
static void rt73usb_disable_radio(struct rt2x00_dev *rt2x00dev)
{
+ u32 reg2;
+
rt2x00usb_register_write(rt2x00dev, MAC_CSR10, 0x00001818);
/*
* Disable synchronisation.
*/
rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, 0);
+ rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®2);
+ ERROR(rt2x00dev, "TXRX_CSR9 WRITE: 0x%.08x, READ: 0x%.08x\n", 0, reg2);
rt2x00usb_disable_radio(rt2x00dev);
}
@@ -1532,6 +1545,7 @@ static void rt73usb_write_beacon(struct queue_entry *entry)
struct skb_frame_desc *skbdesc = get_skb_frame_desc(entry->skb);
unsigned int beacon_base;
u32 reg;
+ u32 reg2;
/*
* Add the descriptor in front of the skb.
@@ -1549,6 +1563,8 @@ static void rt73usb_write_beacon(struct queue_entry *entry)
rt2x00_set_field32(®, TXRX_CSR9_TBTT_ENABLE, 0);
rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 0);
rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg);
+ rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®2);
+ ERROR(rt2x00dev, "TXRX_CSR9 WRITE: 0x%.08x, READ: 0x%.08x\n", reg, reg2);
/*
* Write entire beacon with descriptor to register.
@@ -1584,6 +1600,7 @@ static void rt73usb_kick_tx_queue(struct rt2x00_dev *rt2x00dev,
const enum data_queue_qid queue)
{
u32 reg;
+ u32 reg2;
if (queue != QID_BEACON) {
rt2x00usb_kick_tx_queue(rt2x00dev, queue);
@@ -1602,7 +1619,10 @@ static void rt73usb_kick_tx_queue(struct rt2x00_dev *rt2x00dev,
rt2x00_set_field32(®, TXRX_CSR9_TBTT_ENABLE, 1);
rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 1);
rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg);
- }
+ rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®2);
+ ERROR(rt2x00dev, "TXRX_CSR9 WRITE: 0x%.08x, READ: 0x%.08x\n", reg, reg2);
+ } else
+ ERROR(rt2x00dev, "TXRX_CSR9 WRITE: Beacon generation already enabled\n");
}
/*
^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 9:31 ` Ivo van Doorn
@ 2009-03-17 14:11 ` Johannes Berg
2009-03-17 20:10 ` Johannes Berg
2009-03-17 19:38 ` Antonio Marques
1 sibling, 1 reply; 28+ messages in thread
From: Johannes Berg @ 2009-03-17 14:11 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 1596 bytes --]
On Tue, 2009-03-17 at 10:31 +0100, Ivo van Doorn wrote:
> On Monday 16 March 2009, Antonio Marques wrote:
> > On Mar 16, 2009, at 14:58 , Ivo van Doorn wrote:
> > > On Monday 16 March 2009, António Marques wrote:
> > >>
> > >> As requested, I have attached the output of the script run before and
> > >> after
> > >> running 'iwlist mesh scan'. Unfortunately there seems to be no
> > >> change in
> > >> the output. I have also included the queue statistics as these do
> > >> change from
> > >> one state to the next. Any further pointers to help debug this? I'll
> > >> gladly test
> > >> any patches that try to address this issue.
> > >
> > > The dumps aren't correct, I had forgotten to update the script on
> > > the website
> > > after some API for the rt2x00 debugfs interface changes recently.
> > > Attached is the correct patch.
> > >
> > > Ivo
> > > <rt2x00_regdump.sh>
> >
> > Fixed, new dumps are attached.
>
> Thanks for the dumps, the reason why the beaconing isn't working
> is (fortunately) very obvious from the registers point of view.
> The "generate beacons" bit is simply not enabled. However the reason
> why this bit has not been set escapes me. Could you apply the attached
> patch? This will add extra debug messages to the driver to see when the
> beacon generation bit is set.
I think mac80211 is probably not requesting it until you scan -- since
once you scan it calls ieee80211_if_config internally and changes that
bit. Some mesh code needs to call ieee80211_if_config() with the beacon
enable change flag.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 9:31 ` Ivo van Doorn
2009-03-17 14:11 ` Johannes Berg
@ 2009-03-17 19:38 ` Antonio Marques
2009-03-17 22:03 ` Ivo van Doorn
1 sibling, 1 reply; 28+ messages in thread
From: Antonio Marques @ 2009-03-17 19:38 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Andrey Yurovsky, linux-wireless
On Mar 17, 2009, at 9:31 , Ivo van Doorn wrote:
> On Monday 16 March 2009, Antonio Marques wrote:
>> On Mar 16, 2009, at 14:58 , Ivo van Doorn wrote:
>>> On Monday 16 March 2009, Ant=F3nio Marques wrote:
>>>>
>>>> As requested, I have attached the output of the script run before =
=20
>>>> and
>>>> after
>>>> running 'iwlist mesh scan'. Unfortunately there seems to be no
>>>> change in
>>>> the output. I have also included the queue statistics as these do
>>>> change from
>>>> one state to the next. Any further pointers to help debug this? =20
>>>> I'll
>>>> gladly test
>>>> any patches that try to address this issue.
>>>
>>> The dumps aren't correct, I had forgotten to update the script on
>>> the website
>>> after some API for the rt2x00 debugfs interface changes recently.
>>> Attached is the correct patch.
>>>
>>> Ivo
>>> <rt2x00_regdump.sh>
>>
>> Fixed, new dumps are attached.
>
> Thanks for the dumps, the reason why the beaconing isn't working
> is (fortunately) very obvious from the registers point of view.
> The "generate beacons" bit is simply not enabled. However the reason
> why this bit has not been set escapes me. Could you apply the attache=
d
> patch? This will add extra debug messages to the driver to see when =20
> the
> beacon generation bit is set.
>
> Thanks,
>
> Ivo
> <rt73usb.beacon.diff>
Here are the relevant portions of the dmesg with the aforementioned
patch applied.
After interface creation and before 'iwlist mesh scan':
[108544.382327] phy3 -> rt73usb_validate_eeprom: EEPROM recovery - =20
NIC: 0xffef
[108544.382332] phy3 -> rt73usb_validate_eeprom: EEPROM recovery - =20
Led: 0xe000
[108544.382334] phy3 -> rt73usb_validate_eeprom: EEPROM recovery - =20
RSSI OFFSET A: 0x0000
[108544.382561] phy3 -> rt2x00_set_chip: Info - Chipset detected - rt: =
=20
1300, rf: 0002, rev: 0002573a.
[108544.384587] phy3: Selected rate control algorithm 'minstrel'
[108544.385282] Registered led device: rt73usb-phy3::radio
[108544.385296] Registered led device: rt73usb-phy3::assoc
[108544.385309] Registered led device: rt73usb-phy3::quality
[108544.385995] usbcore: registered new interface driver rt73usb
[108565.147588] phy3 -> rt2x00lib_request_firmware: Info - Loading =20
firmware file 'rt73.bin'.
[108565.147595] rt73usb 2-5:1.0: firmware: requesting rt73.bin
[108565.152149] phy3 -> rt2x00lib_request_firmware: Info - Firmware =20
detected - version: 1.7.
[108565.174384] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE: =20
0x000d0000, READ: 0x000d0000
[108565.280398] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE: =20
0x000d0000, READ: 0x000d0000
[108565.385291] phy3 -> rt73usb_write_beacon: Error - TXRX_CSR9 WRITE: =
=20
0x00040000, READ: 0x00040000
[108565.492687] phy3 -> rt73usb_kick_tx_queue: Error - TXRX_CSR9 =20
WRITE: 0x001d0000, READ: 0x001d0000
[108565.603206] phy3 -> rt73usb_init_registers: Error - TXRX_CSR9 =20
WRITE: 0x00000000, READ: 0x00000000
[108565.742604] phy3 -> rt73usb_config_duration: Error - TXRX_CSR9 =20
WRITE: 0x00000640, READ: 0x00000640
[108565.863000] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue =20
0 - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
[108565.864999] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue =20
1 - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
[108565.866996] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue =20
2 - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
[108565.869001] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue =20
3 - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
After 'iwlist mesh scan':
[108700.626333] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE: =20
0x000d0640, READ: 0x000d0640
[108701.756022] cfg80211: Found new beacon on frequency: 2472 MHz (Ch =20
13) on phy3
[108701.756031] cfg80211: Enabling active scanning on frequency: 2472 =20
MHz (Ch 13) on phy3
[108701.756034] cfg80211: Enabling beaconing on frequency: 2472 MHz =20
(Ch 13) on phy3
[108701.756037] cfg80211: Enabling active scanning on frequency: 2472 =20
MHz (Ch 13) on phy0
[108701.756039] cfg80211: Enabling beaconing on frequency: 2472 MHz =20
(Ch 13) on phy0
[108702.178713] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE: =20
0x000d0640, READ: 0x000d0640
[108702.287605] phy3 -> rt73usb_write_beacon: Error - TXRX_CSR9 WRITE: =
=20
0x00040640, READ: 0x00040640
[108702.395122] phy3 -> rt73usb_kick_tx_queue: Error - TXRX_CSR9 =20
WRITE: 0x001d0640, READ: 0x001d0640
Hope this is useful.
Antonio Marques
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 14:11 ` Johannes Berg
@ 2009-03-17 20:10 ` Johannes Berg
2009-03-17 21:50 ` Ivo van Doorn
0 siblings, 1 reply; 28+ messages in thread
From: Johannes Berg @ 2009-03-17 20:10 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 792 bytes --]
On Tue, 2009-03-17 at 15:11 +0100, Johannes Berg wrote:
> > Thanks for the dumps, the reason why the beaconing isn't working
> > is (fortunately) very obvious from the registers point of view.
> > The "generate beacons" bit is simply not enabled. However the reason
> > why this bit has not been set escapes me. Could you apply the attached
> > patch? This will add extra debug messages to the driver to see when the
> > beacon generation bit is set.
>
> I think mac80211 is probably not requesting it until you scan -- since
> once you scan it calls ieee80211_if_config internally and changes that
> bit. Some mesh code needs to call ieee80211_if_config() with the beacon
> enable change flag.
Actually, it does, in ieee80211_start_mesh(). I have no idea then.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 20:10 ` Johannes Berg
@ 2009-03-17 21:50 ` Ivo van Doorn
2009-03-17 21:53 ` Johannes Berg
0 siblings, 1 reply; 28+ messages in thread
From: Ivo van Doorn @ 2009-03-17 21:50 UTC (permalink / raw)
To: Johannes Berg; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
On Tuesday 17 March 2009, Johannes Berg wrote:
> On Tue, 2009-03-17 at 15:11 +0100, Johannes Berg wrote:
>
> > > Thanks for the dumps, the reason why the beaconing isn't working
> > > is (fortunately) very obvious from the registers point of view.
> > > The "generate beacons" bit is simply not enabled. However the reason
> > > why this bit has not been set escapes me. Could you apply the attached
> > > patch? This will add extra debug messages to the driver to see when the
> > > beacon generation bit is set.
> >
> > I think mac80211 is probably not requesting it until you scan -- since
> > once you scan it calls ieee80211_if_config internally and changes that
> > bit. Some mesh code needs to call ieee80211_if_config() with the beacon
> > enable change flag.
>
> Actually, it does, in ieee80211_start_mesh(). I have no idea then.
I understood that in normal master mode rt73usb doesn't scan either,
so my bet is that the bug is in rt2x00. :)
Ivo
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 21:50 ` Ivo van Doorn
@ 2009-03-17 21:53 ` Johannes Berg
2009-03-17 22:04 ` Ivo van Doorn
0 siblings, 1 reply; 28+ messages in thread
From: Johannes Berg @ 2009-03-17 21:53 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 460 bytes --]
On Tue, 2009-03-17 at 22:50 +0100, Ivo van Doorn wrote:
> >
> > Actually, it does, in ieee80211_start_mesh(). I have no idea then.
>
> I understood that in normal master mode rt73usb doesn't scan either,
> so my bet is that the bug is in rt2x00. :)
But the bug seems to hit almost all other drivers too, which confuses
me. I'd double-check that the _start_mesh() call actually goes through
and a beacon is available at that point...
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 19:38 ` Antonio Marques
@ 2009-03-17 22:03 ` Ivo van Doorn
0 siblings, 0 replies; 28+ messages in thread
From: Ivo van Doorn @ 2009-03-17 22:03 UTC (permalink / raw)
To: Antonio Marques; +Cc: Andrey Yurovsky, linux-wireless
On Tuesday 17 March 2009, Antonio Marques wrote:
> On Mar 17, 2009, at 9:31 , Ivo van Doorn wrote:
> > On Monday 16 March 2009, Antonio Marques wrote:
> >> On Mar 16, 2009, at 14:58 , Ivo van Doorn wrote:
> >>> On Monday 16 March 2009, Ant=F3nio Marques wrote:
> >>>>
> >>>> As requested, I have attached the output of the script run befor=
e =20
> >>>> and
> >>>> after
> >>>> running 'iwlist mesh scan'. Unfortunately there seems to be no
> >>>> change in
> >>>> the output. I have also included the queue statistics as these d=
o
> >>>> change from
> >>>> one state to the next. Any further pointers to help debug this? =
=20
> >>>> I'll
> >>>> gladly test
> >>>> any patches that try to address this issue.
> >>>
> >>> The dumps aren't correct, I had forgotten to update the script on
> >>> the website
> >>> after some API for the rt2x00 debugfs interface changes recently.
> >>> Attached is the correct patch.
> >>>
> >>> Ivo
> >>> <rt2x00_regdump.sh>
> >>
> >> Fixed, new dumps are attached.
> >
> > Thanks for the dumps, the reason why the beaconing isn't working
> > is (fortunately) very obvious from the registers point of view.
> > The "generate beacons" bit is simply not enabled. However the reaso=
n
> > why this bit has not been set escapes me. Could you apply the attac=
hed
> > patch? This will add extra debug messages to the driver to see when=
=20
> > the
> > beacon generation bit is set.
> >
> > Thanks,
> >
> > Ivo
> > <rt73usb.beacon.diff>
>=20
> Here are the relevant portions of the dmesg with the aforementioned
> patch applied.
>=20
> After interface creation and before 'iwlist mesh scan':
<...snip...>
> Hope this is useful.
It absolutely is :)
Thanks,
Ivo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 21:53 ` Johannes Berg
@ 2009-03-17 22:04 ` Ivo van Doorn
2009-03-17 22:35 ` Johannes Berg
0 siblings, 1 reply; 28+ messages in thread
From: Ivo van Doorn @ 2009-03-17 22:04 UTC (permalink / raw)
To: Johannes Berg; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
On Tuesday 17 March 2009, Johannes Berg wrote:
> On Tue, 2009-03-17 at 22:50 +0100, Ivo van Doorn wrote:
>
> > >
> > > Actually, it does, in ieee80211_start_mesh(). I have no idea then.
> >
> > I understood that in normal master mode rt73usb doesn't scan either,
> > so my bet is that the bug is in rt2x00. :)
>
> But the bug seems to hit almost all other drivers too, which confuses
> me. I'd double-check that the _start_mesh() call actually goes through
> and a beacon is available at that point...
I think I found something interesting in the log from Antonio which does
suggest a mac80211 bug:
> [108565.280398] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE: 0x000d0000, READ: 0x000d0000
> [108565.385291] phy3 -> rt73usb_write_beacon: Error - TXRX_CSR9 WRITE: 0x00040000, READ: 0x00040000
> [108565.492687] phy3 -> rt73usb_kick_tx_queue: Error - TXRX_CSR9 WRITE: 0x001d0000, READ: 0x001d0000
These 3 commands mean that mac80211 has send the beacon data.
> [108565.603206] phy3 -> rt73usb_init_registers: Error - TXRX_CSR9 WRITE: 0x00000000, READ: 0x00000000
This command means that mac80211 uses the start() callback function. This triggers rt2x00 to initialize
the registers which resets the beacon generation.
So the problem seems to be that mac80211 first sends the beacon to the driver and then starts the interface
in which case I bet most drivers/hardware reset beacon generation. So now the driver will be waiting for
new beacons from mac80211 which probably won't provide that until a scan command is issued.
Ivo
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 22:04 ` Ivo van Doorn
@ 2009-03-17 22:35 ` Johannes Berg
2009-03-17 23:01 ` Ivo van Doorn
0 siblings, 1 reply; 28+ messages in thread
From: Johannes Berg @ 2009-03-17 22:35 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 1066 bytes --]
On Tue, 2009-03-17 at 23:04 +0100, Ivo van Doorn wrote:
> I think I found something interesting in the log from Antonio which does
> suggest a mac80211 bug:
>
>
> > [108565.280398] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE: 0x000d0000, READ: 0x000d0000
> > [108565.385291] phy3 -> rt73usb_write_beacon: Error - TXRX_CSR9 WRITE: 0x00040000, READ: 0x00040000
> > [108565.492687] phy3 -> rt73usb_kick_tx_queue: Error - TXRX_CSR9 WRITE: 0x001d0000, READ: 0x001d0000
>
> These 3 commands mean that mac80211 has send the beacon data.
>
> > [108565.603206] phy3 -> rt73usb_init_registers: Error - TXRX_CSR9 WRITE: 0x00000000, READ: 0x00000000
>
> This command means that mac80211 uses the start() callback function. This triggers rt2x00 to initialize
> the registers which resets the beacon generation.
Strange, that doesn't seem right. If you look at net/mac80211/iface.c,
you'll see it call ->start(), then ->add_interface(), and later
ieee80211_start_mesh(), which calls _if_config() and sets
beacon/beacon_enabled.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 22:35 ` Johannes Berg
@ 2009-03-17 23:01 ` Ivo van Doorn
2009-03-17 23:04 ` Johannes Berg
0 siblings, 1 reply; 28+ messages in thread
From: Ivo van Doorn @ 2009-03-17 23:01 UTC (permalink / raw)
To: Johannes Berg; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
On Tuesday 17 March 2009, Johannes Berg wrote:
> On Tue, 2009-03-17 at 23:04 +0100, Ivo van Doorn wrote:
>
> > I think I found something interesting in the log from Antonio which does
> > suggest a mac80211 bug:
> >
> >
> > > [108565.280398] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE: 0x000d0000, READ: 0x000d0000
> > > [108565.385291] phy3 -> rt73usb_write_beacon: Error - TXRX_CSR9 WRITE: 0x00040000, READ: 0x00040000
> > > [108565.492687] phy3 -> rt73usb_kick_tx_queue: Error - TXRX_CSR9 WRITE: 0x001d0000, READ: 0x001d0000
> >
> > These 3 commands mean that mac80211 has send the beacon data.
> >
> > > [108565.603206] phy3 -> rt73usb_init_registers: Error - TXRX_CSR9 WRITE: 0x00000000, READ: 0x00000000
> >
> > This command means that mac80211 uses the start() callback function. This triggers rt2x00 to initialize
> > the registers which resets the beacon generation.
>
> Strange, that doesn't seem right. If you look at net/mac80211/iface.c,
> you'll see it call ->start(), then ->add_interface(), and later
> ieee80211_start_mesh(), which calls _if_config() and sets
> beacon/beacon_enabled.
ok, I gone through the rt2x00 code a couple of times now to see how this bug can be triggered by rt2x00,
But the only other scenario I could find, is when the open() callback for the netdevice structure doesn't end
with a call to the config() callback function. But as far as I see it that is happening correctly.
Ivo
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 23:01 ` Ivo van Doorn
@ 2009-03-17 23:04 ` Johannes Berg
2009-03-18 10:02 ` Ivo van Doorn
0 siblings, 1 reply; 28+ messages in thread
From: Johannes Berg @ 2009-03-17 23:04 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 1033 bytes --]
On Wed, 2009-03-18 at 00:01 +0100, Ivo van Doorn wrote:
> > > This command means that mac80211 uses the start() callback function. This triggers rt2x00 to initialize
> > > the registers which resets the beacon generation.
> >
> > Strange, that doesn't seem right. If you look at net/mac80211/iface.c,
> > you'll see it call ->start(), then ->add_interface(), and later
> > ieee80211_start_mesh(), which calls _if_config() and sets
> > beacon/beacon_enabled.
>
> ok, I gone through the rt2x00 code a couple of times now to see how this bug can be triggered by rt2x00,
> But the only other scenario I could find, is when the open() callback for the netdevice structure doesn't end
> with a call to the config() callback function. But as far as I see it that is happening correctly.
Maybe log (+dump_stack()) all the relevant calls from mac80211 to the
driver? That might give us a better idea of what's going on. Also,
Antonio, make sure you're using the very latest code. I for one need
sleep now :)
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-17 23:04 ` Johannes Berg
@ 2009-03-18 10:02 ` Ivo van Doorn
2009-03-18 12:26 ` Antonio Marques
0 siblings, 1 reply; 28+ messages in thread
From: Ivo van Doorn @ 2009-03-18 10:02 UTC (permalink / raw)
To: Antonio Marques; +Cc: Johannes Berg, Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 1381 bytes --]
On Wednesday 18 March 2009, Johannes Berg wrote:
> On Wed, 2009-03-18 at 00:01 +0100, Ivo van Doorn wrote:
>
> > > > This command means that mac80211 uses the start() callback function. This triggers rt2x00 to initialize
> > > > the registers which resets the beacon generation.
> > >
> > > Strange, that doesn't seem right. If you look at net/mac80211/iface.c,
> > > you'll see it call ->start(), then ->add_interface(), and later
> > > ieee80211_start_mesh(), which calls _if_config() and sets
> > > beacon/beacon_enabled.
> >
> > ok, I gone through the rt2x00 code a couple of times now to see how this bug can be triggered by rt2x00,
> > But the only other scenario I could find, is when the open() callback for the netdevice structure doesn't end
> > with a call to the config() callback function. But as far as I see it that is happening correctly.
>
> Maybe log (+dump_stack()) all the relevant calls from mac80211 to the
> driver? That might give us a better idea of what's going on. Also,
> Antonio, make sure you're using the very latest code. I for one need
> sleep now :)
Antonio, could you please use attached patch to add additional debugging to rt2x00.
This will do a dump_stack for all important functions (add_interface, remove_interface, config() and config_interface())
It doesn't matter if this patch is on top of the previous patch or not.
Thanks,
Ivo
[-- Attachment #2: debug.diff --]
[-- Type: text/x-diff, Size: 2346 bytes --]
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index c41a0b9..a75f54d 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -198,6 +198,9 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw,
struct queue_entry *entry = NULL;
unsigned int i;
+ ERROR(rt2x00dev, "===>\n");
+ dump_stack();
+
/*
* Don't allow interfaces to be added
* the device has disappeared.
@@ -293,6 +296,8 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw,
*/
rt2x00dev->packet_filter = 0;
+ ERROR(rt2x00dev, "<===\n");
+
return 0;
}
EXPORT_SYMBOL_GPL(rt2x00mac_add_interface);
@@ -303,6 +308,9 @@ void rt2x00mac_remove_interface(struct ieee80211_hw *hw,
struct rt2x00_dev *rt2x00dev = hw->priv;
struct rt2x00_intf *intf = vif_to_intf(conf->vif);
+ ERROR(rt2x00dev, "===>\n");
+ dump_stack();
+
/*
* Don't allow interfaces to be remove while
* either the device has disappeared or when
@@ -330,6 +338,8 @@ void rt2x00mac_remove_interface(struct ieee80211_hw *hw,
*/
rt2x00lib_config_intf(rt2x00dev, intf,
NL80211_IFTYPE_UNSPECIFIED, NULL, NULL);
+
+ ERROR(rt2x00dev, "<===\n");
}
EXPORT_SYMBOL_GPL(rt2x00mac_remove_interface);
@@ -339,6 +349,9 @@ int rt2x00mac_config(struct ieee80211_hw *hw, u32 changed)
struct ieee80211_conf *conf = &hw->conf;
int status;
+ ERROR(rt2x00dev, "===>\n");
+ dump_stack();
+
/*
* Mac80211 might be calling this function while we are trying
* to remove the device or perhaps suspending it.
@@ -386,6 +399,8 @@ int rt2x00mac_config(struct ieee80211_hw *hw, u32 changed)
rt2x00lib_disable_radio(rt2x00dev);
}
+ ERROR(rt2x00dev, "<===\n");
+
return 0;
}
EXPORT_SYMBOL_GPL(rt2x00mac_config);
@@ -399,6 +414,9 @@ int rt2x00mac_config_interface(struct ieee80211_hw *hw,
int update_bssid = 0;
int status = 0;
+ ERROR(rt2x00dev, "===>\n");
+ dump_stack();
+
/*
* Mac80211 might be calling this function while we are trying
* to remove the device or perhaps suspending it.
@@ -436,6 +454,9 @@ int rt2x00mac_config_interface(struct ieee80211_hw *hw,
status = rt2x00queue_update_beacon(rt2x00dev, vif,
conf->enable_beacon);
+ ERROR(rt2x00dev, "<===\n");
+ dump_stack();
+
return status;
}
EXPORT_SYMBOL_GPL(rt2x00mac_config_interface);
^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-18 10:02 ` Ivo van Doorn
@ 2009-03-18 12:26 ` Antonio Marques
2009-03-18 12:48 ` Ivo van Doorn
0 siblings, 1 reply; 28+ messages in thread
From: Antonio Marques @ 2009-03-18 12:26 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Johannes Berg, Andrey Yurovsky, linux-wireless
On Mar 18, 2009, at 10:02 , Ivo van Doorn wrote:
> On Wednesday 18 March 2009, Johannes Berg wrote:
>> On Wed, 2009-03-18 at 00:01 +0100, Ivo van Doorn wrote:
>>
>>>>> This command means that mac80211 uses the start() callback
>>>>> function. This triggers rt2x00 to initialize
>>>>> the registers which resets the beacon generation.
>>>>
>>>> Strange, that doesn't seem right. If you look at net/mac80211/
>>>> iface.c,
>>>> you'll see it call ->start(), then ->add_interface(), and later
>>>> ieee80211_start_mesh(), which calls _if_config() and sets
>>>> beacon/beacon_enabled.
>>>
>>> ok, I gone through the rt2x00 code a couple of times now to see
>>> how this bug can be triggered by rt2x00,
>>> But the only other scenario I could find, is when the open()
>>> callback for the netdevice structure doesn't end
>>> with a call to the config() callback function. But as far as I see
>>> it that is happening correctly.
>>
>> Maybe log (+dump_stack()) all the relevant calls from mac80211 to the
>> driver? That might give us a better idea of what's going on. Also,
>> Antonio, make sure you're using the very latest code. I for one need
>> sleep now :)
>
> Antonio, could you please use attached patch to add additional
> debugging to rt2x00.
> This will do a dump_stack for all important functions
> (add_interface, remove_interface, config() and config_interface())
>
> It doesn't matter if this patch is on top of the previous patch or
> not.
>
> Thanks,
>
> Ivo
> <debug.diff>
Ok, I have updated to the very latest code (still the same behaviour
though) and
applied the new patch. The rather lengthy list of backtraces is
attached.
Antonio Marques
After interface creation and before running 'iwlist mesh scan':
[ 2486.171848] phy3 -> rt73usb_validate_eeprom: EEPROM recovery - NIC:
0xffef
[ 2486.171851] phy3 -> rt73usb_validate_eeprom: EEPROM recovery - Led:
0xe000
[ 2486.171854] phy3 -> rt73usb_validate_eeprom: EEPROM recovery - RSSI
OFFSET A: 0x0000
[ 2486.172220] phy3 -> rt2x00_set_chip: Info - Chipset detected - rt:
1300, rf: 0002, rev: 0002573a.
[ 2486.172232] cfg80211: Enabling active scanning on frequency: 2472
MHz (Ch 13) on phy3
[ 2486.172234] cfg80211: Enabling beaconing on frequency: 2472 MHz (Ch
13) on phy3
[ 2486.174042] phy3: Selected rate control algorithm 'minstrel'
[ 2486.174726] Registered led device: rt73usb-phy3::radio
[ 2486.174739] Registered led device: rt73usb-phy3::assoc
[ 2486.174752] Registered led device: rt73usb-phy3::quality
[ 2486.175422] usbcore: registered new interface driver rt73usb
[ 2495.307749] phy3 -> rt2x00lib_request_firmware: Info - Loading
firmware file 'rt73.bin'.
[ 2495.307755] rt73usb 1-5:1.0: firmware: requesting rt73.bin
[ 2495.312370] phy3 -> rt2x00lib_request_firmware: Info - Firmware
detected - version: 1.7.
[ 2495.333900] phy3 -> rt2x00mac_add_interface: Error - ===>
[ 2495.398572] Pid: 5061, comm: ifconfig Not tainted 2.6.29-rc8-wl #1
[ 2495.398574] Call Trace:
[ 2495.398583] [<c038ae85>] ? printk+0x18/0x1b
[ 2495.398592] [<fa513388>] rt2x00mac_add_interface+0x58/0x200
[rt2x00lib]
[ 2495.398624] [<f7f82f87>] ieee80211_open+0x2c7/0x8e0 [mac80211]
[ 2495.398631] [<c030eb62>] dev_open+0x82/0xf0
[ 2495.398634] [<c038d9b1>] ? _spin_unlock_bh+0x11/0x20
[ 2495.398637] [<c030e479>] dev_change_flags+0x139/0x1d0
[ 2495.398641] [<c0353b02>] devinet_ioctl+0x542/0x600
[ 2495.398644] [<c011c29f>] ? do_page_fault+0x2ef/0x800
[ 2495.398647] [<c0354dca>] inet_ioctl+0x9a/0xc0
[ 2495.398651] [<c02ffee3>] sock_ioctl+0x63/0x260
[ 2495.398653] [<c02ffe80>] ? sock_ioctl+0x0/0x260
[ 2495.398658] [<c01b9358>] vfs_ioctl+0x28/0x90
[ 2495.398660] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
[ 2495.398664] [<c01c13f0>] ? alloc_fd+0xe0/0x100
[ 2495.398666] [<c038d7a8>] ? _spin_lock+0x8/0x10
[ 2495.398670] [<c01aad27>] ? do_sys_open+0xd7/0x100
[ 2495.398673] [<c01aad27>] ? do_sys_open+0xd7/0x100
[ 2495.398676] [<c01adfaf>] ? fput+0x1f/0x30
[ 2495.398679] [<c01b9e13>] sys_ioctl+0x63/0x70
[ 2495.398682] [<c010366f>] sysenter_do_call+0x12/0x33
[ 2495.400364] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE:
0x000d0000, READ: 0x000d0000
[ 2495.503881] phy3 -> rt2x00mac_add_interface: Error - <===
[ 2495.568516] phy3 -> rt2x00mac_config_interface: Error - ===>
[ 2495.636217] Pid: 5061, comm: ifconfig Not tainted 2.6.29-rc8-wl #1
[ 2495.636219] Call Trace:
[ 2495.636222] [<c038ae85>] ? printk+0x18/0x1b
[ 2495.636228] [<fa513579>] rt2x00mac_config_interface+0x49/0x130
[rt2x00lib]
[ 2495.636241] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
[rt2x00lib]
[ 2495.636252] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
[ 2495.636268] [<f7f9398a>] ieee80211_start_mesh+0x2a/0x30 [mac80211]
[ 2495.636279] [<f7f83489>] ieee80211_open+0x7c9/0x8e0 [mac80211]
[ 2495.636284] [<c030eb62>] dev_open+0x82/0xf0
[ 2495.636286] [<c038d9b1>] ? _spin_unlock_bh+0x11/0x20
[ 2495.636290] [<c030e479>] dev_change_flags+0x139/0x1d0
[ 2495.636292] [<c0353b02>] devinet_ioctl+0x542/0x600
[ 2495.636295] [<c011c29f>] ? do_page_fault+0x2ef/0x800
[ 2495.636298] [<c0354dca>] inet_ioctl+0x9a/0xc0
[ 2495.636301] [<c02ffee3>] sock_ioctl+0x63/0x260
[ 2495.636304] [<c02ffe80>] ? sock_ioctl+0x0/0x260
[ 2495.636307] [<c01b9358>] vfs_ioctl+0x28/0x90
[ 2495.636310] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
[ 2495.636312] [<c01c13f0>] ? alloc_fd+0xe0/0x100
[ 2495.636315] [<c038d7a8>] ? _spin_lock+0x8/0x10
[ 2495.636318] [<c01aad27>] ? do_sys_open+0xd7/0x100
[ 2495.636320] [<c01aad27>] ? do_sys_open+0xd7/0x100
[ 2495.636323] [<c01adfaf>] ? fput+0x1f/0x30
[ 2495.636326] [<c01b9e13>] sys_ioctl+0x63/0x70
[ 2495.636329] [<c010366f>] sysenter_do_call+0x12/0x33
[ 2495.638657] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE:
0x000d0000, READ: 0x000d0000
[ 2495.742550] phy3 -> rt73usb_write_beacon: Error - TXRX_CSR9 WRITE:
0x00040000, READ: 0x00040000
[ 2495.848942] phy3 -> rt73usb_kick_tx_queue: Error - TXRX_CSR9 WRITE:
0x001d0000, READ: 0x001d0000
[ 2495.954156] phy3 -> rt2x00mac_config_interface: Error - <===
[ 2496.021865] Pid: 5061, comm: ifconfig Not tainted 2.6.29-rc8-wl #1
[ 2496.021867] Call Trace:
[ 2496.021870] [<c038ae85>] ? printk+0x18/0x1b
[ 2496.021876] [<fa51362d>] rt2x00mac_config_interface+0xfd/0x130
[rt2x00lib]
[ 2496.021889] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
[rt2x00lib]
[ 2496.021900] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
[ 2496.021914] [<f7f9398a>] ieee80211_start_mesh+0x2a/0x30 [mac80211]
[ 2496.021925] [<f7f83489>] ieee80211_open+0x7c9/0x8e0 [mac80211]
[ 2496.021931] [<c030eb62>] dev_open+0x82/0xf0
[ 2496.021933] [<c038d9b1>] ? _spin_unlock_bh+0x11/0x20
[ 2496.021937] [<c030e479>] dev_change_flags+0x139/0x1d0
[ 2496.021940] [<c0353b02>] devinet_ioctl+0x542/0x600
[ 2496.021943] [<c011c29f>] ? do_page_fault+0x2ef/0x800
[ 2496.021946] [<c0354dca>] inet_ioctl+0x9a/0xc0
[ 2496.021948] [<c02ffee3>] sock_ioctl+0x63/0x260
[ 2496.021951] [<c02ffe80>] ? sock_ioctl+0x0/0x260
[ 2496.021954] [<c01b9358>] vfs_ioctl+0x28/0x90
[ 2496.021957] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
[ 2496.021960] [<c01c13f0>] ? alloc_fd+0xe0/0x100
[ 2496.021962] [<c038d7a8>] ? _spin_lock+0x8/0x10
[ 2496.021965] [<c01aad27>] ? do_sys_open+0xd7/0x100
[ 2496.021968] [<c01aad27>] ? do_sys_open+0xd7/0x100
[ 2496.021971] [<c01adfaf>] ? fput+0x1f/0x30
[ 2496.021974] [<c01b9e13>] sys_ioctl+0x63/0x70
[ 2496.021976] [<c010366f>] sysenter_do_call+0x12/0x33
[ 2496.022818] phy3 -> rt2x00mac_config: Error - ===>
[ 2496.080208] Pid: 5061, comm: ifconfig Not tainted 2.6.29-rc8-wl #1
[ 2496.080209] Call Trace:
[ 2496.080213] [<c038ae85>] ? printk+0x18/0x1b
[ 2496.080219] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2496.080235] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2496.080246] [<f7f8330f>] ieee80211_open+0x64f/0x8e0 [mac80211]
[ 2496.080252] [<c030eb62>] dev_open+0x82/0xf0
[ 2496.080255] [<c038d9b1>] ? _spin_unlock_bh+0x11/0x20
[ 2496.080258] [<c030e479>] dev_change_flags+0x139/0x1d0
[ 2496.080261] [<c0353b02>] devinet_ioctl+0x542/0x600
[ 2496.080263] [<c011c29f>] ? do_page_fault+0x2ef/0x800
[ 2496.080267] [<c0354dca>] inet_ioctl+0x9a/0xc0
[ 2496.080269] [<c02ffee3>] sock_ioctl+0x63/0x260
[ 2496.080272] [<c02ffe80>] ? sock_ioctl+0x0/0x260
[ 2496.080275] [<c01b9358>] vfs_ioctl+0x28/0x90
[ 2496.080278] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
[ 2496.080280] [<c01c13f0>] ? alloc_fd+0xe0/0x100
[ 2496.080283] [<c038d7a8>] ? _spin_lock+0x8/0x10
[ 2496.080286] [<c01aad27>] ? do_sys_open+0xd7/0x100
[ 2496.080289] [<c01aad27>] ? do_sys_open+0xd7/0x100
[ 2496.080291] [<c01adfaf>] ? fput+0x1f/0x30
[ 2496.080294] [<c01b9e13>] sys_ioctl+0x63/0x70
[ 2496.080297] [<c010366f>] sysenter_do_call+0x12/0x33
[ 2496.085232] phy3 -> rt73usb_init_registers: Error - TXRX_CSR9
WRITE: 0x00000000, READ: 0x00000000
[ 2496.223630] phy3 -> rt73usb_config_duration: Error - TXRX_CSR9
WRITE: 0x00000640, READ: 0x00000640
[ 2496.342899] phy3 -> rt2x00mac_config: Error - <===
[ 2496.400228] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue 0
- CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
[ 2496.402285] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue 1
- CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
[ 2496.404285] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue 2
- CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
[ 2496.406280] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue 3
- CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
[ 2496.409318] phy3 -> rt2x00mac_config: Error - ===>
[ 2496.466744] Pid: 5066, comm: iwconfig Not tainted 2.6.29-rc8-wl #1
[ 2496.466746] Call Trace:
[ 2496.466755] [<c038ae85>] ? printk+0x18/0x1b
[ 2496.466765] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2496.466789] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2496.466819] [<f7f8e874>] ieee80211_set_freq+0x84/0x90 [mac80211]
[ 2496.466829] [<f7f77c5e>] ieee80211_ioctl_siwfreq+0x8e/0x130
[mac80211]
[ 2496.466834] [<c037660b>] ioctl_standard_call+0x5b/0x380
[ 2496.466838] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
[ 2496.466842] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
[ 2496.466844] [<c037624f>] wext_handle_ioctl+0x14f/0x230
[ 2496.466854] [<f7f77bd0>] ? ieee80211_ioctl_siwfreq+0x0/0x130
[mac80211]
[ 2496.466858] [<c03101eb>] dev_ioctl+0x46b/0x530
[ 2496.466861] [<c011c29f>] ? do_page_fault+0x2ef/0x800
[ 2496.466864] [<c023cdfa>] ? smack_sk_alloc_security+0x2a/0x70
[ 2496.466868] [<c02ffe80>] ? sock_ioctl+0x0/0x260
[ 2496.466871] [<c02fff6d>] sock_ioctl+0xed/0x260
[ 2496.466874] [<c038d7a8>] ? _spin_lock+0x8/0x10
[ 2496.466876] [<c02ffe80>] ? sock_ioctl+0x0/0x260
[ 2496.466881] [<c01b9358>] vfs_ioctl+0x28/0x90
[ 2496.466884] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
[ 2496.466886] [<c038d7a8>] ? _spin_lock+0x8/0x10
[ 2496.466890] [<c01aaaa4>] ? fd_install+0x44/0x60
[ 2496.466893] [<c0300843>] ? sock_map_fd+0x43/0x70
[ 2496.466896] [<c010ad05>] ? init_fpu+0x165/0x1a0
[ 2496.466899] [<c01049c0>] ? do_device_not_available+0x0/0x60
[ 2496.466902] [<c010ad05>] ? init_fpu+0x165/0x1a0
[ 2496.466905] [<c01b9e13>] sys_ioctl+0x63/0x70
[ 2496.466907] [<c010366f>] sysenter_do_call+0x12/0x33
[ 2496.477792] phy3 -> rt2x00mac_config: Error - <===
After running 'iwlist mesh scan':
[ 2590.349147] phy3 -> rt2x00mac_config_interface: Error - ===>
[ 2590.416899] Pid: 5069, comm: iwlist Not tainted 2.6.29-rc8-wl #1
[ 2590.416902] Call Trace:
[ 2590.416911] [<c038ae85>] ? printk+0x18/0x1b
[ 2590.416923] [<fa513579>] rt2x00mac_config_interface+0x49/0x130
[rt2x00lib]
[ 2590.416941] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
[rt2x00lib]
[ 2590.416958] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
[ 2590.416972] [<f7f7b484>] ieee80211_start_scan+0x204/0x270 [mac80211]
[ 2590.416982] [<f7f7b55f>] ieee80211_request_scan+0x6f/0xb0 [mac80211]
[ 2590.416993] [<f7f84d28>] ieee80211_scan+0x38/0x50 [mac80211]
[ 2590.417004] [<f7c831bf>] cfg80211_wext_siwscan+0x17f/0x200
[cfg80211]
[ 2590.417009] [<c0376749>] ioctl_standard_call+0x199/0x380
[ 2590.417014] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
[ 2590.417017] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
[ 2590.417020] [<c037624f>] wext_handle_ioctl+0x14f/0x230
[ 2590.417027] [<f7c83040>] ? cfg80211_wext_siwscan+0x0/0x200
[cfg80211]
[ 2590.417030] [<c03101eb>] dev_ioctl+0x46b/0x530
[ 2590.417034] [<c011c29f>] ? do_page_fault+0x2ef/0x800
[ 2590.417037] [<c023cdfa>] ? smack_sk_alloc_security+0x2a/0x70
[ 2590.417041] [<c02ffe80>] ? sock_ioctl+0x0/0x260
[ 2590.417044] [<c02fff6d>] sock_ioctl+0xed/0x260
[ 2590.417047] [<c038d7a8>] ? _spin_lock+0x8/0x10
[ 2590.417050] [<c02ffe80>] ? sock_ioctl+0x0/0x260
[ 2590.417054] [<c01b9358>] vfs_ioctl+0x28/0x90
[ 2590.417057] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
[ 2590.417059] [<c038d7a8>] ? _spin_lock+0x8/0x10
[ 2590.417063] [<c01aaaa4>] ? fd_install+0x44/0x60
[ 2590.417066] [<c0300843>] ? sock_map_fd+0x43/0x70
[ 2590.417069] [<c0301084>] ? sys_socket+0x54/0x70
[ 2590.417072] [<c0302135>] ? sys_socketcall+0x265/0x270
[ 2590.417075] [<c01b9e13>] sys_ioctl+0x63/0x70
[ 2590.417078] [<c010366f>] sysenter_do_call+0x12/0x33
[ 2590.419861] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE:
0x000d0640, READ: 0x000d0640
[ 2590.523014] phy3 -> rt2x00mac_config_interface: Error - <===
[ 2590.590777] Pid: 5069, comm: iwlist Not tainted 2.6.29-rc8-wl #1
[ 2590.590779] Call Trace:
[ 2590.590782] [<c038ae85>] ? printk+0x18/0x1b
[ 2590.590789] [<fa51362d>] rt2x00mac_config_interface+0xfd/0x130
[rt2x00lib]
[ 2590.590803] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
[rt2x00lib]
[ 2590.590814] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
[ 2590.590826] [<f7f7b484>] ieee80211_start_scan+0x204/0x270 [mac80211]
[ 2590.590837] [<f7f7b55f>] ieee80211_request_scan+0x6f/0xb0 [mac80211]
[ 2590.590848] [<f7f84d28>] ieee80211_scan+0x38/0x50 [mac80211]
[ 2590.590857] [<f7c831bf>] cfg80211_wext_siwscan+0x17f/0x200
[cfg80211]
[ 2590.590860] [<c0376749>] ioctl_standard_call+0x199/0x380
[ 2590.590864] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
[ 2590.590867] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
[ 2590.590870] [<c037624f>] wext_handle_ioctl+0x14f/0x230
[ 2590.590876] [<f7c83040>] ? cfg80211_wext_siwscan+0x0/0x200
[cfg80211]
[ 2590.590880] [<c03101eb>] dev_ioctl+0x46b/0x530
[ 2590.590883] [<c011c29f>] ? do_page_fault+0x2ef/0x800
[ 2590.590886] [<c023cdfa>] ? smack_sk_alloc_security+0x2a/0x70
[ 2590.590889] [<c02ffe80>] ? sock_ioctl+0x0/0x260
[ 2590.590891] [<c02fff6d>] sock_ioctl+0xed/0x260
[ 2590.590894] [<c038d7a8>] ? _spin_lock+0x8/0x10
[ 2590.590897] [<c02ffe80>] ? sock_ioctl+0x0/0x260
[ 2590.590900] [<c01b9358>] vfs_ioctl+0x28/0x90
[ 2590.590903] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
[ 2590.590905] [<c038d7a8>] ? _spin_lock+0x8/0x10
[ 2590.590908] [<c01aaaa4>] ? fd_install+0x44/0x60
[ 2590.590911] [<c0300843>] ? sock_map_fd+0x43/0x70
[ 2590.590914] [<c0301084>] ? sys_socket+0x54/0x70
[ 2590.590917] [<c0302135>] ? sys_socketcall+0x265/0x270
[ 2590.590920] [<c01b9e13>] sys_ioctl+0x63/0x70
[ 2590.590922] [<c010366f>] sysenter_do_call+0x12/0x33
[ 2590.616015] phy3 -> rt2x00mac_config: Error - ===>
[ 2590.673353] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2590.673354] Call Trace:
[ 2590.673358] [<c038ae85>] ? printk+0x18/0x1b
[ 2590.673364] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2590.673383] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2590.673392] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2590.673403] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2590.673413] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2590.673417] [<c014458d>] run_workqueue+0x8d/0x150
[ 2590.673421] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2590.673423] [<c01446d8>] worker_thread+0x88/0xf0
[ 2590.673426] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2590.673429] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2590.673432] [<c0147f7c>] kthread+0x3c/0x70
[ 2590.673435] [<c0147f40>] ? kthread+0x0/0x70
[ 2590.673438] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2590.683658] phy3 -> rt2x00mac_config: Error - <===
[ 2590.796012] phy3 -> rt2x00mac_config: Error - ===>
[ 2590.853381] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2590.853382] Call Trace:
[ 2590.853386] [<c038ae85>] ? printk+0x18/0x1b
[ 2590.853392] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2590.853411] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2590.853421] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2590.853431] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2590.853441] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2590.853444] [<c014458d>] run_workqueue+0x8d/0x150
[ 2590.853448] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2590.853450] [<c01446d8>] worker_thread+0x88/0xf0
[ 2590.853453] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2590.853456] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2590.853459] [<c0147f7c>] kthread+0x3c/0x70
[ 2590.853461] [<c0147f40>] ? kthread+0x0/0x70
[ 2590.853464] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2590.863813] phy3 -> rt2x00mac_config: Error - <===
[ 2590.976011] phy3 -> rt2x00mac_config: Error - ===>
[ 2591.033409] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2591.033411] Call Trace:
[ 2591.033415] [<c038ae85>] ? printk+0x18/0x1b
[ 2591.033421] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2591.033448] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.033458] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2591.033468] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2591.033479] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.033482] [<c014458d>] run_workqueue+0x8d/0x150
[ 2591.033486] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2591.033488] [<c01446d8>] worker_thread+0x88/0xf0
[ 2591.033491] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2591.033494] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2591.033497] [<c0147f7c>] kthread+0x3c/0x70
[ 2591.033500] [<c0147f40>] ? kthread+0x0/0x70
[ 2591.033503] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2591.043842] phy3 -> rt2x00mac_config: Error - <===
[ 2591.156012] phy3 -> rt2x00mac_config: Error - ===>
[ 2591.213336] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2591.213338] Call Trace:
[ 2591.213341] [<c038ae85>] ? printk+0x18/0x1b
[ 2591.213347] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2591.213366] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.213376] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2591.213386] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2591.213397] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.213400] [<c014458d>] run_workqueue+0x8d/0x150
[ 2591.213403] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2591.213406] [<c01446d8>] worker_thread+0x88/0xf0
[ 2591.213409] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2591.213412] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2591.213415] [<c0147f7c>] kthread+0x3c/0x70
[ 2591.213417] [<c0147f40>] ? kthread+0x0/0x70
[ 2591.213420] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2591.223748] phy3 -> rt2x00mac_config: Error - <===
[ 2591.336011] phy3 -> rt2x00mac_config: Error - ===>
[ 2591.393365] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2591.393366] Call Trace:
[ 2591.393369] [<c038ae85>] ? printk+0x18/0x1b
[ 2591.393376] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2591.393394] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.393403] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2591.393414] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2591.393424] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.393427] [<c014458d>] run_workqueue+0x8d/0x150
[ 2591.393430] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2591.393433] [<c01446d8>] worker_thread+0x88/0xf0
[ 2591.393436] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2591.393439] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2591.393442] [<c0147f7c>] kthread+0x3c/0x70
[ 2591.393444] [<c0147f40>] ? kthread+0x0/0x70
[ 2591.393447] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2591.403653] phy3 -> rt2x00mac_config: Error - <===
[ 2591.516012] phy3 -> rt2x00mac_config: Error - ===>
[ 2591.573395] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2591.573397] Call Trace:
[ 2591.573400] [<c038ae85>] ? printk+0x18/0x1b
[ 2591.573406] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2591.573424] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.573434] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2591.573445] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2591.573455] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.573458] [<c014458d>] run_workqueue+0x8d/0x150
[ 2591.573462] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2591.573464] [<c01446d8>] worker_thread+0x88/0xf0
[ 2591.573468] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2591.573470] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2591.573473] [<c0147f7c>] kthread+0x3c/0x70
[ 2591.573476] [<c0147f40>] ? kthread+0x0/0x70
[ 2591.573479] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2591.583808] phy3 -> rt2x00mac_config: Error - <===
[ 2591.696012] phy3 -> rt2x00mac_config: Error - ===>
[ 2591.753322] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2591.753324] Call Trace:
[ 2591.753327] [<c038ae85>] ? printk+0x18/0x1b
[ 2591.753333] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2591.753351] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.753361] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2591.753371] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2591.753381] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.753384] [<c014458d>] run_workqueue+0x8d/0x150
[ 2591.753388] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2591.753390] [<c01446d8>] worker_thread+0x88/0xf0
[ 2591.753393] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2591.753396] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2591.753398] [<c0147f7c>] kthread+0x3c/0x70
[ 2591.753401] [<c0147f40>] ? kthread+0x0/0x70
[ 2591.753404] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2591.763711] phy3 -> rt2x00mac_config: Error - <===
[ 2591.876011] phy3 -> rt2x00mac_config: Error - ===>
[ 2591.933351] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2591.933353] Call Trace:
[ 2591.933356] [<c038ae85>] ? printk+0x18/0x1b
[ 2591.933362] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2591.933380] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.933390] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2591.933401] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2591.933411] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2591.933414] [<c014458d>] run_workqueue+0x8d/0x150
[ 2591.933417] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2591.933420] [<c01446d8>] worker_thread+0x88/0xf0
[ 2591.933423] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2591.933426] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2591.933429] [<c0147f7c>] kthread+0x3c/0x70
[ 2591.933432] [<c0147f40>] ? kthread+0x0/0x70
[ 2591.933434] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2591.943741] phy3 -> rt2x00mac_config: Error - <===
[ 2592.056011] phy3 -> rt2x00mac_config: Error - ===>
[ 2592.113388] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2592.113389] Call Trace:
[ 2592.113392] [<c038ae85>] ? printk+0x18/0x1b
[ 2592.113399] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2592.113417] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2592.113427] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2592.113437] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2592.113447] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2592.113450] [<c014458d>] run_workqueue+0x8d/0x150
[ 2592.113454] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2592.113456] [<c01446d8>] worker_thread+0x88/0xf0
[ 2592.113460] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2592.113462] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2592.113465] [<c0147f7c>] kthread+0x3c/0x70
[ 2592.113468] [<c0147f40>] ? kthread+0x0/0x70
[ 2592.113471] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2592.123771] phy3 -> rt2x00mac_config: Error - <===
[ 2592.236011] phy3 -> rt2x00mac_config: Error - ===>
[ 2592.293307] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2592.293308] Call Trace:
[ 2592.293312] [<c038ae85>] ? printk+0x18/0x1b
[ 2592.293318] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2592.293336] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2592.293346] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2592.293356] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2592.293367] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2592.293370] [<c014458d>] run_workqueue+0x8d/0x150
[ 2592.293373] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2592.293376] [<c01446d8>] worker_thread+0x88/0xf0
[ 2592.293379] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2592.293382] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2592.293385] [<c0147f7c>] kthread+0x3c/0x70
[ 2592.293387] [<c0147f40>] ? kthread+0x0/0x70
[ 2592.293390] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2592.303677] phy3 -> rt2x00mac_config: Error - <===
[ 2592.416011] phy3 -> rt2x00mac_config: Error - ===>
[ 2592.473336] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2592.473337] Call Trace:
[ 2592.473341] [<c038ae85>] ? printk+0x18/0x1b
[ 2592.473347] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2592.473365] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2592.473374] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2592.473385] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2592.473395] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2592.473398] [<c014458d>] run_workqueue+0x8d/0x150
[ 2592.473402] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2592.473404] [<c01446d8>] worker_thread+0x88/0xf0
[ 2592.473408] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2592.473410] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2592.473413] [<c0147f7c>] kthread+0x3c/0x70
[ 2592.473416] [<c0147f40>] ? kthread+0x0/0x70
[ 2592.473419] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2592.483707] phy3 -> rt2x00mac_config: Error - <===
[ 2592.596011] phy3 -> rt2x00mac_config: Error - ===>
[ 2592.653367] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2592.653369] Call Trace:
[ 2592.653372] [<c038ae85>] ? printk+0x18/0x1b
[ 2592.653378] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2592.653397] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2592.653406] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2592.653417] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2592.653427] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2592.653430] [<c014458d>] run_workqueue+0x8d/0x150
[ 2592.653433] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2592.653436] [<c01446d8>] worker_thread+0x88/0xf0
[ 2592.653439] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2592.653442] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2592.653445] [<c0147f7c>] kthread+0x3c/0x70
[ 2592.653448] [<c0147f40>] ? kthread+0x0/0x70
[ 2592.653450] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2592.663736] phy3 -> rt2x00mac_config: Error - <===
[ 2592.948010] phy3 -> rt2x00mac_config: Error - ===>
[ 2593.005414] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2593.005416] Call Trace:
[ 2593.005419] [<c038ae85>] ? printk+0x18/0x1b
[ 2593.005425] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2593.005448] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2593.005458] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2593.005468] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2593.005478] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2593.005481] [<c014458d>] run_workqueue+0x8d/0x150
[ 2593.005484] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2593.005487] [<c01446d8>] worker_thread+0x88/0xf0
[ 2593.005490] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2593.005493] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2593.005496] [<c0147f7c>] kthread+0x3c/0x70
[ 2593.005498] [<c0147f40>] ? kthread+0x0/0x70
[ 2593.005501] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2593.015795] phy3 -> rt2x00mac_config: Error - <===
[ 2593.128011] phy3 -> rt2x00mac_config: Error - ===>
[ 2593.185344] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2593.185346] Call Trace:
[ 2593.185349] [<c038ae85>] ? printk+0x18/0x1b
[ 2593.185355] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2593.185374] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2593.185383] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2593.185393] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
[ 2593.185404] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2593.185407] [<c014458d>] run_workqueue+0x8d/0x150
[ 2593.185410] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2593.185413] [<c01446d8>] worker_thread+0x88/0xf0
[ 2593.185416] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2593.185419] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2593.185421] [<c0147f7c>] kthread+0x3c/0x70
[ 2593.185424] [<c0147f40>] ? kthread+0x0/0x70
[ 2593.185427] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2593.195699] phy3 -> rt2x00mac_config: Error - <===
[ 2593.480022] phy3 -> rt2x00mac_config: Error - ===>
[ 2593.537396] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2593.537397] Call Trace:
[ 2593.537402] [<c038ae85>] ? printk+0x18/0x1b
[ 2593.537408] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
[ 2593.537428] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2593.537438] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
[ 2593.537449] [<f7f7b6b7>] ieee80211_scan_completed+0xb7/0x3a0
[mac80211]
[ 2593.537452] [<c038b3ce>] ? schedule+0x3de/0xa20
[ 2593.537462] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2593.537473] [<f7f7baf9>] ieee80211_scan_work+0x159/0x190 [mac80211]
[ 2593.537483] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2593.537486] [<c014458d>] run_workqueue+0x8d/0x150
[ 2593.537490] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2593.537492] [<c01446d8>] worker_thread+0x88/0xf0
[ 2593.537495] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2593.537498] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2593.537501] [<c0147f7c>] kthread+0x3c/0x70
[ 2593.537504] [<c0147f40>] ? kthread+0x0/0x70
[ 2593.537506] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2593.547882] phy3 -> rt2x00mac_config: Error - <===
[ 2593.606302] phy3 -> rt2x00mac_config_interface: Error - ===>
[ 2593.674076] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2593.674078] Call Trace:
[ 2593.674085] [<c038ae85>] ? printk+0x18/0x1b
[ 2593.674094] [<fa513579>] rt2x00mac_config_interface+0x49/0x130
[rt2x00lib]
[ 2593.674111] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
[rt2x00lib]
[ 2593.674126] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
[ 2593.674139] [<f7f7b90c>] ieee80211_scan_completed+0x30c/0x3a0
[mac80211]
[ 2593.674150] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2593.674160] [<f7f7baf9>] ieee80211_scan_work+0x159/0x190 [mac80211]
[ 2593.674171] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2593.674175] [<c014458d>] run_workqueue+0x8d/0x150
[ 2593.674179] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2593.674182] [<c01446d8>] worker_thread+0x88/0xf0
[ 2593.674185] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2593.674188] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2593.674190] [<c0147f7c>] kthread+0x3c/0x70
[ 2593.674193] [<c0147f40>] ? kthread+0x0/0x70
[ 2593.674196] [<c0103f27>] kernel_thread_helper+0x7/0x10
[ 2593.675901] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE:
0x000d0640, READ: 0x000d0640
[ 2593.779792] phy3 -> rt73usb_write_beacon: Error - TXRX_CSR9 WRITE:
0x00040640, READ: 0x00040640
[ 2593.886185] phy3 -> rt73usb_kick_tx_queue: Error - TXRX_CSR9 WRITE:
0x001d0640, READ: 0x001d0640
[ 2593.991374] phy3 -> rt2x00mac_config_interface: Error - <===
[ 2594.059083] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
[ 2594.059085] Call Trace:
[ 2594.059088] [<c038ae85>] ? printk+0x18/0x1b
[ 2594.059094] [<fa51362d>] rt2x00mac_config_interface+0xfd/0x130
[rt2x00lib]
[ 2594.059107] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
[rt2x00lib]
[ 2594.059118] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
[ 2594.059131] [<f7f7b90c>] ieee80211_scan_completed+0x30c/0x3a0
[mac80211]
[ 2594.059141] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2594.059152] [<f7f7baf9>] ieee80211_scan_work+0x159/0x190 [mac80211]
[ 2594.059162] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
[ 2594.059165] [<c014458d>] run_workqueue+0x8d/0x150
[ 2594.059169] [<c014855a>] ? prepare_to_wait+0x3a/0x70
[ 2594.059171] [<c01446d8>] worker_thread+0x88/0xf0
[ 2594.059174] [<c0148300>] ? autoremove_wake_function+0x0/0x50
[ 2594.059177] [<c0144650>] ? worker_thread+0x0/0xf0
[ 2594.059180] [<c0147f7c>] kthread+0x3c/0x70
[ 2594.059182] [<c0147f40>] ? kthread+0x0/0x70
[ 2594.059185] [<c0103f27>] kernel_thread_helper+0x7/0x10
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-18 12:26 ` Antonio Marques
@ 2009-03-18 12:48 ` Ivo van Doorn
2009-03-18 13:12 ` Johannes Berg
0 siblings, 1 reply; 28+ messages in thread
From: Ivo van Doorn @ 2009-03-18 12:48 UTC (permalink / raw)
To: Antonio Marques, Johannes Berg; +Cc: Andrey Yurovsky, linux-wireless
On Wednesday 18 March 2009, Antonio Marques wrote:
> On Mar 18, 2009, at 10:02 , Ivo van Doorn wrote:
> > On Wednesday 18 March 2009, Johannes Berg wrote:
> >> On Wed, 2009-03-18 at 00:01 +0100, Ivo van Doorn wrote:
> >>
> >>>>> This command means that mac80211 uses the start() callback
> >>>>> function. This triggers rt2x00 to initialize
> >>>>> the registers which resets the beacon generation.
> >>>>
> >>>> Strange, that doesn't seem right. If you look at net/mac80211/
> >>>> iface.c,
> >>>> you'll see it call ->start(), then ->add_interface(), and later
> >>>> ieee80211_start_mesh(), which calls _if_config() and sets
> >>>> beacon/beacon_enabled.
> >>>
> >>> ok, I gone through the rt2x00 code a couple of times now to see
> >>> how this bug can be triggered by rt2x00,
> >>> But the only other scenario I could find, is when the open()
> >>> callback for the netdevice structure doesn't end
> >>> with a call to the config() callback function. But as far as I see
> >>> it that is happening correctly.
> >>
> >> Maybe log (+dump_stack()) all the relevant calls from mac80211 to the
> >> driver? That might give us a better idea of what's going on. Also,
> >> Antonio, make sure you're using the very latest code. I for one need
> >> sleep now :)
> >
> > Antonio, could you please use attached patch to add additional
> > debugging to rt2x00.
> > This will do a dump_stack for all important functions
> > (add_interface, remove_interface, config() and config_interface())
> >
> > It doesn't matter if this patch is on top of the previous patch or
> > not.
> >
> > Thanks,
> >
> > Ivo
> > <debug.diff>
>
> Ok, I have updated to the very latest code (still the same behaviour
> though) and
> applied the new patch. The rather lengthy list of backtraces is
> attached.
Excellent thanks. :)
Johannes, my previous assumption is apparently correct,
The following is happening:
ieee80211_open()
-> ops->add_interface()
-> ieee80211_start_mesh()
-> ieee80211_if_config()
-> ops->config_interface()
-> ieee80211_hw_config()
-> ops->config()
Because config_interface() is called before config() the radio
is not enabled at the moment config_interface() is called and
the call to config() will effectively disable beaconing.
Ivo
---
> [ 2495.333900] phy3 -> rt2x00mac_add_interface: Error - ===>
> [ 2495.398572] Pid: 5061, comm: ifconfig Not tainted 2.6.29-rc8-wl #1
> [ 2495.398574] Call Trace:
> [ 2495.398583] [<c038ae85>] ? printk+0x18/0x1b
> [ 2495.398592] [<fa513388>] rt2x00mac_add_interface+0x58/0x200
> [rt2x00lib]
> [ 2495.398624] [<f7f82f87>] ieee80211_open+0x2c7/0x8e0 [mac80211]
> [ 2495.398631] [<c030eb62>] dev_open+0x82/0xf0
> [ 2495.398634] [<c038d9b1>] ? _spin_unlock_bh+0x11/0x20
> [ 2495.398637] [<c030e479>] dev_change_flags+0x139/0x1d0
> [ 2495.398641] [<c0353b02>] devinet_ioctl+0x542/0x600
> [ 2495.398644] [<c011c29f>] ? do_page_fault+0x2ef/0x800
> [ 2495.398647] [<c0354dca>] inet_ioctl+0x9a/0xc0
> [ 2495.398651] [<c02ffee3>] sock_ioctl+0x63/0x260
> [ 2495.398653] [<c02ffe80>] ? sock_ioctl+0x0/0x260
> [ 2495.398658] [<c01b9358>] vfs_ioctl+0x28/0x90
> [ 2495.398660] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
> [ 2495.398664] [<c01c13f0>] ? alloc_fd+0xe0/0x100
> [ 2495.398666] [<c038d7a8>] ? _spin_lock+0x8/0x10
> [ 2495.398670] [<c01aad27>] ? do_sys_open+0xd7/0x100
> [ 2495.398673] [<c01aad27>] ? do_sys_open+0xd7/0x100
> [ 2495.398676] [<c01adfaf>] ? fput+0x1f/0x30
> [ 2495.398679] [<c01b9e13>] sys_ioctl+0x63/0x70
> [ 2495.398682] [<c010366f>] sysenter_do_call+0x12/0x33
> [ 2495.400364] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE:
> 0x000d0000, READ: 0x000d0000
> [ 2495.503881] phy3 -> rt2x00mac_add_interface: Error - <===
> [ 2495.568516] phy3 -> rt2x00mac_config_interface: Error - ===>
> [ 2495.636217] Pid: 5061, comm: ifconfig Not tainted 2.6.29-rc8-wl #1
> [ 2495.636219] Call Trace:
> [ 2495.636222] [<c038ae85>] ? printk+0x18/0x1b
> [ 2495.636228] [<fa513579>] rt2x00mac_config_interface+0x49/0x130
> [rt2x00lib]
> [ 2495.636241] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
> [rt2x00lib]
> [ 2495.636252] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
> [ 2495.636268] [<f7f9398a>] ieee80211_start_mesh+0x2a/0x30 [mac80211]
> [ 2495.636279] [<f7f83489>] ieee80211_open+0x7c9/0x8e0 [mac80211]
> [ 2495.636284] [<c030eb62>] dev_open+0x82/0xf0
> [ 2495.636286] [<c038d9b1>] ? _spin_unlock_bh+0x11/0x20
> [ 2495.636290] [<c030e479>] dev_change_flags+0x139/0x1d0
> [ 2495.636292] [<c0353b02>] devinet_ioctl+0x542/0x600
> [ 2495.636295] [<c011c29f>] ? do_page_fault+0x2ef/0x800
> [ 2495.636298] [<c0354dca>] inet_ioctl+0x9a/0xc0
> [ 2495.636301] [<c02ffee3>] sock_ioctl+0x63/0x260
> [ 2495.636304] [<c02ffe80>] ? sock_ioctl+0x0/0x260
> [ 2495.636307] [<c01b9358>] vfs_ioctl+0x28/0x90
> [ 2495.636310] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
> [ 2495.636312] [<c01c13f0>] ? alloc_fd+0xe0/0x100
> [ 2495.636315] [<c038d7a8>] ? _spin_lock+0x8/0x10
> [ 2495.636318] [<c01aad27>] ? do_sys_open+0xd7/0x100
> [ 2495.636320] [<c01aad27>] ? do_sys_open+0xd7/0x100
> [ 2495.636323] [<c01adfaf>] ? fput+0x1f/0x30
> [ 2495.636326] [<c01b9e13>] sys_ioctl+0x63/0x70
> [ 2495.636329] [<c010366f>] sysenter_do_call+0x12/0x33
> [ 2495.638657] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE:
> 0x000d0000, READ: 0x000d0000
> [ 2495.742550] phy3 -> rt73usb_write_beacon: Error - TXRX_CSR9 WRITE:
> 0x00040000, READ: 0x00040000
> [ 2495.848942] phy3 -> rt73usb_kick_tx_queue: Error - TXRX_CSR9 WRITE:
> 0x001d0000, READ: 0x001d0000
> [ 2495.954156] phy3 -> rt2x00mac_config_interface: Error - <===
> [ 2496.021865] Pid: 5061, comm: ifconfig Not tainted 2.6.29-rc8-wl #1
> [ 2496.021867] Call Trace:
> [ 2496.021870] [<c038ae85>] ? printk+0x18/0x1b
> [ 2496.021876] [<fa51362d>] rt2x00mac_config_interface+0xfd/0x130
> [rt2x00lib]
> [ 2496.021889] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
> [rt2x00lib]
> [ 2496.021900] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
> [ 2496.021914] [<f7f9398a>] ieee80211_start_mesh+0x2a/0x30 [mac80211]
> [ 2496.021925] [<f7f83489>] ieee80211_open+0x7c9/0x8e0 [mac80211]
> [ 2496.021931] [<c030eb62>] dev_open+0x82/0xf0
> [ 2496.021933] [<c038d9b1>] ? _spin_unlock_bh+0x11/0x20
> [ 2496.021937] [<c030e479>] dev_change_flags+0x139/0x1d0
> [ 2496.021940] [<c0353b02>] devinet_ioctl+0x542/0x600
> [ 2496.021943] [<c011c29f>] ? do_page_fault+0x2ef/0x800
> [ 2496.021946] [<c0354dca>] inet_ioctl+0x9a/0xc0
> [ 2496.021948] [<c02ffee3>] sock_ioctl+0x63/0x260
> [ 2496.021951] [<c02ffe80>] ? sock_ioctl+0x0/0x260
> [ 2496.021954] [<c01b9358>] vfs_ioctl+0x28/0x90
> [ 2496.021957] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
> [ 2496.021960] [<c01c13f0>] ? alloc_fd+0xe0/0x100
> [ 2496.021962] [<c038d7a8>] ? _spin_lock+0x8/0x10
> [ 2496.021965] [<c01aad27>] ? do_sys_open+0xd7/0x100
> [ 2496.021968] [<c01aad27>] ? do_sys_open+0xd7/0x100
> [ 2496.021971] [<c01adfaf>] ? fput+0x1f/0x30
> [ 2496.021974] [<c01b9e13>] sys_ioctl+0x63/0x70
> [ 2496.021976] [<c010366f>] sysenter_do_call+0x12/0x33
> [ 2496.022818] phy3 -> rt2x00mac_config: Error - ===>
> [ 2496.080208] Pid: 5061, comm: ifconfig Not tainted 2.6.29-rc8-wl #1
> [ 2496.080209] Call Trace:
> [ 2496.080213] [<c038ae85>] ? printk+0x18/0x1b
> [ 2496.080219] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2496.080235] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2496.080246] [<f7f8330f>] ieee80211_open+0x64f/0x8e0 [mac80211]
> [ 2496.080252] [<c030eb62>] dev_open+0x82/0xf0
> [ 2496.080255] [<c038d9b1>] ? _spin_unlock_bh+0x11/0x20
> [ 2496.080258] [<c030e479>] dev_change_flags+0x139/0x1d0
> [ 2496.080261] [<c0353b02>] devinet_ioctl+0x542/0x600
> [ 2496.080263] [<c011c29f>] ? do_page_fault+0x2ef/0x800
> [ 2496.080267] [<c0354dca>] inet_ioctl+0x9a/0xc0
> [ 2496.080269] [<c02ffee3>] sock_ioctl+0x63/0x260
> [ 2496.080272] [<c02ffe80>] ? sock_ioctl+0x0/0x260
> [ 2496.080275] [<c01b9358>] vfs_ioctl+0x28/0x90
> [ 2496.080278] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
> [ 2496.080280] [<c01c13f0>] ? alloc_fd+0xe0/0x100
> [ 2496.080283] [<c038d7a8>] ? _spin_lock+0x8/0x10
> [ 2496.080286] [<c01aad27>] ? do_sys_open+0xd7/0x100
> [ 2496.080289] [<c01aad27>] ? do_sys_open+0xd7/0x100
> [ 2496.080291] [<c01adfaf>] ? fput+0x1f/0x30
> [ 2496.080294] [<c01b9e13>] sys_ioctl+0x63/0x70
> [ 2496.080297] [<c010366f>] sysenter_do_call+0x12/0x33
> [ 2496.085232] phy3 -> rt73usb_init_registers: Error - TXRX_CSR9
> WRITE: 0x00000000, READ: 0x00000000
> [ 2496.223630] phy3 -> rt73usb_config_duration: Error - TXRX_CSR9
> WRITE: 0x00000640, READ: 0x00000640
> [ 2496.342899] phy3 -> rt2x00mac_config: Error - <===
> [ 2496.400228] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue 0
> - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
> [ 2496.402285] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue 1
> - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
> [ 2496.404285] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue 2
> - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
> [ 2496.406280] phy3 -> rt2x00mac_conf_tx: Info - Configured TX queue 3
> - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
> [ 2496.409318] phy3 -> rt2x00mac_config: Error - ===>
> [ 2496.466744] Pid: 5066, comm: iwconfig Not tainted 2.6.29-rc8-wl #1
> [ 2496.466746] Call Trace:
> [ 2496.466755] [<c038ae85>] ? printk+0x18/0x1b
> [ 2496.466765] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2496.466789] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2496.466819] [<f7f8e874>] ieee80211_set_freq+0x84/0x90 [mac80211]
> [ 2496.466829] [<f7f77c5e>] ieee80211_ioctl_siwfreq+0x8e/0x130
> [mac80211]
> [ 2496.466834] [<c037660b>] ioctl_standard_call+0x5b/0x380
> [ 2496.466838] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
> [ 2496.466842] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
> [ 2496.466844] [<c037624f>] wext_handle_ioctl+0x14f/0x230
> [ 2496.466854] [<f7f77bd0>] ? ieee80211_ioctl_siwfreq+0x0/0x130
> [mac80211]
> [ 2496.466858] [<c03101eb>] dev_ioctl+0x46b/0x530
> [ 2496.466861] [<c011c29f>] ? do_page_fault+0x2ef/0x800
> [ 2496.466864] [<c023cdfa>] ? smack_sk_alloc_security+0x2a/0x70
> [ 2496.466868] [<c02ffe80>] ? sock_ioctl+0x0/0x260
> [ 2496.466871] [<c02fff6d>] sock_ioctl+0xed/0x260
> [ 2496.466874] [<c038d7a8>] ? _spin_lock+0x8/0x10
> [ 2496.466876] [<c02ffe80>] ? sock_ioctl+0x0/0x260
> [ 2496.466881] [<c01b9358>] vfs_ioctl+0x28/0x90
> [ 2496.466884] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
> [ 2496.466886] [<c038d7a8>] ? _spin_lock+0x8/0x10
> [ 2496.466890] [<c01aaaa4>] ? fd_install+0x44/0x60
> [ 2496.466893] [<c0300843>] ? sock_map_fd+0x43/0x70
> [ 2496.466896] [<c010ad05>] ? init_fpu+0x165/0x1a0
> [ 2496.466899] [<c01049c0>] ? do_device_not_available+0x0/0x60
> [ 2496.466902] [<c010ad05>] ? init_fpu+0x165/0x1a0
> [ 2496.466905] [<c01b9e13>] sys_ioctl+0x63/0x70
> [ 2496.466907] [<c010366f>] sysenter_do_call+0x12/0x33
> [ 2496.477792] phy3 -> rt2x00mac_config: Error - <===
>
> After running 'iwlist mesh scan':
>
> [ 2590.349147] phy3 -> rt2x00mac_config_interface: Error - ===>
> [ 2590.416899] Pid: 5069, comm: iwlist Not tainted 2.6.29-rc8-wl #1
> [ 2590.416902] Call Trace:
> [ 2590.416911] [<c038ae85>] ? printk+0x18/0x1b
> [ 2590.416923] [<fa513579>] rt2x00mac_config_interface+0x49/0x130
> [rt2x00lib]
> [ 2590.416941] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
> [rt2x00lib]
> [ 2590.416958] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
> [ 2590.416972] [<f7f7b484>] ieee80211_start_scan+0x204/0x270 [mac80211]
> [ 2590.416982] [<f7f7b55f>] ieee80211_request_scan+0x6f/0xb0 [mac80211]
> [ 2590.416993] [<f7f84d28>] ieee80211_scan+0x38/0x50 [mac80211]
> [ 2590.417004] [<f7c831bf>] cfg80211_wext_siwscan+0x17f/0x200
> [cfg80211]
> [ 2590.417009] [<c0376749>] ioctl_standard_call+0x199/0x380
> [ 2590.417014] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
> [ 2590.417017] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
> [ 2590.417020] [<c037624f>] wext_handle_ioctl+0x14f/0x230
> [ 2590.417027] [<f7c83040>] ? cfg80211_wext_siwscan+0x0/0x200
> [cfg80211]
> [ 2590.417030] [<c03101eb>] dev_ioctl+0x46b/0x530
> [ 2590.417034] [<c011c29f>] ? do_page_fault+0x2ef/0x800
> [ 2590.417037] [<c023cdfa>] ? smack_sk_alloc_security+0x2a/0x70
> [ 2590.417041] [<c02ffe80>] ? sock_ioctl+0x0/0x260
> [ 2590.417044] [<c02fff6d>] sock_ioctl+0xed/0x260
> [ 2590.417047] [<c038d7a8>] ? _spin_lock+0x8/0x10
> [ 2590.417050] [<c02ffe80>] ? sock_ioctl+0x0/0x260
> [ 2590.417054] [<c01b9358>] vfs_ioctl+0x28/0x90
> [ 2590.417057] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
> [ 2590.417059] [<c038d7a8>] ? _spin_lock+0x8/0x10
> [ 2590.417063] [<c01aaaa4>] ? fd_install+0x44/0x60
> [ 2590.417066] [<c0300843>] ? sock_map_fd+0x43/0x70
> [ 2590.417069] [<c0301084>] ? sys_socket+0x54/0x70
> [ 2590.417072] [<c0302135>] ? sys_socketcall+0x265/0x270
> [ 2590.417075] [<c01b9e13>] sys_ioctl+0x63/0x70
> [ 2590.417078] [<c010366f>] sysenter_do_call+0x12/0x33
> [ 2590.419861] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE:
> 0x000d0640, READ: 0x000d0640
> [ 2590.523014] phy3 -> rt2x00mac_config_interface: Error - <===
> [ 2590.590777] Pid: 5069, comm: iwlist Not tainted 2.6.29-rc8-wl #1
> [ 2590.590779] Call Trace:
> [ 2590.590782] [<c038ae85>] ? printk+0x18/0x1b
> [ 2590.590789] [<fa51362d>] rt2x00mac_config_interface+0xfd/0x130
> [rt2x00lib]
> [ 2590.590803] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
> [rt2x00lib]
> [ 2590.590814] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
> [ 2590.590826] [<f7f7b484>] ieee80211_start_scan+0x204/0x270 [mac80211]
> [ 2590.590837] [<f7f7b55f>] ieee80211_request_scan+0x6f/0xb0 [mac80211]
> [ 2590.590848] [<f7f84d28>] ieee80211_scan+0x38/0x50 [mac80211]
> [ 2590.590857] [<f7c831bf>] cfg80211_wext_siwscan+0x17f/0x200
> [cfg80211]
> [ 2590.590860] [<c0376749>] ioctl_standard_call+0x199/0x380
> [ 2590.590864] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
> [ 2590.590867] [<c030f67d>] ? __dev_get_by_name+0x7d/0xa0
> [ 2590.590870] [<c037624f>] wext_handle_ioctl+0x14f/0x230
> [ 2590.590876] [<f7c83040>] ? cfg80211_wext_siwscan+0x0/0x200
> [cfg80211]
> [ 2590.590880] [<c03101eb>] dev_ioctl+0x46b/0x530
> [ 2590.590883] [<c011c29f>] ? do_page_fault+0x2ef/0x800
> [ 2590.590886] [<c023cdfa>] ? smack_sk_alloc_security+0x2a/0x70
> [ 2590.590889] [<c02ffe80>] ? sock_ioctl+0x0/0x260
> [ 2590.590891] [<c02fff6d>] sock_ioctl+0xed/0x260
> [ 2590.590894] [<c038d7a8>] ? _spin_lock+0x8/0x10
> [ 2590.590897] [<c02ffe80>] ? sock_ioctl+0x0/0x260
> [ 2590.590900] [<c01b9358>] vfs_ioctl+0x28/0x90
> [ 2590.590903] [<c01b9872>] do_vfs_ioctl+0x72/0x5b0
> [ 2590.590905] [<c038d7a8>] ? _spin_lock+0x8/0x10
> [ 2590.590908] [<c01aaaa4>] ? fd_install+0x44/0x60
> [ 2590.590911] [<c0300843>] ? sock_map_fd+0x43/0x70
> [ 2590.590914] [<c0301084>] ? sys_socket+0x54/0x70
> [ 2590.590917] [<c0302135>] ? sys_socketcall+0x265/0x270
> [ 2590.590920] [<c01b9e13>] sys_ioctl+0x63/0x70
> [ 2590.590922] [<c010366f>] sysenter_do_call+0x12/0x33
> [ 2590.616015] phy3 -> rt2x00mac_config: Error - ===>
> [ 2590.673353] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2590.673354] Call Trace:
> [ 2590.673358] [<c038ae85>] ? printk+0x18/0x1b
> [ 2590.673364] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2590.673383] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2590.673392] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2590.673403] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2590.673413] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2590.673417] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2590.673421] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2590.673423] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2590.673426] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2590.673429] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2590.673432] [<c0147f7c>] kthread+0x3c/0x70
> [ 2590.673435] [<c0147f40>] ? kthread+0x0/0x70
> [ 2590.673438] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2590.683658] phy3 -> rt2x00mac_config: Error - <===
> [ 2590.796012] phy3 -> rt2x00mac_config: Error - ===>
> [ 2590.853381] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2590.853382] Call Trace:
> [ 2590.853386] [<c038ae85>] ? printk+0x18/0x1b
> [ 2590.853392] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2590.853411] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2590.853421] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2590.853431] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2590.853441] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2590.853444] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2590.853448] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2590.853450] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2590.853453] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2590.853456] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2590.853459] [<c0147f7c>] kthread+0x3c/0x70
> [ 2590.853461] [<c0147f40>] ? kthread+0x0/0x70
> [ 2590.853464] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2590.863813] phy3 -> rt2x00mac_config: Error - <===
> [ 2590.976011] phy3 -> rt2x00mac_config: Error - ===>
> [ 2591.033409] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2591.033411] Call Trace:
> [ 2591.033415] [<c038ae85>] ? printk+0x18/0x1b
> [ 2591.033421] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2591.033448] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.033458] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2591.033468] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2591.033479] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.033482] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2591.033486] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2591.033488] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2591.033491] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2591.033494] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2591.033497] [<c0147f7c>] kthread+0x3c/0x70
> [ 2591.033500] [<c0147f40>] ? kthread+0x0/0x70
> [ 2591.033503] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2591.043842] phy3 -> rt2x00mac_config: Error - <===
> [ 2591.156012] phy3 -> rt2x00mac_config: Error - ===>
> [ 2591.213336] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2591.213338] Call Trace:
> [ 2591.213341] [<c038ae85>] ? printk+0x18/0x1b
> [ 2591.213347] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2591.213366] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.213376] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2591.213386] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2591.213397] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.213400] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2591.213403] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2591.213406] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2591.213409] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2591.213412] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2591.213415] [<c0147f7c>] kthread+0x3c/0x70
> [ 2591.213417] [<c0147f40>] ? kthread+0x0/0x70
> [ 2591.213420] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2591.223748] phy3 -> rt2x00mac_config: Error - <===
> [ 2591.336011] phy3 -> rt2x00mac_config: Error - ===>
> [ 2591.393365] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2591.393366] Call Trace:
> [ 2591.393369] [<c038ae85>] ? printk+0x18/0x1b
> [ 2591.393376] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2591.393394] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.393403] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2591.393414] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2591.393424] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.393427] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2591.393430] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2591.393433] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2591.393436] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2591.393439] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2591.393442] [<c0147f7c>] kthread+0x3c/0x70
> [ 2591.393444] [<c0147f40>] ? kthread+0x0/0x70
> [ 2591.393447] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2591.403653] phy3 -> rt2x00mac_config: Error - <===
> [ 2591.516012] phy3 -> rt2x00mac_config: Error - ===>
> [ 2591.573395] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2591.573397] Call Trace:
> [ 2591.573400] [<c038ae85>] ? printk+0x18/0x1b
> [ 2591.573406] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2591.573424] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.573434] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2591.573445] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2591.573455] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.573458] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2591.573462] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2591.573464] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2591.573468] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2591.573470] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2591.573473] [<c0147f7c>] kthread+0x3c/0x70
> [ 2591.573476] [<c0147f40>] ? kthread+0x0/0x70
> [ 2591.573479] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2591.583808] phy3 -> rt2x00mac_config: Error - <===
> [ 2591.696012] phy3 -> rt2x00mac_config: Error - ===>
> [ 2591.753322] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2591.753324] Call Trace:
> [ 2591.753327] [<c038ae85>] ? printk+0x18/0x1b
> [ 2591.753333] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2591.753351] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.753361] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2591.753371] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2591.753381] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.753384] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2591.753388] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2591.753390] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2591.753393] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2591.753396] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2591.753398] [<c0147f7c>] kthread+0x3c/0x70
> [ 2591.753401] [<c0147f40>] ? kthread+0x0/0x70
> [ 2591.753404] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2591.763711] phy3 -> rt2x00mac_config: Error - <===
> [ 2591.876011] phy3 -> rt2x00mac_config: Error - ===>
> [ 2591.933351] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2591.933353] Call Trace:
> [ 2591.933356] [<c038ae85>] ? printk+0x18/0x1b
> [ 2591.933362] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2591.933380] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.933390] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2591.933401] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2591.933411] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2591.933414] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2591.933417] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2591.933420] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2591.933423] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2591.933426] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2591.933429] [<c0147f7c>] kthread+0x3c/0x70
> [ 2591.933432] [<c0147f40>] ? kthread+0x0/0x70
> [ 2591.933434] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2591.943741] phy3 -> rt2x00mac_config: Error - <===
> [ 2592.056011] phy3 -> rt2x00mac_config: Error - ===>
> [ 2592.113388] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2592.113389] Call Trace:
> [ 2592.113392] [<c038ae85>] ? printk+0x18/0x1b
> [ 2592.113399] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2592.113417] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2592.113427] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2592.113437] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2592.113447] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2592.113450] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2592.113454] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2592.113456] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2592.113460] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2592.113462] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2592.113465] [<c0147f7c>] kthread+0x3c/0x70
> [ 2592.113468] [<c0147f40>] ? kthread+0x0/0x70
> [ 2592.113471] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2592.123771] phy3 -> rt2x00mac_config: Error - <===
> [ 2592.236011] phy3 -> rt2x00mac_config: Error - ===>
> [ 2592.293307] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2592.293308] Call Trace:
> [ 2592.293312] [<c038ae85>] ? printk+0x18/0x1b
> [ 2592.293318] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2592.293336] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2592.293346] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2592.293356] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2592.293367] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2592.293370] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2592.293373] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2592.293376] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2592.293379] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2592.293382] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2592.293385] [<c0147f7c>] kthread+0x3c/0x70
> [ 2592.293387] [<c0147f40>] ? kthread+0x0/0x70
> [ 2592.293390] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2592.303677] phy3 -> rt2x00mac_config: Error - <===
> [ 2592.416011] phy3 -> rt2x00mac_config: Error - ===>
> [ 2592.473336] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2592.473337] Call Trace:
> [ 2592.473341] [<c038ae85>] ? printk+0x18/0x1b
> [ 2592.473347] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2592.473365] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2592.473374] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2592.473385] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2592.473395] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2592.473398] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2592.473402] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2592.473404] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2592.473408] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2592.473410] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2592.473413] [<c0147f7c>] kthread+0x3c/0x70
> [ 2592.473416] [<c0147f40>] ? kthread+0x0/0x70
> [ 2592.473419] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2592.483707] phy3 -> rt2x00mac_config: Error - <===
> [ 2592.596011] phy3 -> rt2x00mac_config: Error - ===>
> [ 2592.653367] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2592.653369] Call Trace:
> [ 2592.653372] [<c038ae85>] ? printk+0x18/0x1b
> [ 2592.653378] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2592.653397] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2592.653406] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2592.653417] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2592.653427] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2592.653430] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2592.653433] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2592.653436] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2592.653439] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2592.653442] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2592.653445] [<c0147f7c>] kthread+0x3c/0x70
> [ 2592.653448] [<c0147f40>] ? kthread+0x0/0x70
> [ 2592.653450] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2592.663736] phy3 -> rt2x00mac_config: Error - <===
> [ 2592.948010] phy3 -> rt2x00mac_config: Error - ===>
> [ 2593.005414] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2593.005416] Call Trace:
> [ 2593.005419] [<c038ae85>] ? printk+0x18/0x1b
> [ 2593.005425] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2593.005448] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2593.005458] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2593.005468] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2593.005478] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2593.005481] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2593.005484] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2593.005487] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2593.005490] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2593.005493] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2593.005496] [<c0147f7c>] kthread+0x3c/0x70
> [ 2593.005498] [<c0147f40>] ? kthread+0x0/0x70
> [ 2593.005501] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2593.015795] phy3 -> rt2x00mac_config: Error - <===
> [ 2593.128011] phy3 -> rt2x00mac_config: Error - ===>
> [ 2593.185344] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2593.185346] Call Trace:
> [ 2593.185349] [<c038ae85>] ? printk+0x18/0x1b
> [ 2593.185355] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2593.185374] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2593.185383] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2593.185393] [<f7f7ba19>] ieee80211_scan_work+0x79/0x190 [mac80211]
> [ 2593.185404] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2593.185407] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2593.185410] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2593.185413] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2593.185416] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2593.185419] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2593.185421] [<c0147f7c>] kthread+0x3c/0x70
> [ 2593.185424] [<c0147f40>] ? kthread+0x0/0x70
> [ 2593.185427] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2593.195699] phy3 -> rt2x00mac_config: Error - <===
> [ 2593.480022] phy3 -> rt2x00mac_config: Error - ===>
> [ 2593.537396] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2593.537397] Call Trace:
> [ 2593.537402] [<c038ae85>] ? printk+0x18/0x1b
> [ 2593.537408] [<fa5136a6>] rt2x00mac_config+0x46/0xf0 [rt2x00lib]
> [ 2593.537428] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2593.537438] [<f7f76ee2>] ieee80211_hw_config+0xb2/0xc0 [mac80211]
> [ 2593.537449] [<f7f7b6b7>] ieee80211_scan_completed+0xb7/0x3a0
> [mac80211]
> [ 2593.537452] [<c038b3ce>] ? schedule+0x3de/0xa20
> [ 2593.537462] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2593.537473] [<f7f7baf9>] ieee80211_scan_work+0x159/0x190 [mac80211]
> [ 2593.537483] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2593.537486] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2593.537490] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2593.537492] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2593.537495] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2593.537498] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2593.537501] [<c0147f7c>] kthread+0x3c/0x70
> [ 2593.537504] [<c0147f40>] ? kthread+0x0/0x70
> [ 2593.537506] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2593.547882] phy3 -> rt2x00mac_config: Error - <===
> [ 2593.606302] phy3 -> rt2x00mac_config_interface: Error - ===>
> [ 2593.674076] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2593.674078] Call Trace:
> [ 2593.674085] [<c038ae85>] ? printk+0x18/0x1b
> [ 2593.674094] [<fa513579>] rt2x00mac_config_interface+0x49/0x130
> [rt2x00lib]
> [ 2593.674111] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
> [rt2x00lib]
> [ 2593.674126] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
> [ 2593.674139] [<f7f7b90c>] ieee80211_scan_completed+0x30c/0x3a0
> [mac80211]
> [ 2593.674150] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2593.674160] [<f7f7baf9>] ieee80211_scan_work+0x159/0x190 [mac80211]
> [ 2593.674171] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2593.674175] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2593.674179] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2593.674182] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2593.674185] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2593.674188] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2593.674190] [<c0147f7c>] kthread+0x3c/0x70
> [ 2593.674193] [<c0147f40>] ? kthread+0x0/0x70
> [ 2593.674196] [<c0103f27>] kernel_thread_helper+0x7/0x10
> [ 2593.675901] phy3 -> rt73usb_config_intf: Error - TXRX_CSR9 WRITE:
> 0x000d0640, READ: 0x000d0640
> [ 2593.779792] phy3 -> rt73usb_write_beacon: Error - TXRX_CSR9 WRITE:
> 0x00040640, READ: 0x00040640
> [ 2593.886185] phy3 -> rt73usb_kick_tx_queue: Error - TXRX_CSR9 WRITE:
> 0x001d0640, READ: 0x001d0640
> [ 2593.991374] phy3 -> rt2x00mac_config_interface: Error - <===
> [ 2594.059083] Pid: 5028, comm: phy3 Not tainted 2.6.29-rc8-wl #1
> [ 2594.059085] Call Trace:
> [ 2594.059088] [<c038ae85>] ? printk+0x18/0x1b
> [ 2594.059094] [<fa51362d>] rt2x00mac_config_interface+0xfd/0x130
> [rt2x00lib]
> [ 2594.059107] [<fa513530>] ? rt2x00mac_config_interface+0x0/0x130
> [rt2x00lib]
> [ 2594.059118] [<f7f76a39>] ieee80211_if_config+0xd9/0x1f0 [mac80211]
> [ 2594.059131] [<f7f7b90c>] ieee80211_scan_completed+0x30c/0x3a0
> [mac80211]
> [ 2594.059141] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2594.059152] [<f7f7baf9>] ieee80211_scan_work+0x159/0x190 [mac80211]
> [ 2594.059162] [<f7f7b9a0>] ? ieee80211_scan_work+0x0/0x190 [mac80211]
> [ 2594.059165] [<c014458d>] run_workqueue+0x8d/0x150
> [ 2594.059169] [<c014855a>] ? prepare_to_wait+0x3a/0x70
> [ 2594.059171] [<c01446d8>] worker_thread+0x88/0xf0
> [ 2594.059174] [<c0148300>] ? autoremove_wake_function+0x0/0x50
> [ 2594.059177] [<c0144650>] ? worker_thread+0x0/0xf0
> [ 2594.059180] [<c0147f7c>] kthread+0x3c/0x70
> [ 2594.059182] [<c0147f40>] ? kthread+0x0/0x70
> [ 2594.059185] [<c0103f27>] kernel_thread_helper+0x7/0x10
>
>
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-18 12:48 ` Ivo van Doorn
@ 2009-03-18 13:12 ` Johannes Berg
2009-03-18 13:31 ` Ivo van Doorn
0 siblings, 1 reply; 28+ messages in thread
From: Johannes Berg @ 2009-03-18 13:12 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 1149 bytes --]
On Wed, 2009-03-18 at 13:48 +0100, Ivo van Doorn wrote:
> Excellent thanks. :)
>
> Johannes, my previous assumption is apparently correct,
> The following is happening:
>
> ieee80211_open()
> -> ops->add_interface()
> -> ieee80211_start_mesh()
> -> ieee80211_if_config()
> -> ops->config_interface()
> -> ieee80211_hw_config()
> -> ops->config()
>
> Because config_interface() is called before config() the radio
> is not enabled at the moment config_interface() is called and
> the call to config() will effectively disable beaconing.
Ah. I thought you were saying ->start() came after ->config_interface(),
->config() coming after it makes no sense either but we haven't even
tried to avoid that so far... In fact, it is perfectly legal for
->config() to be called after ->config_interface() when, for example,
you change the channel. Not that I disagree -- we should be setting the
beacon interval before enabling beaconing...
What exactly is the problem here? The fact that we don't enable the
radio until after having configured beaconing? I'm not sure how to solve
this, to be honest.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-18 13:12 ` Johannes Berg
@ 2009-03-18 13:31 ` Ivo van Doorn
2009-03-18 13:36 ` Johannes Berg
0 siblings, 1 reply; 28+ messages in thread
From: Ivo van Doorn @ 2009-03-18 13:31 UTC (permalink / raw)
To: Johannes Berg; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
On Wednesday 18 March 2009, Johannes Berg wrote:
> On Wed, 2009-03-18 at 13:48 +0100, Ivo van Doorn wrote:
>
> > Excellent thanks. :)
> >
> > Johannes, my previous assumption is apparently correct,
> > The following is happening:
> >
> > ieee80211_open()
> > -> ops->add_interface()
> > -> ieee80211_start_mesh()
> > -> ieee80211_if_config()
> > -> ops->config_interface()
> > -> ieee80211_hw_config()
> > -> ops->config()
> >
> > Because config_interface() is called before config() the radio
> > is not enabled at the moment config_interface() is called and
> > the call to config() will effectively disable beaconing.
>
> Ah. I thought you were saying ->start() came after ->config_interface(),
Yeah that was my first guess :)
> ->config() coming after it makes no sense either but we haven't even
> tried to avoid that so far... In fact, it is perfectly legal for
> ->config() to be called after ->config_interface() when, for example,
> you change the channel. Not that I disagree -- we should be setting the
> beacon interval before enabling beaconing...
True, the problem however is that when enabling the radio it is possible/likely
that a lot of settings will be lost. For rt2x00 we must reset almost all registers
to make sure everything is set correctly again.
> What exactly is the problem here? The fact that we don't enable the
> radio until after having configured beaconing? I'm not sure how to solve
> this, to be honest.
Neither do I, perhaps we should make sure that a call to config() when
the enabled_radio field has changed should trigger additional reconfigurations
as well. But I don't really like such a solution.. :(
Perhaps should check if a beacon was provided while the radio was off,
and either request a new beacon or upload the previously provided beacon when
the radio is being enabled.
Ivo
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-18 13:31 ` Ivo van Doorn
@ 2009-03-18 13:36 ` Johannes Berg
2009-03-19 21:55 ` Antonio Marques
0 siblings, 1 reply; 28+ messages in thread
From: Johannes Berg @ 2009-03-18 13:36 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: Antonio Marques, Andrey Yurovsky, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 1673 bytes --]
On Wed, 2009-03-18 at 14:31 +0100, Ivo van Doorn wrote:
> > ->config() coming after it makes no sense either but we haven't even
> > tried to avoid that so far... In fact, it is perfectly legal for
> > ->config() to be called after ->config_interface() when, for example,
> > you change the channel. Not that I disagree -- we should be setting the
> > beacon interval before enabling beaconing...
>
> True, the problem however is that when enabling the radio it is possible/likely
> that a lot of settings will be lost. For rt2x00 we must reset almost all registers
> to make sure everything is set correctly again.
Yeah, that makes sense... I just don't know how to handle it.
> > What exactly is the problem here? The fact that we don't enable the
> > radio until after having configured beaconing? I'm not sure how to solve
> > this, to be honest.
>
> Neither do I, perhaps we should make sure that a call to config() when
> the enabled_radio field has changed should trigger additional reconfigurations
> as well. But I don't really like such a solution.. :(
We could do that, but there's no limit to what that would be, up to
requiring basically a call to __ieee80211_resume() (from pm.c)...
> Perhaps should check if a beacon was provided while the radio was off,
> and either request a new beacon or upload the previously provided beacon when
> the radio is being enabled.
I'm thinking that will be necessary, imagine we integrate rfkill in
mac80211 like we should, and set radio_enabled = false while being an
IBSS member?
OTOH, this problem hitting a number of drivers suggests we should find a
generic fix.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rt2x00 mesh support
2009-03-18 13:36 ` Johannes Berg
@ 2009-03-19 21:55 ` Antonio Marques
0 siblings, 0 replies; 28+ messages in thread
From: Antonio Marques @ 2009-03-19 21:55 UTC (permalink / raw)
To: Johannes Berg; +Cc: Ivo van Doorn, Andrey Yurovsky, linux-wireless
On Mar 18, 2009, at 13:36 , Johannes Berg wrote:
> On Wed, 2009-03-18 at 14:31 +0100, Ivo van Doorn wrote:
>
>>> ->config() coming after it makes no sense either but we haven't even
>>> tried to avoid that so far... In fact, it is perfectly legal for
>>> ->config() to be called after ->config_interface() when, for
>>> example,
>>> you change the channel. Not that I disagree -- we should be
>>> setting the
>>> beacon interval before enabling beaconing...
>>
>> True, the problem however is that when enabling the radio it is
>> possible/likely
>> that a lot of settings will be lost. For rt2x00 we must reset
>> almost all registers
>> to make sure everything is set correctly again.
>
> Yeah, that makes sense... I just don't know how to handle it.
>
>>> What exactly is the problem here? The fact that we don't enable the
>>> radio until after having configured beaconing? I'm not sure how to
>>> solve
>>> this, to be honest.
>>
>> Neither do I, perhaps we should make sure that a call to config()
>> when
>> the enabled_radio field has changed should trigger additional
>> reconfigurations
>> as well. But I don't really like such a solution.. :(
>
> We could do that, but there's no limit to what that would be, up to
> requiring basically a call to __ieee80211_resume() (from pm.c)...
>
>> Perhaps should check if a beacon was provided while the radio was
>> off,
>> and either request a new beacon or upload the previously provided
>> beacon when
>> the radio is being enabled.
>
> I'm thinking that will be necessary, imagine we integrate rfkill in
> mac80211 like we should, and set radio_enabled = false while being an
> IBSS member?
>
> OTOH, this problem hitting a number of drivers suggests we should
> find a
> generic fix.
>
> johannes
Thank you Johannes and Ivo for helping to narrow down this problem.
Would
storing the beacon configuration in the driver before clearing the
registers and then
reloading it be an adequate short-term solution for fixing this issue
on rt2x00? Some
other drivers (b43, ath5k) seem to overcome this shortcoming in the
way the function
calls are ordered. Although a generic fix would be great, fixing this
on rt2x00 would
greatly increase the number of devices supporting mesh point mode.
Antonio Marques
^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2009-03-19 21:56 UTC | newest]
Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-23 18:58 rt2x00 mesh support Antonio Marques
2009-01-23 19:02 ` Andrey Yurovsky
2009-01-24 11:40 ` António Marques
2009-03-15 11:54 ` Antonio Marques
2009-03-15 13:45 ` Ivo van Doorn
2009-03-16 1:58 ` Pat Erley
2009-03-16 13:29 ` Antonio Marques
2009-03-16 13:22 ` António Marques
2009-03-16 14:58 ` Ivo van Doorn
2009-03-16 19:12 ` Antonio Marques
2009-03-17 9:31 ` Ivo van Doorn
2009-03-17 14:11 ` Johannes Berg
2009-03-17 20:10 ` Johannes Berg
2009-03-17 21:50 ` Ivo van Doorn
2009-03-17 21:53 ` Johannes Berg
2009-03-17 22:04 ` Ivo van Doorn
2009-03-17 22:35 ` Johannes Berg
2009-03-17 23:01 ` Ivo van Doorn
2009-03-17 23:04 ` Johannes Berg
2009-03-18 10:02 ` Ivo van Doorn
2009-03-18 12:26 ` Antonio Marques
2009-03-18 12:48 ` Ivo van Doorn
2009-03-18 13:12 ` Johannes Berg
2009-03-18 13:31 ` Ivo van Doorn
2009-03-18 13:36 ` Johannes Berg
2009-03-19 21:55 ` Antonio Marques
2009-03-17 19:38 ` Antonio Marques
2009-03-17 22:03 ` Ivo van Doorn
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).