Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 22338
b: refs/heads/master
c: f10b789
h: refs/heads/master
v: v3
  • Loading branch information
Herbert Xu committed Mar 21, 2006
1 parent 1821c63 commit e0c5022
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a5f8c473052bc693cdbe2f9ae4b424b993886ff5
refs/heads/master: f10b7897ee29649fa7f0ccdc8d859ccd6ce7dbfd
2 changes: 1 addition & 1 deletion trunk/crypto/api.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ static unsigned int crypto_ctxsize(struct crypto_alg *alg, int flags)
break;
}

return len + alg->cra_alignmask;
return len + (alg->cra_alignmask & ~(crypto_tfm_ctx_alignment() - 1));
}

struct crypto_tfm *crypto_alloc_tfm(const char *name, u32 flags)
Expand Down
6 changes: 5 additions & 1 deletion trunk/drivers/crypto/padlock-aes.c
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,11 @@ aes_hw_extkey_available(uint8_t key_len)

static inline struct aes_ctx *aes_ctx(void *ctx)
{
return (struct aes_ctx *)ALIGN((unsigned long)ctx, PADLOCK_ALIGNMENT);
unsigned long align = PADLOCK_ALIGNMENT;

if (align <= crypto_tfm_ctx_alignment())
align = 1;
return (struct aes_ctx *)ALIGN((unsigned long)ctx, align);
}

static int
Expand Down
10 changes: 9 additions & 1 deletion trunk/include/linux/crypto.h
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@ struct crypto_tfm {
} crt_u;

struct crypto_alg *__crt_alg;

char __crt_ctx[] __attribute__ ((__aligned__));
};

/*
Expand Down Expand Up @@ -301,7 +303,13 @@ static inline unsigned int crypto_tfm_alg_alignmask(struct crypto_tfm *tfm)

static inline void *crypto_tfm_ctx(struct crypto_tfm *tfm)
{
return (void *)&tfm[1];
return tfm->__crt_ctx;
}

static inline unsigned int crypto_tfm_ctx_alignment(void)
{
struct crypto_tfm *tfm;
return __alignof__(tfm->__crt_ctx);
}

/*
Expand Down

0 comments on commit e0c5022

Please sign in to comment.