mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 16:16:15 -04:00
Revert "crypto - shash: reduce minimum alignment of shash_desc structure"
This reverts commit 078170924d which is
commit 660d2062190db131d2feaf19914e90f868fe285c uptream.
It messes with the ABI and doesn't fix anything specific, so leave it
out for now.
Bug: 161946584
Signed-off-by: Ard Biesheuvel <ardb@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1a0716fdbdc2e550f2a80d742585bd7100776f4e
This commit is contained in:
parent
5f5a0e3499
commit
1b0760a0e5
2 changed files with 7 additions and 10 deletions
|
|
@ -141,7 +141,7 @@ struct ahash_alg {
|
|||
|
||||
struct shash_desc {
|
||||
struct crypto_shash *tfm;
|
||||
void *__ctx[] __aligned(ARCH_SLAB_MINALIGN);
|
||||
void *__ctx[] CRYPTO_MINALIGN_ATTR;
|
||||
};
|
||||
|
||||
#define HASH_MAX_DIGESTSIZE 64
|
||||
|
|
@ -154,9 +154,9 @@ struct shash_desc {
|
|||
|
||||
#define HASH_MAX_STATESIZE 512
|
||||
|
||||
#define SHASH_DESC_ON_STACK(shash, ctx) \
|
||||
char __##shash##_desc[sizeof(struct shash_desc) + HASH_MAX_DESCSIZE] \
|
||||
__aligned(__alignof__(struct shash_desc)); \
|
||||
#define SHASH_DESC_ON_STACK(shash, ctx) \
|
||||
char __##shash##_desc[sizeof(struct shash_desc) + \
|
||||
HASH_MAX_DESCSIZE] CRYPTO_MINALIGN_ATTR; \
|
||||
struct shash_desc *shash = (struct shash_desc *)__##shash##_desc
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -130,12 +130,9 @@
|
|||
* The macro CRYPTO_MINALIGN_ATTR (along with the void * type in the actual
|
||||
* declaration) is used to ensure that the crypto_tfm context structure is
|
||||
* aligned correctly for the given architecture so that there are no alignment
|
||||
* faults for C data types. On architectures that support non-cache coherent
|
||||
* DMA, such as ARM or arm64, it also takes into account the minimal alignment
|
||||
* that is required to ensure that the context struct member does not share any
|
||||
* cachelines with the rest of the struct. This is needed to ensure that cache
|
||||
* maintenance for non-coherent DMA (cache invalidation in particular) does not
|
||||
* affect data that may be accessed by the CPU concurrently.
|
||||
* faults for C data types. In particular, this is required on platforms such
|
||||
* as arm where pointers are 32-bit aligned but there are data types such as
|
||||
* u64 which require 64-bit alignment.
|
||||
*/
|
||||
#define CRYPTO_MINALIGN ARCH_KMALLOC_MINALIGN
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue