All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arik Nemtsov <arik@wizery.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless@vger.kernel.org, Luciano Coelho <coelho@ti.com>
Subject: Fwd: [PATCH 06/10] mac80211: add HW flag for disabling auto link-PS in AP mode
Date: Sun, 16 Jan 2011 23:53:30 +0200	[thread overview]
Message-ID: <AANLkTi=FRAjCxOBAtXFdzwSqG6DQ+oneoe-THQjsd_Wx@mail.gmail.com> (raw)
In-Reply-To: <AANLkTik=WDsehr0EgW7QemfdmokvaLzg1ugASwiuCOXt@mail.gmail.com>

[ resending - html mail rejected ]

On Sun, Jan 16, 2011 at 10:50, Johannes Berg <johannes@sipsolutions.net> wrote:
>
> > +/**
> > + * ieee80211_start_ps - start PS for connected sta
> > + *
> > + * When operating in AP mode, use this function to inform mac80211
> > + * about a station entering PS mode.
> > + * Note that by default mac80211 will automatically call the internal
> > + * equivalent of this function according to the PM bit of incoming frames.
> > + * Use the IEEE80211_HW_AP_LINK_PS flag to change this.
>
> I think that explanation should be clearer and say that you must call
> this only when the flag is set and vice versa. Also, there should be a
>
> WARN_ON(hw->flags & HW_AP_LINK_PS)
>
> in the functions.

will fix in v2.

>
> Also, maybe just a single function with a bool argument would be more
> appropriate? Call it "ieee80211_sta_ps_transition()" or something like
> that. You should also remove the text about calling the internal
> equivalent -- the internal details might change at any time but the API
> should be documented in a way that makes sense without the internal
> details for the benefit of both sides -- people implementing a driver
> don't need to know about the internal details, and people changing the
> internal details know what semantics to keep.

a single function sounds good. v2.

>
> > + * This function may not be called in IRQ context or process context.
>
> This can't be true -- the latter part you must mean "or with softirqs
> enabled".

Yes you're right.
(While looking at this I discovered that I forgot to disable softirqs
myself. These functions are called from a workqueue in wl12xx - will
be fixed in v2)

>
> Also, I'm worried about races between this and RX. All of the RX path
> assumes that it is running at the same time. The ap_sta_ps_{start,end}
> functions won't be called from the RX path when the flag is set, and
> this is dependent on setting the flag, but is there really nothing in
> them that could race?

They might race if the user is not careful. On a SMP machine a user
can call ieee80211_rx() and ap_sta_ps_start() from two different
workqueues for example.
I can add an explicit mutex, but a documentation warning will suffice here no?

>
> Finally, I'm worried about this calling back into the driver's
> sta_notify callback. If that is to remain that way, it needs to be
> *very* clearly documented, I'd *much* prefer it not doing that but
> handing off to a work struct or so internally.
>

sta_notify is pretty useless when the low level driver calls toggles
the PS-mode by itself. How about I simply remove the call to
sta_notify in case IEEE80211_HW_AP_LINK_PS is set?
If a low level driver needs to do some deferred processing after a
PS-mode transition, it can queue a work on its own..

Regards,
Arik

  parent reply	other threads:[~2011-01-16 21:53 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-16  5:42 [PATCH 00/10] wl12xx: AP-mode per link PSM Arik Nemtsov
2011-01-16  5:42 ` [PATCH 01/10] wl12xx: fix potential race condition with TX queue watermark Arik Nemtsov
2011-01-16  5:42 ` [PATCH 02/10] wl12xx: AP-mode - fix race condition on sta connection Arik Nemtsov
2011-01-26 14:01   ` Luciano Coelho
2011-01-26 20:04     ` Arik Nemtsov
2011-01-26 21:28       ` Luciano Coelho
2011-01-26 21:33   ` Johannes Berg
2011-01-26 21:44     ` Arik Nemtsov
2011-01-26 21:54       ` Johannes Berg
2011-01-26 22:02         ` Arik Nemtsov
2011-01-26 22:08           ` Johannes Berg
2011-01-26 22:16             ` Arik Nemtsov
2011-01-26 23:11               ` Johannes Berg
2011-01-27  0:20             ` Jouni Malinen
2011-01-27  8:21               ` Johannes Berg
2011-01-16  5:42 ` [PATCH 03/10] wl12xx: AP-mode - TX queue per link in AC Arik Nemtsov
2011-01-16  5:42 ` [PATCH 04/10] mac80211: do not calc frame duration when using HW rate-control Arik Nemtsov
2011-01-16  8:34   ` Johannes Berg
2011-01-16  5:42 ` [PATCH 05/10] wl12xx: report invalid TX rate when returning non-TX-ed skbs Arik Nemtsov
2011-01-27  9:51   ` Luciano Coelho
2011-01-27 10:33     ` Johannes Berg
2011-01-30  6:57       ` Arik Nemtsov
2011-01-16  5:42 ` [PATCH 06/10] mac80211: add HW flag for disabling auto link-PS in AP mode Arik Nemtsov
2011-01-16  8:50   ` Johannes Berg
     [not found]     ` <AANLkTik=WDsehr0EgW7QemfdmokvaLzg1ugASwiuCOXt@mail.gmail.com>
2011-01-16 21:53       ` Arik Nemtsov [this message]
2011-01-17  9:35         ` Fwd: " Johannes Berg
2011-01-17 22:47           ` Arik Nemtsov
2011-01-18  9:05             ` Johannes Berg
2011-01-18 19:17               ` Arik Nemtsov
2011-01-27 11:39   ` Luciano Coelho
2011-01-16  5:42 ` [PATCH 07/10] wl12xx: AP-mode - support HW based link PS monitoring Arik Nemtsov
2011-01-27 11:41   ` Luciano Coelho
2011-01-16  5:42 ` [PATCH 08/10] wl12xx: AP mode - fix bug in cleanup of wl1271_op_sta_add() Arik Nemtsov
2011-01-16  5:42 ` [PATCH 09/10] wl12xx: AP-mode - count free FW TX blocks per link Arik Nemtsov
2011-01-16  5:42 ` [PATCH 10/10] wl12xx: AP-mode - management of links in PS-mode Arik Nemtsov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='AANLkTi=FRAjCxOBAtXFdzwSqG6DQ+oneoe-THQjsd_Wx@mail.gmail.com' \
    --to=arik@wizery.com \
    --cc=coelho@ti.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.