diff options
author | Vinícius Tinti <viniciustinti@gmail.com> | 2014-04-04 17:21:24 -0400 |
---|---|---|
committer | Behan Webster <behanw@converseincode.com> | 2014-10-14 04:51:22 -0400 |
commit | 0458a953d85088a9ba3e448745676377775879e0 (patch) | |
tree | c73eb37def38237f25aba8347443237f25941725 /fs | |
parent | a0a77af14117e388d43b2385d5ecc800e2d6eee9 (diff) |
btrfs: LLVMLinux: Remove VLAIS
Replaced the use of a Variable Length Array In Struct (VLAIS) with a C99
compliant equivalent. This patch instead allocates the appropriate amount of
memory using a char array using the SHASH_DESC_ON_STACK macro.
The new code can be compiled with both gcc and clang.
Signed-off-by: Vinícius Tinti <viniciustinti@gmail.com>
Reviewed-by: Jan-Simon Möller <dl9pf@gmx.de>
Reviewed-by: Mark Charlebois <charlebm@gmail.com>
Signed-off-by: Behan Webster <behanw@converseincode.com>
Acked-by: Chris Mason <clm@fb.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/hash.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/fs/btrfs/hash.c b/fs/btrfs/hash.c index 64f15bb30a81..aae520b2aee5 100644 --- a/fs/btrfs/hash.c +++ b/fs/btrfs/hash.c | |||
@@ -31,18 +31,16 @@ void btrfs_hash_exit(void) | |||
31 | 31 | ||
32 | u32 btrfs_crc32c(u32 crc, const void *address, unsigned int length) | 32 | u32 btrfs_crc32c(u32 crc, const void *address, unsigned int length) |
33 | { | 33 | { |
34 | struct { | 34 | SHASH_DESC_ON_STACK(shash, tfm); |
35 | struct shash_desc shash; | 35 | u32 *ctx = (u32 *)shash_desc_ctx(shash); |
36 | char ctx[crypto_shash_descsize(tfm)]; | ||
37 | } desc; | ||
38 | int err; | 36 | int err; |
39 | 37 | ||
40 | desc.shash.tfm = tfm; | 38 | shash->tfm = tfm; |
41 | desc.shash.flags = 0; | 39 | shash->flags = 0; |
42 | *(u32 *)desc.ctx = crc; | 40 | *ctx = crc; |
43 | 41 | ||
44 | err = crypto_shash_update(&desc.shash, address, length); | 42 | err = crypto_shash_update(shash, address, length); |
45 | BUG_ON(err); | 43 | BUG_ON(err); |
46 | 44 | ||
47 | return *(u32 *)desc.ctx; | 45 | return *ctx; |
48 | } | 46 | } |