2009-02-05 16:58:36

by Alina Friedrichsen

[permalink] [raw]
Subject: [PATCH] mac80211: Remove TSF atomic requirement from the documentation

The atomic requirement for the TSF callbacks
is outdated. get_tsf() is only called by
ieee80211_rx_bss_info() which is indirectly
called by the work queue ieee80211_sta_work().
In the same context are called several other
non-atomic functions, too.
And the atomic requirement causes problems
for drivers of USB wifi cards.

Signed-off-by: Alina Friedrichsen <[email protected]>
---
diff -urN wireless-testing.orig/include/net/mac80211.h wireless-testing=
/include/net/mac80211.h
--- wireless-testing.orig/include/net/mac80211.h 2009-02-05 06:14:21.00=
0000000 +0100
+++ wireless-testing/include/net/mac80211.h 2009-02-05 17:33:09.0000000=
00 +0100
@@ -1354,11 +1354,11 @@
*
* @get_tsf: Get the current TSF timer value from firmware/hardware. C=
urrently,
* this is only used for IBSS mode BSSID merging and debugging. Is not=
a
- * required function. Must be atomic.
+ * required function.
*
* @set_tsf: Set the TSF timer to the specified value in the firmware/=
hardware.
* Currently, this is only used for IBSS mode debugging. Is not a
- * required function. Must be atomic.
+ * required function.
*
* @reset_tsf: Reset the TSF timer and allow firmware/hardware to sync=
hronize
* with other STAs in the IBSS. This is only used in IBSS mode. This

--=20
Psssst! Schon vom neuen GMX MultiMessenger geh=F6rt? Der kann`s mit all=
en: http://www.gmx.net/de/go/multimessenger01


2009-02-06 20:44:11

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: Remove TSF atomic requirement from the documentation

On Fri, 2009-02-06 at 21:21 +0200, Kalle Valo wrote:
> "Alina Friedrichsen" <[email protected]> writes:
>
> > The atomic requirement for the TSF callbacks is outdated. get_tsf() is
> > only called by ieee80211_rx_bss_info() which is indirectly called by
> > the work queue ieee80211_sta_work(). In the same context are called
> > several other non-atomic functions, too. And the atomic requirement
> > causes problems for drivers of USB wifi cards.
>
> Atomicity requirement also creates problems for SPI based devices, not
> only USB. So I strongly support for removing the requirement.
>
> Unfortunately I don't have time to review this, though. Sorry.

It's ok, I took a look, there's no such requirement (any more).

johannes


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part

2009-02-07 07:42:40

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] mac80211: Remove TSF atomic requirement from the documentation

Johannes Berg <[email protected]> writes:

> On Fri, 2009-02-06 at 23:08 +0200, Kalle Valo wrote:
>
>> Alina, it would be nice to explicitly mention that the function can
>> sleep. Otherwise driver authors need to guess if sleeping is allowed
>> or not.
>
> That's a larger project to actually annotate all of them either way ;)

Yes, but we can start with smaller pieces ;)

> I think we only mention atomicity requirements right now.

I found only one spot:

* @set_key: See the section "Hardware crypto acceleration"
* This callback can sleep, and is only called between add_interface

But, like you said, we can add these later.

--
Kalle Valo

2009-02-06 21:11:25

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: Remove TSF atomic requirement from the documentation

On Fri, 2009-02-06 at 23:08 +0200, Kalle Valo wrote:

> Alina, it would be nice to explicitly mention that the function can
> sleep. Otherwise driver authors need to guess if sleeping is allowed
> or not.

That's a larger project to actually annotate all of them either way ;) I
think we only mention atomicity requirements right now.

johannes


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part

2009-02-06 21:08:16

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] mac80211: Remove TSF atomic requirement from the documentation

Johannes Berg <[email protected]> writes:

> On Fri, 2009-02-06 at 21:21 +0200, Kalle Valo wrote:
>> "Alina Friedrichsen" <[email protected]> writes:
>>
>> > The atomic requirement for the TSF callbacks is outdated. get_tsf() is
>> > only called by ieee80211_rx_bss_info() which is indirectly called by
>> > the work queue ieee80211_sta_work(). In the same context are called
>> > several other non-atomic functions, too. And the atomic requirement
>> > causes problems for drivers of USB wifi cards.
>>
>> Atomicity requirement also creates problems for SPI based devices, not
>> only USB. So I strongly support for removing the requirement.
>>
>> Unfortunately I don't have time to review this, though. Sorry.
>
> It's ok, I took a look, there's no such requirement (any more).

Oh good. Thanks for checking this.

Alina, it would be nice to explicitly mention that the function can
sleep. Otherwise driver authors need to guess if sleeping is allowed
or not.

--
Kalle Valo

2009-02-06 19:21:09

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] mac80211: Remove TSF atomic requirement from the documentation

"Alina Friedrichsen" <[email protected]> writes:

> The atomic requirement for the TSF callbacks is outdated. get_tsf() is
> only called by ieee80211_rx_bss_info() which is indirectly called by
> the work queue ieee80211_sta_work(). In the same context are called
> several other non-atomic functions, too. And the atomic requirement
> causes problems for drivers of USB wifi cards.

Atomicity requirement also creates problems for SPI based devices, not
only USB. So I strongly support for removing the requirement.

Unfortunately I don't have time to review this, though. Sorry.

--
Kalle Valo