diff options
author | Dan Streetman <ddstreet@ieee.org> | 2015-06-12 10:58:47 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2015-06-15 18:15:57 +0800 |
commit | 2c6f6eabc0bfcea0a62370038da713e3873cff31 (patch) | |
tree | 7c82b26a28581a9502c59a96e8f8a4fc5b94df2f /drivers/crypto/nx/nx-842-powernv.c | |
parent | 32be6d3e362b896c81aae7c635d44e5a91406ce2 (diff) |
crypto: nx - replace NX842_MEM_COMPRESS with function
Replace the NX842_MEM_COMPRESS define with a function that returns the
specific platform driver's required working memory size.
The common nx-842.c driver refuses to load if there is no platform
driver present, so instead of defining an approximate working memory
size that's the maximum approximate size of both platform driver's
size requirements, the platform driver can directly provide its
specific, i.e. sizeof(struct nx842_workmem), size requirements which
the 842-nx crypto compression driver will use.
This saves memory by both reducing the required size of each driver
to the specific sizeof() amount, as well as using the specific loaded
platform driver's required amount, instead of the maximum of both.
Signed-off-by: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/nx/nx-842-powernv.c')
-rw-r--r-- | drivers/crypto/nx/nx-842-powernv.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/crypto/nx/nx-842-powernv.c b/drivers/crypto/nx/nx-842-powernv.c index c388dba7da64..33b3b0abf4ae 100644 --- a/drivers/crypto/nx/nx-842-powernv.c +++ b/drivers/crypto/nx/nx-842-powernv.c @@ -367,7 +367,8 @@ static int wait_for_csb(struct nx842_workmem *wmem, * @inlen: input buffer size * @out: output buffer pointer * @outlenp: output buffer size pointer - * @workmem: working memory buffer pointer, must be at least NX842_MEM_COMPRESS + * @workmem: working memory buffer pointer, size determined by + * nx842_powernv_driver.workmem_size * @fc: function code, see CCW Function Codes in nx-842.h * * Returns: @@ -477,7 +478,8 @@ static int nx842_powernv_function(const unsigned char *in, unsigned int inlen, * @inlen: input buffer size * @out: output buffer pointer * @outlenp: output buffer size pointer - * @workmem: working memory buffer pointer, must be at least NX842_MEM_COMPRESS + * @workmem: working memory buffer pointer, size determined by + * nx842_powernv_driver.workmem_size * * Returns: see @nx842_powernv_function() */ @@ -504,7 +506,8 @@ static int nx842_powernv_compress(const unsigned char *in, unsigned int inlen, * @inlen: input buffer size * @out: output buffer pointer * @outlenp: output buffer size pointer - * @workmem: working memory buffer pointer, must be at least NX842_MEM_COMPRESS + * @workmem: working memory buffer pointer, size determined by + * nx842_powernv_driver.workmem_size * * Returns: see @nx842_powernv_function() */ @@ -572,6 +575,7 @@ static struct nx842_constraints nx842_powernv_constraints = { static struct nx842_driver nx842_powernv_driver = { .name = KBUILD_MODNAME, .owner = THIS_MODULE, + .workmem_size = sizeof(struct nx842_workmem), .constraints = &nx842_powernv_constraints, .compress = nx842_powernv_compress, .decompress = nx842_powernv_decompress, @@ -582,7 +586,6 @@ static __init int nx842_powernv_init(void) struct device_node *dn; /* verify workmem size/align restrictions */ - BUILD_BUG_ON(sizeof(struct nx842_workmem) > NX842_MEM_COMPRESS); BUILD_BUG_ON(WORKMEM_ALIGN % CRB_ALIGN); BUILD_BUG_ON(CRB_ALIGN % DDE_ALIGN); BUILD_BUG_ON(CRB_SIZE % DDE_ALIGN); |