Message ID | 52957ADA.2080704@gmail.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
> +++ b/net/mac80211/tx.c > @@ -1814,8 +1814,9 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, > break; > /* fall through */ > case NL80211_IFTYPE_AP: > - if (sdata->vif.type == NL80211_IFTYPE_AP) > - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); > + if (sdata->vif.type != NL80211_IFTYPE_AP) > + goto fail_rcu; > + chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); This change is completely wrong. johannes -- 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
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index c558b24..f3245d6 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1814,8 +1814,9 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, break; /* fall through */ case NL80211_IFTYPE_AP: - if (sdata->vif.type == NL80211_IFTYPE_AP) - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + if (sdata->vif.type != NL80211_IFTYPE_AP) + goto fail_rcu; + chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); if (!chanctx_conf) goto fail_rcu; fc |= cpu_to_le16(IEEE80211_FCTL_FROMDS);
In next-20131122 tree, if "sdata->vif.type != NL80211_IFTYPE_AP", 'chanctx_conf' will be not initialized, so need check it. Related warning (with allmodconfig under hexagon): CC [M] net/mac80211/tx.o net/mac80211/tx.c: In function 'ieee80211_subif_start_xmit': net/mac80211/tx.c:1827:27: warning: 'chanctx_conf' may be used uninitialized in this function [-Wuninitialized] Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> --- net/mac80211/tx.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)