Re: [PATCH v2] mac80211: LLVMLinux: Remove VLAIS usage from mac80211
flat view
From: Behan Webster <hidden>
Date: 2014-03-08 20:17:41
Also in:
lkml, netdev
On 03/07/14 18:27, Joe Perches wrote:
On Fri, 2014-03-07 at 18:15 -0800, Behan Webster wrote:quoted
On 03/07/14 17:56, Joe Perches wrote:quoted
On Fri, 2014-03-07 at 17:26 -0800, behanw@converseincode.com wrote:quoted
From: Jan-Simon Möller <redacted> Replaced the use of a Variable Length Array In Struct (VLAIS) with a C99 compliant equivalent. This is the original VLAIS struct.[]quoted
diff --git a/net/mac80211/aes_ccm.c b/net/mac80211/aes_ccm.c[]quoted
@@ -23,12 +23,14 @@ void ieee80211_aes_ccm_encrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad, u8 *data, size_t data_len, u8 *mic) { struct scatterlist assoc, pt, ct[2]; - struct { - struct aead_request req; - u8 priv[crypto_aead_reqsize(tfm)]; - } aead_req; - memset(&aead_req, 0, sizeof(aead_req)); + char aead_req_data[sizeof(struct aead_request) + + crypto_aead_reqsize(tfm) + + CRYPTO_MINALIGN] CRYPTO_MINALIGN_ATTR;Can this be a too large amount of stack? Is crypto_aead_reqsize() limited to < ~1k? Perhaps it'd be better to use kzalloc for this or another reserved poolNo more stack being used than with the the original code. The stack memory use is identical.I do understand that, but that's not my question. I appreciate you're getting this to compile for llvm. Any idea of the max value of crypto_aead_reqsize?
And I understand your question, as well as why it is important. Moving it from being stack based to alloacted memory may or may not be a good thing, but is orthogonal to the intention of this particular patch (which is just to remove the use of VLAIS from this code).
$ grep-2.5.4 -rP --include=*.[ch] "(?:->|\.)\s*\breqsize\s*=[^=][^;]+;" *
Very clever. I'm going to use this. :) Behan -- Behan Webster behanw@converseincode.com