diff options
author | Alexandre Oliva <lxoliva@fsfla.org> | 2011-06-22 13:08:19 +0000 |
---|---|---|
committer | Alexandre Oliva <lxoliva@fsfla.org> | 2011-06-22 13:08:19 +0000 |
commit | 22c3282a5b828b1bea1b0acab9e7aaac26de10d9 (patch) | |
tree | 6ceb85cbff1d6fccfce913fc1cf4c956fc87d809 /freed-ora/current/f15 | |
parent | bade2bf304fe9a25b396a2dea5152b4a17a397f5 (diff) | |
download | linux-libre-raptor-22c3282a5b828b1bea1b0acab9e7aaac26de10d9.tar.gz linux-libre-raptor-22c3282a5b828b1bea1b0acab9e7aaac26de10d9.zip |
2.6.38.8-33.fc15
Diffstat (limited to 'freed-ora/current/f15')
3 files changed, 253 insertions, 1 deletions
diff --git a/freed-ora/current/f15/crypto-aesni_intel-merge-with-fpu_ko.patch b/freed-ora/current/f15/crypto-aesni_intel-merge-with-fpu_ko.patch new file mode 100644 index 000000000..afb4bec8b --- /dev/null +++ b/freed-ora/current/f15/crypto-aesni_intel-merge-with-fpu_ko.patch @@ -0,0 +1,134 @@ +From: Andy Lutomirski <luto@mit.edu> +Date: Mon, 16 May 2011 05:12:47 +0000 (+1000) +Subject: crypto: aesni-intel - Merge with fpu.ko +X-Git-Tag: v3.0-rc1~371^2~5 +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=b23b64516500df6b70fcafb820970f18538252cf + +crypto: aesni-intel - Merge with fpu.ko + +Loading fpu without aesni-intel does nothing. Loading aesni-intel +without fpu causes modes like xts to fail. (Unloading +aesni-intel will restore those modes.) + +One solution would be to make aesni-intel depend on fpu, but it +seems cleaner to just combine the modules. + +This is probably responsible for bugs like: +https://bugzilla.redhat.com/show_bug.cgi?id=589390 + +Signed-off-by: Andy Lutomirski <luto@mit.edu> +Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> +[also 9bed4aca for the bugfix. --kyle] + +--- +diff --git a/arch/x86/crypto/Makefile b/arch/x86/crypto/Makefile +index 1a58ad8..c04f1b7 100644 +--- a/arch/x86/crypto/Makefile ++++ b/arch/x86/crypto/Makefile +@@ -2,8 +2,6 @@ + # Arch-specific CryptoAPI modules. + # + +-obj-$(CONFIG_CRYPTO_FPU) += fpu.o +- + obj-$(CONFIG_CRYPTO_AES_586) += aes-i586.o + obj-$(CONFIG_CRYPTO_TWOFISH_586) += twofish-i586.o + obj-$(CONFIG_CRYPTO_SALSA20_586) += salsa20-i586.o +@@ -24,6 +22,6 @@ aes-x86_64-y := aes-x86_64-asm_64.o aes_glue.o + twofish-x86_64-y := twofish-x86_64-asm_64.o twofish_glue.o + salsa20-x86_64-y := salsa20-x86_64-asm_64.o salsa20_glue.o + +-aesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o ++aesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o fpu.o + + ghash-clmulni-intel-y := ghash-clmulni-intel_asm.o ghash-clmulni-intel_glue.o +diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c +index b375b2a..ede3fa7 100644 +--- a/arch/x86/crypto/aesni-intel_glue.c ++++ b/arch/x86/crypto/aesni-intel_glue.c +@@ -94,6 +94,10 @@ asmlinkage void aesni_cbc_enc(struct crypto_aes_ctx *ctx, u8 *out, + const u8 *in, unsigned int len, u8 *iv); + asmlinkage void aesni_cbc_dec(struct crypto_aes_ctx *ctx, u8 *out, + const u8 *in, unsigned int len, u8 *iv); ++ ++int crypto_fpu_init(void); ++void crypto_fpu_exit(void); ++ + #ifdef CONFIG_X86_64 + asmlinkage void aesni_ctr_enc(struct crypto_aes_ctx *ctx, u8 *out, + const u8 *in, unsigned int len, u8 *iv); +@@ -1259,6 +1263,8 @@ static int __init aesni_init(void) + return -ENODEV; + } + ++ if ((err = crypto_fpu_init())) ++ goto fpu_err; + if ((err = crypto_register_alg(&aesni_alg))) + goto aes_err; + if ((err = crypto_register_alg(&__aesni_alg))) +@@ -1336,6 +1342,7 @@ blk_ecb_err: + __aes_err: + crypto_unregister_alg(&aesni_alg); + aes_err: ++fpu_err: + return err; + } + +@@ -1365,6 +1372,8 @@ static void __exit aesni_exit(void) + crypto_unregister_alg(&blk_ecb_alg); + crypto_unregister_alg(&__aesni_alg); + crypto_unregister_alg(&aesni_alg); ++ ++ crypto_fpu_exit(); + } + + module_init(aesni_init); +diff --git a/arch/x86/crypto/fpu.c b/arch/x86/crypto/fpu.c +index 1a8f864..98d7a18 100644 +--- a/arch/x86/crypto/fpu.c ++++ b/arch/x86/crypto/fpu.c +@@ -150,18 +150,12 @@ static struct crypto_template crypto_fpu_tmpl = { + .module = THIS_MODULE, + }; + +-static int __init crypto_fpu_module_init(void) ++int __init crypto_fpu_init(void) + { + return crypto_register_template(&crypto_fpu_tmpl); + } + +-static void __exit crypto_fpu_module_exit(void) ++void __exit crypto_fpu_exit(void) + { + crypto_unregister_template(&crypto_fpu_tmpl); + } +- +-module_init(crypto_fpu_module_init); +-module_exit(crypto_fpu_module_exit); +- +-MODULE_LICENSE("GPL"); +-MODULE_DESCRIPTION("FPU block cipher wrapper"); +diff --git a/crypto/Kconfig b/crypto/Kconfig +index 4b7cb0e..87b22ca 100644 +--- a/crypto/Kconfig ++++ b/crypto/Kconfig +@@ -264,11 +264,6 @@ config CRYPTO_XTS + key size 256, 384 or 512 bits. This implementation currently + can't handle a sectorsize which is not a multiple of 16 bytes. + +-config CRYPTO_FPU +- tristate +- select CRYPTO_BLKCIPHER +- select CRYPTO_MANAGER +- + comment "Hash modes" + + config CRYPTO_HMAC +@@ -543,7 +538,6 @@ config CRYPTO_AES_NI_INTEL + select CRYPTO_AES_586 if !64BIT + select CRYPTO_CRYPTD + select CRYPTO_ALGAPI +- select CRYPTO_FPU + help + Use Intel AES-NI instructions for AES algorithm. + diff --git a/freed-ora/current/f15/iwlagn-use-cts-to-self-protection-on-5000-adapters-series.patch b/freed-ora/current/f15/iwlagn-use-cts-to-self-protection-on-5000-adapters-series.patch new file mode 100644 index 000000000..6743f9057 --- /dev/null +++ b/freed-ora/current/f15/iwlagn-use-cts-to-self-protection-on-5000-adapters-series.patch @@ -0,0 +1,103 @@ +From sgruszka@redhat.com Mon Jun 20 10:09:55 2011 +From: Stanislaw Gruszka <sgruszka@redhat.com> +To: kernel@lists.fedoraproject.org +Subject: [PATCH 2.6.38] iwlagn: use cts-to-self protection on 5000 adapters series +Date: Mon, 20 Jun 2011 16:11:22 +0200 +Message-Id: <1308579082-19006-2-git-send-email-sgruszka@redhat.com> + +This patch fixes 802.11n stability and performance regression we have +since 2.6.35. It boost performance on my 5GHz N-only network from about +5MB/s to 8MB/s. Similar percentage boost can be observed on 2.4 GHz. + +These are test results of 5x downloading of approximately 700MB iso +image: + +vanilla: 5.27 5.22 4.94 4.47 5.31 ; avr 5.0420 std 0.35110 +patched: 8.07 7.95 8.06 7.99 7.96 ; avr 8.0060 std 0.055946 + +This was achieved with NetworkManager configured to do not perform +periodical scans, by configuring constant BSSID. With periodical scans, +after some time, performance downgrade to unpatched driver level, like +in example below: + +patched: 7.40 7.61 4.28 4.37 4.80 avr 5.6920 std 1.6683 + +However patch still make better here, since similar test on unpatched +driver make link disconnects with below messages after some time: + +wlan1: authenticate with 00:23:69:35:d1:3f (try 1) +wlan1: authenticate with 00:23:69:35:d1:3f (try 2) +wlan1: authenticate with 00:23:69:35:d1:3f (try 3) +wlan1: authentication with 00:23:69:35:d1:3f timed out + +On 2.6.35 kernel patch helps against connection hangs with messages: + +iwlagn 0000:20:00.0: queue 10 stuck 3 time. Fw reload. +iwlagn 0000:20:00.0: On demand firmware reload +iwlagn 0000:20:00.0: Stopping AGG while state not ON or starting + +Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> +--- + drivers/net/wireless/iwlwifi/iwl-5000.c | 1 - + drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c | 12 ++---------- + drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 8 ++++++++ + 3 files changed, 10 insertions(+), 11 deletions(-) + +diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c +index 537fb8c..909cc30 100644 +--- a/drivers/net/wireless/iwlwifi/iwl-5000.c ++++ b/drivers/net/wireless/iwlwifi/iwl-5000.c +@@ -517,7 +517,6 @@ static struct iwl_base_params iwl5000_base_params = { + }; + static struct iwl_ht_params iwl5000_ht_params = { + .ht_greenfield_support = true, +- .use_rts_for_aggregation = true, /* use rts/cts protection */ + }; + + #define IWL_DEVICE_5000 \ +diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c +index 366340f..89762a7 100644 +--- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c ++++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c +@@ -217,17 +217,9 @@ static void iwlagn_tx_cmd_protection(struct iwl_priv *priv, + __le16 fc, __le32 *tx_flags) + { + if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS || +- info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) { ++ info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT || ++ info->flags & IEEE80211_TX_CTL_AMPDU) + *tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK; +- return; +- } +- +- if (priv->cfg->ht_params && +- priv->cfg->ht_params->use_rts_for_aggregation && +- info->flags & IEEE80211_TX_CTL_AMPDU) { +- *tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK; +- return; +- } + } + + /* Calc max signal level (dBm) among 3 possible receivers */ +diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c +index ee802fe..b19fb85 100644 +--- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c ++++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c +@@ -145,6 +145,14 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx) + /* always get timestamp with Rx frame */ + ctx->staging.flags |= RXON_FLG_TSF2HOST_MSK; + ++ /* ++ * force CTS-to-self frames protection if RTS-CTS is not preferred ++ * one aggregation protection method ++ */ ++ if (!(priv->cfg->ht_params && ++ priv->cfg->ht_params->use_rts_for_aggregation)) ++ ctx->staging.flags |= RXON_FLG_SELF_CTS_EN; ++ + if ((ctx->vif && ctx->vif->bss_conf.use_short_slot) || + !(ctx->staging.flags & RXON_FLG_BAND_24G_MSK)) + ctx->staging.flags |= RXON_FLG_SHORT_SLOT_MSK; +-- +1.7.1 + diff --git a/freed-ora/current/f15/kernel.spec b/freed-ora/current/f15/kernel.spec index eefcba8f4..f10f2b131 100644 --- a/freed-ora/current/f15/kernel.spec +++ b/freed-ora/current/f15/kernel.spec @@ -51,7 +51,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be prepended with "0.", so # for example a 3 here will become 0.3 # -%global baserelease 32 +%global baserelease 33 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -773,6 +773,9 @@ Patch12415: hid-multitouch-add-support-for-elo-touchsystems.patch Patch12416: bluetooth-device-ids-for-ath3k-on-pegatron-lucid-tablets.patch Patch12418: ath5k-disable-fast-channel-switching-by-default.patch +Patch12419: iwlagn-use-cts-to-self-protection-on-5000-adapters-series.patch + +Patch12420: crypto-aesni_intel-merge-with-fpu_ko.patch %endif @@ -1449,6 +1452,12 @@ ApplyPatch bluetooth-device-ids-for-ath3k-on-pegatron-lucid-tablets.patch # rhbz#709122 ApplyPatch ath5k-disable-fast-channel-switching-by-default.patch +# rhbz#648732 +ApplyPatch iwlagn-use-cts-to-self-protection-on-5000-adapters-series.patch + +# rhbz#589390 +ApplyPatch crypto-aesni_intel-merge-with-fpu_ko.patch + # END OF PATCH APPLICATIONS %endif @@ -2057,6 +2066,12 @@ fi # and build. %changelog +* Mon Jun 20 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38.8-33 +- [sgruszka@] iwlwifi: fix general 11n instability (rhbz#648732) + +* Wed Jun 15 2011 Kyle McMartin <kmcmartin@redhat.com> +- crypto: aesni-intel - Merge with fpu.ko (rhbz#589390) + * Thu Jun 09 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38.8-32 - ath5k-disable-fast-channel-switching-by-default.patch (rhbz#709122) (korgbz#34992) [a99168ee in wireless-next] |