diff options
Diffstat (limited to 'lib/libcrc32c.c')
| -rw-r--r-- | lib/libcrc32c.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libcrc32c.c b/lib/libcrc32c.c index 74a54b7f2562..9f79547d1b97 100644 --- a/lib/libcrc32c.c +++ b/lib/libcrc32c.c @@ -43,7 +43,7 @@ static struct crypto_shash *tfm;  u32 crc32c(u32 crc, const void *address, unsigned int length)  {  	SHASH_DESC_ON_STACK(shash, tfm); -	u32 *ctx = (u32 *)shash_desc_ctx(shash); +	u32 ret, *ctx = (u32 *)shash_desc_ctx(shash);  	int err;  	shash->tfm = tfm; @@ -53,7 +53,9 @@ u32 crc32c(u32 crc, const void *address, unsigned int length)  	err = crypto_shash_update(shash, address, length);  	BUG_ON(err); -	return *ctx; +	ret = *ctx; +	barrier_data(ctx); +	return ret;  }  EXPORT_SYMBOL(crc32c);  |