--- zzzz-none-000/linux-4.4.271/drivers/md/dm-crypt.c 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/drivers/md/dm-crypt.c 2023-04-19 10:22:29.000000000 +0000 @@ -1567,7 +1567,7 @@ char *cipher_in, char *key) { struct crypt_config *cc = ti->private; - char *tmp, *cipher, *chainmode, *ivmode, *ivopts, *keycount; + char *tmp, *cipher, *chainmode, *ivmode, *ivopts, *keycount, *qcengine; char *cipher_api = NULL; int ret = -EINVAL; char dummy; @@ -1605,6 +1605,11 @@ goto bad_mem; chainmode = strsep(&tmp, "-"); + if (strnstr(tmp, "qce", sizeof("qce"))) + qcengine = strsep(&tmp, "-"); + else + qcengine = NULL; + ivopts = strsep(&tmp, "-"); ivmode = strsep(&ivopts, ":"); @@ -1629,8 +1634,12 @@ if (!cipher_api) goto bad_mem; - ret = snprintf(cipher_api, CRYPTO_MAX_ALG_NAME, - "%s(%s)", chainmode, cipher); + if (qcengine) + ret = snprintf(cipher_api, CRYPTO_MAX_ALG_NAME, + "%s-%s-%s", chainmode, cipher, qcengine); + else + ret = snprintf(cipher_api, CRYPTO_MAX_ALG_NAME, + "%s(%s)", chainmode, cipher); if (ret < 0) { kfree(cipher_api); goto bad_mem;