On Fri, 2014-03-07 at 18:15 -0800, Behan Webster wrote:And I understand your question, as well as why it is important.
On 03/07/14 17:56, Joe Perches wrote:I do understand that, but that's not my question.
On Fri, 2014-03-07 at 17:26 -0800, behanw@xxxxxxxxxxxxxxxxxx wrote:No more stack being used than with the the original code. The stack
From: Jan-Simon Möller <dl9pf@xxxxxx>[]
Replaced the use of a Variable Length Array In Struct (VLAIS) with a C99
compliant equivalent. This is the original VLAIS struct.
diff --git a/net/mac80211/aes_ccm.c b/net/mac80211/aes_ccm.c[]
@@ -23,12 +23,14 @@ void ieee80211_aes_ccm_encrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,Can this be a too large amount of stack?
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;
Is crypto_aead_reqsize() limited to < ~1k?
Perhaps it'd be better to use kzalloc for this
or another reserved pool
memory use is identical.
I appreciate you're getting this to compile for llvm.
Any idea of the max value of crypto_aead_reqsize?
$ grep-2.5.4 -rP --include=*.[ch] "(?:->|\.)\s*\breqsize\s*=[^=][^;]+;" *Very clever. I'm going to use this. :)