Message ID | 1385846658-2294-1-git-send-email-antonio@meshcoding.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
> > When performing keys reprogramming on HW resume, GTKs > belonging to IBSS stations should be skipped and not > installed onto the device. > > Such keys are not installed by set_key() and the same > behaviour has to be kept on reprogramming (mac80211 > is already performing enc/dec in SW for those keys). > > Signed-off-by: Antonio Quartulli <antonio@open-mesh.com> > --- > > * compiled tested only * > > drivers/net/wireless/iwlwifi/dvm/lib.c | 5 +++++ > drivers/net/wireless/iwlwifi/mvm/d3.c | 5 +++++ > 2 files changed, 10 insertions(+) > > diff --git a/drivers/net/wireless/iwlwifi/dvm/lib.c b/drivers/net/wireless/iwlwifi/dvm/lib.c > index 3d5bdc4..96be24d 100644 > --- a/drivers/net/wireless/iwlwifi/dvm/lib.c > +++ b/drivers/net/wireless/iwlwifi/dvm/lib.c > @@ -929,6 +929,11 @@ static void iwlagn_wowlan_program_keys(struct ieee80211_hw *hw, > u16 p1k[IWLAGN_P1K_SIZE]; > int ret, i; > > + /* Group keys for IBSS interfaces are not stored in HW */ > + if (vif->type == NL80211_IFTYPE_ADHOC && > + !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) > + return; > + > mutex_lock(&priv->mutex); > > if ((key->cipher == WLAN_CIPHER_SUITE_WEP40 || > diff --git a/drivers/net/wireless/iwlwifi/mvm/d3.c b/drivers/net/wireless/iwlwifi/mvm/d3.c > index 6f45966..53182e6 100644 > --- a/drivers/net/wireless/iwlwifi/mvm/d3.c > +++ b/drivers/net/wireless/iwlwifi/mvm/d3.c > @@ -156,6 +156,11 @@ static void iwl_mvm_wowlan_program_keys(struct ieee80211_hw *hw, > u16 p1k[IWL_P1K_SIZE]; > int ret, i; > > + /* Group keys for IBSS interfaces are not stored in HW */ > + if (vif->type == NL80211_IFTYPE_ADHOC && > + !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) > + return; > + > mutex_lock(&mvm->mutex); This is WoWLAN code - so you I must miss something here... We don't support IBSS in WoWLAN (thinking about it even makes me feel bad). -- 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
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 01/12/13 09:39, Emmanuel Grumbach wrote: >> + /* Group keys for IBSS interfaces are not stored in HW >> */ + if (vif->type == NL80211_IFTYPE_ADHOC && + >> !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) + >> return; + Well, my knowledge about WoWLAN is really poor (in particular for what concern IWLWIFI). I think I should have sent this as RFC first. So isn't it possible to reach this point with a key that satisfies that condition? If so, we are fine :) Cheers, - -- Antonio Quartulli -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlKbA9kACgkQpGgxIkP9cwdLPgCfbzHDFGPl73p/a+d0Tf2nEt3t iPwAmwTxQLYqb9fji3Ld58vgXdsl/Yrw =sgjH -----END PGP SIGNATURE----- -- 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
On 12/01/2013 11:39 AM, Antonio Quartulli wrote: > On 01/12/13 09:39, Emmanuel Grumbach wrote: >>> + /* Group keys for IBSS interfaces are not stored in HW >>> */ + if (vif->type == NL80211_IFTYPE_ADHOC && + >>> !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) + >>> return; + > > Well, my knowledge about WoWLAN is really poor (in particular for what > concern IWLWIFI). I think I should have sent this as RFC first. > > So isn't it possible to reach this point with a key that satisfies > that condition? If so, we are fine :) > No - because in WoWLAN we will never have IBSS configured. WoWLAN supports (currently) BSS only - I am not even sure we want to have P2P Client there. -- 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/drivers/net/wireless/iwlwifi/dvm/lib.c b/drivers/net/wireless/iwlwifi/dvm/lib.c index 3d5bdc4..96be24d 100644 --- a/drivers/net/wireless/iwlwifi/dvm/lib.c +++ b/drivers/net/wireless/iwlwifi/dvm/lib.c @@ -929,6 +929,11 @@ static void iwlagn_wowlan_program_keys(struct ieee80211_hw *hw, u16 p1k[IWLAGN_P1K_SIZE]; int ret, i; + /* Group keys for IBSS interfaces are not stored in HW */ + if (vif->type == NL80211_IFTYPE_ADHOC && + !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) + return; + mutex_lock(&priv->mutex); if ((key->cipher == WLAN_CIPHER_SUITE_WEP40 || diff --git a/drivers/net/wireless/iwlwifi/mvm/d3.c b/drivers/net/wireless/iwlwifi/mvm/d3.c index 6f45966..53182e6 100644 --- a/drivers/net/wireless/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/iwlwifi/mvm/d3.c @@ -156,6 +156,11 @@ static void iwl_mvm_wowlan_program_keys(struct ieee80211_hw *hw, u16 p1k[IWL_P1K_SIZE]; int ret, i; + /* Group keys for IBSS interfaces are not stored in HW */ + if (vif->type == NL80211_IFTYPE_ADHOC && + !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) + return; + mutex_lock(&mvm->mutex); switch (key->cipher) {