From: "Luis R. Rodriguez" <lrodriguez@atheros.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: Luis Rodriguez <Luis.Rodriguez@Atheros.com>,
Sujith Manoharan <Sujith.Manoharan@Atheros.com>,
John Linville <linville@tuxdriver.com>,
"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH 00/18] mac80211 cleanups and fixes
Date: Thu, 11 Sep 2008 10:54:42 -0700 [thread overview]
Message-ID: <20080911175442.GE6049@tesla> (raw)
In-Reply-To: <1221154777.6986.43.camel@johannes.berg>
On Thu, Sep 11, 2008 at 10:39:37AM -0700, Johannes Berg wrote:
> On Thu, 2008-09-11 at 10:33 -0700, Luis R. Rodriguez wrote:
> > On Thu, Sep 11, 2008 at 09:53:15AM -0700, Johannes Berg wrote:
> > > On Thu, 2008-09-11 at 09:50 -0700, Luis R. Rodriguez wrote:
> > > > > I had actually tried
> > > > > (http://johannes.sipsolutions.net/patches/kernel/ath9k-sta-node.patch)
> >
> > Just a comment so far from the patch.
> >
> > > + rcu_read_unlock();
> > > +
> > > + /* the "!an" here is fine even outside RCU lock */
> >
> > Why is that? I fail to see that.
>
> Well take the larger bit of code:
>
> struct something *an = NULL;
>
> ...
>
> rcu_read_lock();
> sta = ieee80211_find_sta(hw, hdr->addr2);
> if (sta)
> an = (void *) sta->drv_priv;
>
> if (an) {
> ath_rx_input(sc, an,
> hw->conf.ht_conf.ht_supported,
> skb, status, &st);
> }
> rcu_read_unlock();
>
> /* the "!an" here is fine even outside RCU lock */
> if (!an || (st != ATH_RX_CONSUMED))
> __ieee80211_rx(hw, skb, &rx_status);
>
>
> So at this point it's only checking whether above it had a pointer, it's
> not accessing it. Think of the "an" variable, after rcu_read_unlock(),
> as a bool indicating whether or not the code that just happened had
> access to the node or not.
I see now, thanks :)
Luis
next prev parent reply other threads:[~2008-09-11 17:54 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-10 22:01 [PATCH 00/18] mac80211 cleanups and fixes Johannes Berg
2008-09-10 22:01 ` [PATCH 01/18] mac80211: move ieee80211_sta_expire Johannes Berg
2008-09-10 22:01 ` [PATCH 02/18] mac80211: move STA timer restart Johannes Berg
2008-09-10 22:01 ` [PATCH 03/18] mac80211: dont set REQ_RUN when scan finishes Johannes Berg
2008-09-10 22:01 ` [PATCH 04/18] mac80211: split off mesh handling entirely Johannes Berg
2008-09-10 22:01 ` [PATCH 05/18] mac80211: fix work race Johannes Berg
2008-09-10 22:01 ` [PATCH 06/18] mac80211: fix scan vs. interface removal race Johannes Berg
2008-09-10 22:01 ` [PATCH 07/18] mac80211: reorder MLME code more Johannes Berg
2008-09-10 22:01 ` [PATCH 08/18] mac80211: move ieee80211_set_freq to utils Johannes Berg
2008-09-10 22:01 ` [PATCH 09/18] mac80211: make bridge_packets a virtual interface option Johannes Berg
2008-09-10 22:01 ` [PATCH 10/18] mac80211: clean up scan namespace Johannes Berg
2008-09-10 22:01 ` [PATCH 11/18] mac80211: clean up some comments Johannes Berg
2008-09-10 22:01 ` [PATCH 12/18] mac80211: inform driver of basic rateset Johannes Berg
2008-09-10 22:01 ` [PATCH 13/18] mac80211: use nl80211 interface types Johannes Berg
2008-09-10 22:01 ` [PATCH 14/18] mac80211: move regular interface handling Johannes Berg
2008-09-10 22:02 ` [PATCH 15/18] mac80211: warn on some invalid vlan operations Johannes Berg
2008-09-10 22:02 ` [PATCH 16/18] mac80211 hwsim: verify vif pointers Johannes Berg
2008-09-11 0:06 ` Luis R. Rodriguez
2008-09-11 0:09 ` Johannes Berg
2008-09-11 0:17 ` Luis R. Rodriguez
2008-09-11 0:16 ` [PATCH v2 " Johannes Berg
2008-09-10 22:02 ` [PATCH 17/18] mac80211: share STA information with driver Johannes Berg
2008-09-10 22:02 ` [PATCH 18/18] mac80211 hwsim: verify sta pointers Johannes Berg
2008-09-11 0:17 ` [PATCH v2 " Johannes Berg
2008-09-11 19:26 ` Johannes Berg
2008-09-11 0:03 ` [PATCH 19/18] mac80211: small rate control changes Johannes Berg
2008-09-11 0:22 ` [PATCH 20/18] mac80211: move last_txrate_idx into RC algorithms Johannes Berg
2008-09-11 0:45 ` [PATCH 21/18] mac80211: share sta->supp_rates Johannes Berg
2008-09-11 1:04 ` [PATCH 22/18] mac80211: move txrate_idx into RC algorithms Johannes Berg
2008-09-11 1:14 ` [PATCH 23/18] mac80211: share sta_info->ht_info Johannes Berg
2008-09-11 1:17 ` [PATCH 24/18] iwlwifi: don't access mac80211's AMPDU state machine Johannes Berg
2008-09-11 3:27 ` [PATCH 25/18] mac80211: pass AP vif pointer for VLANs Johannes Berg
2008-09-11 8:29 ` [PATCH 00/18] mac80211 cleanups and fixes Sujith
2008-09-11 13:22 ` Johannes Berg
2008-09-11 16:50 ` Luis R. Rodriguez
2008-09-11 16:53 ` Johannes Berg
2008-09-11 17:10 ` Luis R. Rodriguez
2008-09-11 17:13 ` Johannes Berg
2008-09-11 17:31 ` Luis R. Rodriguez
2008-09-11 17:33 ` Luis R. Rodriguez
2008-09-11 17:39 ` Johannes Berg
2008-09-11 17:42 ` Johannes Berg
2008-09-11 17:47 ` Johannes Berg
2008-09-11 17:54 ` Luis R. Rodriguez [this message]
2008-09-12 3:14 ` Sujith
2008-09-12 7:45 ` Johannes Berg
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=20080911175442.GE6049@tesla \
--to=lrodriguez@atheros.com \
--cc=Luis.Rodriguez@Atheros.com \
--cc=Sujith.Manoharan@Atheros.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
/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.