net/mac80211: move WEP handling to ARC4 library interface
The WEP code in the mac80211 subsystem currently uses the crypto API to access the arc4 (RC4) cipher, which is overly complicated, and doesn't really have an upside in this particular case, since ciphers are always synchronous and therefore always implemented in software. Given that we have no accelerated software implementations either, it is much more straightforward to invoke a generic library interface directly. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:

committed by
Herbert Xu

parent
dc51f25752
commit
5fdb373570
@@ -13,6 +13,7 @@
|
||||
|
||||
#include <net/mac80211.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/fips.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/types.h>
|
||||
@@ -733,8 +734,7 @@ EXPORT_SYMBOL(ieee80211_alloc_hw_nm);
|
||||
|
||||
static int ieee80211_init_cipher_suites(struct ieee80211_local *local)
|
||||
{
|
||||
bool have_wep = !(IS_ERR(local->wep_tx_tfm) ||
|
||||
IS_ERR(local->wep_rx_tfm));
|
||||
bool have_wep = !fips_enabled; /* FIPS does not permit the use of RC4 */
|
||||
bool have_mfp = ieee80211_hw_check(&local->hw, MFP_CAPABLE);
|
||||
int n_suites = 0, r = 0, w = 0;
|
||||
u32 *suites;
|
||||
@@ -1301,7 +1301,6 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
|
||||
fail_rate:
|
||||
rtnl_unlock();
|
||||
ieee80211_led_exit(local);
|
||||
ieee80211_wep_free(local);
|
||||
fail_flows:
|
||||
destroy_workqueue(local->workqueue);
|
||||
fail_workqueue:
|
||||
@@ -1358,7 +1357,6 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw)
|
||||
|
||||
destroy_workqueue(local->workqueue);
|
||||
wiphy_unregister(local->hw.wiphy);
|
||||
ieee80211_wep_free(local);
|
||||
ieee80211_led_exit(local);
|
||||
kfree(local->int_scan_req);
|
||||
}
|
||||
|
Reference in New Issue
Block a user