forked from luck/tmp_suning_uos_patched
Here's just a single fix - a revert of a patch that broke the
p54 and cw2100 drivers (arguably due to bad assumptions there.) Since this affects kernels since 3.17, I decided to revert for now and we'll revisit this optimisation properly for -next. -----BEGIN PGP SIGNATURE----- iQIcBAABCAAGBQJUq9EvAAoJEDBSmw7B7bqr7mMQAJRbdepVVqK5IFH1BH0NC7vi LkBE2lp8ZAz1Crg+OAQNUdlZUHtGyfYoXSfzezmrMG51i5xjHyOYQQikW7aJ2SQ0 XsjJJ5TcqKe83NwoakXUrMpE7KmCt/LnbjKNXDsZIvLlUkqa7ksXaS7btK195aXy WlVrmUE+BqT9a16VjFLZ6wRjI43+3bGxhtFL+g1eXw6nZ4a2o4EbIXdc9SN+/bT4 tAhWJfdAQqQc34jhesWGbMIvkXWhzy2R6Js+9gMIBNsmlAiYbFa4QZ/9tI3nBI/O yHSiDc7JnPNjkkC+3wTJxMl7mEd6fEKnAS1ryZ5L4XhPrQpV39iZuWSPvPGw6LLW kB6+wXkIyQdCSoyrQZxY75ibqOUKYYxhhkSYfMePXRKTYY6MlHYqiH8wPWFpPoqO iumLqx8/CtRW1q1t2EBAG6rZLRF8HqmfqtB+ptT0DWcAP8E81q8BImPoPFr+P9S2 XfuuSw97xKCcilOcYJ0uYSBe4XNNhy1dtC/zJ8cA9nV4WNkofALga5Z/t8ARhDsM wvP1D2uIX3U9My17bXq+Xn/fSSS7yhpLZjEHj/JNRvpDCWGf/tQl6A3ydMy//Oqe lRSKfmiAGysqhXnmK12+YhfO+4ioTz8dA88tHs1AO8qasfQwx45eRsUPemWeExiL 9Lntb0U6MhYvgiTdWqt6 =CnbJ -----END PGP SIGNATURE----- Merge tag 'mac80211-for-davem-2015-01-06' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Here's just a single fix - a revert of a patch that broke the p54 and cw2100 drivers (arguably due to bad assumptions there.) Since this affects kernels since 3.17, I decided to revert for now and we'll revisit this optimisation properly for -next. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
15ecf7a063
|
@ -1270,8 +1270,7 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev);
|
||||||
*
|
*
|
||||||
* @IEEE80211_KEY_FLAG_GENERATE_IV: This flag should be set by the
|
* @IEEE80211_KEY_FLAG_GENERATE_IV: This flag should be set by the
|
||||||
* driver to indicate that it requires IV generation for this
|
* driver to indicate that it requires IV generation for this
|
||||||
* particular key. Setting this flag does not necessarily mean that SKBs
|
* particular key.
|
||||||
* will have sufficient tailroom for ICV or MIC.
|
|
||||||
* @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by
|
* @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by
|
||||||
* the driver for a TKIP key if it requires Michael MIC
|
* the driver for a TKIP key if it requires Michael MIC
|
||||||
* generation in software.
|
* generation in software.
|
||||||
|
@ -1283,9 +1282,7 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev);
|
||||||
* @IEEE80211_KEY_FLAG_PUT_IV_SPACE: This flag should be set by the driver
|
* @IEEE80211_KEY_FLAG_PUT_IV_SPACE: This flag should be set by the driver
|
||||||
* if space should be prepared for the IV, but the IV
|
* if space should be prepared for the IV, but the IV
|
||||||
* itself should not be generated. Do not set together with
|
* itself should not be generated. Do not set together with
|
||||||
* @IEEE80211_KEY_FLAG_GENERATE_IV on the same key. Setting this flag does
|
* @IEEE80211_KEY_FLAG_GENERATE_IV on the same key.
|
||||||
* not necessarily mean that SKBs will have sufficient tailroom for ICV or
|
|
||||||
* MIC.
|
|
||||||
* @IEEE80211_KEY_FLAG_RX_MGMT: This key will be used to decrypt received
|
* @IEEE80211_KEY_FLAG_RX_MGMT: This key will be used to decrypt received
|
||||||
* management frames. The flag can help drivers that have a hardware
|
* management frames. The flag can help drivers that have a hardware
|
||||||
* crypto implementation that doesn't deal with management frames
|
* crypto implementation that doesn't deal with management frames
|
||||||
|
|
|
@ -140,7 +140,9 @@ static int ieee80211_key_enable_hw_accel(struct ieee80211_key *key)
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
key->flags |= KEY_FLAG_UPLOADED_TO_HARDWARE;
|
key->flags |= KEY_FLAG_UPLOADED_TO_HARDWARE;
|
||||||
|
|
||||||
if (!(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC))
|
if (!((key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC) ||
|
||||||
|
(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV) ||
|
||||||
|
(key->conf.flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE)))
|
||||||
sdata->crypto_tx_tailroom_needed_cnt--;
|
sdata->crypto_tx_tailroom_needed_cnt--;
|
||||||
|
|
||||||
WARN_ON((key->conf.flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE) &&
|
WARN_ON((key->conf.flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE) &&
|
||||||
|
@ -188,7 +190,9 @@ static void ieee80211_key_disable_hw_accel(struct ieee80211_key *key)
|
||||||
sta = key->sta;
|
sta = key->sta;
|
||||||
sdata = key->sdata;
|
sdata = key->sdata;
|
||||||
|
|
||||||
if (!(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC))
|
if (!((key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC) ||
|
||||||
|
(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV) ||
|
||||||
|
(key->conf.flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE)))
|
||||||
increment_tailroom_need_count(sdata);
|
increment_tailroom_need_count(sdata);
|
||||||
|
|
||||||
ret = drv_set_key(key->local, DISABLE_KEY, sdata,
|
ret = drv_set_key(key->local, DISABLE_KEY, sdata,
|
||||||
|
@ -884,7 +888,9 @@ void ieee80211_remove_key(struct ieee80211_key_conf *keyconf)
|
||||||
if (key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) {
|
if (key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) {
|
||||||
key->flags &= ~KEY_FLAG_UPLOADED_TO_HARDWARE;
|
key->flags &= ~KEY_FLAG_UPLOADED_TO_HARDWARE;
|
||||||
|
|
||||||
if (!(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC))
|
if (!((key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC) ||
|
||||||
|
(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV) ||
|
||||||
|
(key->conf.flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE)))
|
||||||
increment_tailroom_need_count(key->sdata);
|
increment_tailroom_need_count(key->sdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user