diff options
author | Andrey Konovalov <andrey.konovalov@linaro.org> | 2014-04-15 01:23:48 +0400 |
---|---|---|
committer | Andrey Konovalov <andrey.konovalov@linaro.org> | 2014-04-15 01:23:48 +0400 |
commit | 6d849f4d57beace52b1027b727a9d83ec020aaf8 (patch) | |
tree | f8ca0618b88f0cde08818e76e62c5fcf82072cc8 /lib | |
parent | 6613ee6dc52517d1227f25da53ad13b0bf7f667b (diff) | |
parent | 57e57c0d2969763f87d82892f0f6139215bdae02 (diff) |
Merge branch 'tracking-llvm' into merge-linux-linaro-core-tracking
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Makefile | 2 | ||||
-rw-r--r-- | lib/libcrc32c.c | 18 |
2 files changed, 11 insertions, 9 deletions
diff --git a/lib/Makefile b/lib/Makefile index 48140e3ba73..6697534a9ec 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -46,7 +46,9 @@ obj-$(CONFIG_CHECK_SIGNATURE) += check_signature.o obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o GCOV_PROFILE_hweight.o := n +ifneq ($(COMPILER),clang) CFLAGS_hweight.o = $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS)) +endif obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o obj-$(CONFIG_BTREE) += btree.o diff --git a/lib/libcrc32c.c b/lib/libcrc32c.c index 244f5480c89..c155b3fc1be 100644 --- a/lib/libcrc32c.c +++ b/lib/libcrc32c.c @@ -41,20 +41,20 @@ static struct crypto_shash *tfm; u32 crc32c(u32 crc, const void *address, unsigned int length) { - struct { - struct shash_desc shash; - char ctx[crypto_shash_descsize(tfm)]; - } desc; + char desc[sizeof(struct shash_desc) + crypto_shash_descsize(tfm) + + CRYPTO_MINALIGN] CRYPTO_MINALIGN_ATTR; + struct shash_desc *shash = (struct shash_desc *)desc; + u32 *ctx = (u32 *)shash_desc_ctx(shash); int err; - desc.shash.tfm = tfm; - desc.shash.flags = 0; - *(u32 *)desc.ctx = crc; + shash->tfm = tfm; + shash->flags = 0; + *ctx = crc; - err = crypto_shash_update(&desc.shash, address, length); + err = crypto_shash_update(shash, address, length); BUG_ON(err); - return *(u32 *)desc.ctx; + return *ctx; } EXPORT_SYMBOL(crc32c); |