[RFC 16/20] mac80211: check channel context methods
From: Johannes Berg <johannes@sipsolutions.net>
Date: 2012-07-27 11:18:00
Subsystem:
mac80211, the rest · Maintainers:
Johannes Berg, Linus Torvalds
From: Johannes Berg <johannes@sipsolutions.net>
Date: 2012-07-27 11:18:00
Subsystem:
mac80211, the rest · Maintainers:
Johannes Berg, Linus Torvalds
From: Johannes Berg <redacted> Verify that the channel context methods are all assigned by the driver or not used. Signed-off-by: Johannes Berg <redacted> --- net/mac80211/main.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 820f717..96abcf2 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c@@ -553,6 +553,13 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len, if (WARN_ON(ops->sta_state && (ops->sta_add || ops->sta_remove))) return NULL; + /* check all or no channel context operations exist */ + i = !!ops->add_chanctx + !!ops->remove_chanctx + + !!ops->change_chantype + !!ops->assign_vif_chanctx + + !!ops->unassign_vif_chanctx; + if (WARN_ON(i != 0 && i != 5)) + return NULL; + /* Ensure 32-byte alignment of our private data and hw private data. * We use the wiphy priv data for both our ieee80211_local and for * the driver's private data
--
1.7.10.4