[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20121031104520.45391yrgl3tgaza8@www.dalek.fi>
Date: Wed, 31 Oct 2012 10:45:20 +0200
From: Jussi Kivilinna <jussi.kivilinna@...et.fi>
To: Behan Webster <behanw@...verseincode.com>
Cc: herbert@...dor.apana.org.au, davem@...emloft.net,
linux-crypto@...r.kernel.org, linux-kernel@...r.kernel.org,
Jan-Simon Möller <dl9pf@....de>,
pageexec@...email.hu
Subject: Re: [PATCH 2/2] Remove VLAIS usage from crypto/testmgr.c
Quoting Behan Webster <behanw@...verseincode.com>:
> From: Jan-Simon Möller <dl9pf@....de>
>
> The use of variable length arrays in structs (VLAIS) in the Linux Kernel code
> precludes the use of compilers which don't implement VLAIS (for instance the
> Clang compiler). This patch instead allocates the appropriate amount
> of memory
> using an char array.
>
> Patch from series at
> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120507/142707.html
> by PaX Team.
>
> Signed-off-by: Jan-Simon Möller <dl9pf@....de>
> Cc: pageexec@...email.hu
> Signed-off-by: Behan Webster <behanw@...verseincode.com>
> ---
> crypto/testmgr.c | 23 +++++++++++++----------
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/crypto/testmgr.c b/crypto/testmgr.c
> index 941d75c..5b7b3a6 100644
> --- a/crypto/testmgr.c
> +++ b/crypto/testmgr.c
> @@ -1578,16 +1578,19 @@ static int alg_test_crc32c(const struct
> alg_test_desc *desc,
> }
>
> do {
> - struct {
> - struct shash_desc shash;
> - char ctx[crypto_shash_descsize(tfm)];
> - } sdesc;
> -
> - sdesc.shash.tfm = tfm;
> - sdesc.shash.flags = 0;
> -
> - *(u32 *)sdesc.ctx = le32_to_cpu(420553207);
> - err = crypto_shash_final(&sdesc.shash, (u8 *)&val);
> + char sdesc[sizeof(struct shash_desc)
> + + crypto_shash_descsize(tfm)
> + + CRYPTO_MINALIGN] CRYPTO_MINALIGN_ATTR;
> + struct shash_desc *shash = (struct shash_desc *)sdesc;
> + u32 *ctx = (u32 *)((unsigned long)(sdesc
> + + sizeof(struct shash_desc) + CRYPTO_MINALIGN - 1)
> + & ~(CRYPTO_MINALIGN - 1));
I think you should use '(u32 *)shash_desc_ctx(shash)' instead of
getting ctx pointer manually.
> +
> + shash->tfm = tfm;
> + shash->flags = 0;
> +
> + *ctx = le32_to_cpu(420553207);
> + err = crypto_shash_final(shash, (u8 *)&val);
> if (err) {
> printk(KERN_ERR "alg: crc32c: Operation failed for "
> "%s: %d\n", driver, err);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists