summaryrefslogtreecommitdiffstats
path: root/crypto/acompress.c
diff options
context:
space:
mode:
authorBarry Song <song.bao.hua@hisilicon.com>2020-07-05 11:18:58 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2020-07-09 10:25:23 +0200
commit7bc13b5b60e9412a7ddef300ce2c661eecd1fd5d (patch)
tree52f93eba50304a85d9930529db9d219c1dbc398f /crypto/acompress.c
parentcrypto: aesni - Fix build with LLVM_IAS=1 (diff)
downloadlinux-7bc13b5b60e9412a7ddef300ce2c661eecd1fd5d.tar.xz
linux-7bc13b5b60e9412a7ddef300ce2c661eecd1fd5d.zip
crypto: api - permit users to specify numa node of acomp hardware
For a Linux server with NUMA, there are possibly multiple (de)compressors which are either local or remote to some NUMA node. Some drivers will automatically use the (de)compressor near the CPU calling acomp_alloc(). However, it is not necessarily correct because users who send acomp_req could be from different NUMA node with the CPU which allocates acomp. Just like kernel has kmalloc() and kmalloc_node(), here crypto can have same support. Cc: Seth Jennings <sjenning@redhat.com> Cc: Dan Streetman <ddstreet@ieee.org> Cc: Vitaly Wool <vitaly.wool@konsulko.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Barry Song <song.bao.hua@hisilicon.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/acompress.c')
-rw-r--r--crypto/acompress.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/crypto/acompress.c b/crypto/acompress.c
index 84a76723e851..c32c72048a1c 100644
--- a/crypto/acompress.c
+++ b/crypto/acompress.c
@@ -109,6 +109,14 @@ struct crypto_acomp *crypto_alloc_acomp(const char *alg_name, u32 type,
}
EXPORT_SYMBOL_GPL(crypto_alloc_acomp);
+struct crypto_acomp *crypto_alloc_acomp_node(const char *alg_name, u32 type,
+ u32 mask, int node)
+{
+ return crypto_alloc_tfm_node(alg_name, &crypto_acomp_type, type, mask,
+ node);
+}
+EXPORT_SYMBOL_GPL(crypto_alloc_acomp_node);
+
struct acomp_req *acomp_request_alloc(struct crypto_acomp *acomp)
{
struct crypto_tfm *tfm = crypto_acomp_tfm(acomp);