From nobody Fri Sep 25 14:08:44 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5D76E49BD63 for ; Mon, 21 Sep 2026 12:58:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995522; cv=none; b=qtV3xM/X0zwqErOtfjDhdrwgnCqFl6zWSpAzPr3lIehqOt3t9tHshDAJ2dk0GEZ5L/FrZPaL/eq//ZWYE0hSU5clEH+EMCl9DpGzZZQY9qUDGD76ensR+UJt7C+oFCNTuxzCYuXq2+01W0aOl5ASPwIaBkK300ERngbq8wPvhOg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995522; c=relaxed/simple; bh=jX9qpTLTDR3AaV4kn5vvkCsyHxUfD9CKGQiGMuz5O1k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PpJornFNz+pzd+UhoStq8PvzKLgN8XbA2FOPQnh9AlzE7U/ajhX3fiWpjzhBcIE404Apxwn1qXrlBvVMXWjLjfc00pTFPbIp2UK+isAcFADKmhcOaygc7ykTIG0yn26MSbDCYyth4jkpU9hVxCzCwyBfQmOHUiKsewfuwcBXheU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Wx4+uM+G; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eEJ2cjVd; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Wx4+uM+G"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eEJ2cjVd" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAdv5c2091296 for ; Mon, 21 Sep 2026 12:58:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= iY/I37otMekVp4HI+AJzj1qeI5YD4C956zvxiF3oYgo=; b=Wx4+uM+GVH21ik9L 3yLLllzpgvOppwlsZJy8Iav2LaK1k4gqWj70ia3clu0O96gj6N93oPh3XdKdK/Nv dl7wYqhcTxVU9JjIaOT0di9p+cbiLd2D7qniWh7Q2+ZGBKZYSGVnuI/jjJNXf5p/ 86d1+8rAM0Lh5aMpVc8b9xQcJrfraPM95ofMHNncduxWBhlLIaJhjS4WLVovYnQo MguWJ9Ulv+6EBg/ncv3zWOS4TjcSA+MSDTwaHUGtZAUaZgjdazq0xh2vW7P+QI7s Y5DSF9K3LDiTmvosewThzQn9ctcV/G2S7DPDxwRBAruPiN2rqPXWcjH0WU4JZeJ6 dHgL2g== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gtt3wteg6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:58:38 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-939f925ba4eso420644285a.3 for ; Mon, 21 Sep 2026 05:58:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995517; x=1790600317; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=iY/I37otMekVp4HI+AJzj1qeI5YD4C956zvxiF3oYgo=; b=eEJ2cjVd0AixZCPw57fJOA57wgHrHCfYJ6f3Ia+IN3qKpkDBYBUtJcWUl+bGX9ArOp Po1Ih6zQqxha3c/KZI/WwbTRrk7xYimuq1ZIVwsGHO4qfO+yUxYQCOCYYaiyyCo0vT+A x0WKsT7keFRMv7too1C4bSADlycLcW+RoVJdT5ToansqQ6MiQgBzDqwqYFfKQj9H7m4C Nv9hIW5ypsLn2ANKiNOTjdxOW3e/UbBPWtDRKscqB0lJvn1qpW+bEX1hvRNuqQnBzoiR 9Hi9vZjXQTkxZUPCoJTLxAuOVNPA/0kk1tYb+yRlzLZijuSYyWyB1LHCnDOjGKsxKTBX TVqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995517; x=1790600317; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=iY/I37otMekVp4HI+AJzj1qeI5YD4C956zvxiF3oYgo=; b=UU4De5BECe/8kduFPfRE2YtFF6KlPHR3ZAv4Fu7QJslYOAuk5UuX2pVVoMSqQObT4d RZXRi48WlLnpeliYCwDPKgstQdnzRvUMsarSn3BMmYPc3mpH8PEfrQJ6cq6Jvm0+LK+u 7lt5fWYuwWCGafN1kwYGiJUUsESz5KlCZedXx3g/DVaISARQ1f2o+PNPG8lfDMtyyy+m 6+mBSoM2Ovack6h1b34XrHE6JyERGjugvxOF4mgrTYMl+HC2zsU54OqhD76sLVuyWGot CXxuJMyu1cJnCx3/TB1NzO/e2WChXfGhv82YAH1ee9MB/Gw9+wkfeOUppsz9Iu1dE8fh vGcQ== X-Forwarded-Encrypted: i=1; AKwUvBzj6r5Asr9UykumEQPp33T4ptaNSHxZ4Xy2/OghlRGAkUNSL/6MkOMkUPyIqeS6vc9XZBXRWc7IIaONp6g=@vger.kernel.org X-Gm-Message-State: AFuF++m+mV4dUSisY2qt9Igf7Iu01fMFDJOuu4CcdobsswJ7zEoREMb6 A+eB5TRCAcNlwrk2vcf7QNkwhnJQiIIAP7UO3iO6dTsiYwtME1lGa2iY5txCCzjvUFFFTe573nO IBA4gBhPKDo/mIZ7oaktGiZ/Wlv20OWUAR7M4m1BxB5eOoBQGOPxyLTL2YwOYTO6824c= X-Gm-Gg: AYBFou0hYMyLO91JTJFDb/MLmCBUnLfwuOwXBRN8wubBModg0k614xuyZTGOJBI+t73 TBdL+LSWTmNi/pA2eXsDRp9H/AW5ILlgR3q4LyFOvwyUt5Moq1B6utSalWmWY/9T+utFrHuybil O/smgQtO+yRXQIJqFCormTD2Bp+DXW7ri9VWVEIxY/RS5yko22r4GQ5RkHu2Dbd5Fn/lYM8q2Hm Eb3qPQBaLVHI7X3pne2JbST7QZl/LTzVJ1X7guYM0ob+PzVOVXYyHjZvcFGFSrgEBb16fI90Cye 4j+ENLqBpxZ777Vt/eOKbLyUPLlLGAPWGiDnhte9JRFQIfciBeq1dPwC4+cjHVHd2/X43+01nxM 17Kq2npgQpXyvy8JNuLxh+YjXbW8= X-Received: by 2002:a05:620a:701a:b0:939:6a:a71e with SMTP id af79cd13be357-93c15d9198cmr51500485a.21.1789995517570; Mon, 21 Sep 2026 05:58:37 -0700 (PDT) X-Received: by 2002:a05:620a:701a:b0:939:6a:a71e with SMTP id af79cd13be357-93c15d9198cmr51493285a.21.1789995516945; Mon, 21 Sep 2026 05:58:36 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.58.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:58:34 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:10 +0200 Subject: [PATCH v8 01/14] crypto: qce - Fix HMAC self-test failures for empty messages Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-1-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5101; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=jX9qpTLTDR3AaV4kn5vvkCsyHxUfD9CKGQiGMuz5O1k=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSnpKMr0GKcipCGu6A/xXU3+s4jILWH11Wy41 bfqvpW4YXWJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp6QAKCRAFnS7L/zaE wy0ID/0eks3hQCOkIGESPYIE5stJ9pm/DA4xm7WQg68PVBkYI+8GYf/LcZ9ZXfr6/ZkPJaGjI2Q ECuu5yxvPd7nCrx20jP+4KCpil8awvPxhelx2JCO+nFFP8E0FMzlpttIjZMzhWmpeXOGxSSjqc7 /3eSMLjfW3kTeNru1b1CI+rzFHvFwnAuqC0IZygeBEhjtEKz/jdVJbmbU4Aw55EpRuILXYeJL1U jKOGTHZBy411/RDihZl+YZk9Mk2Cjb7JRjU4XkUuHq5SnNRO3f1aY0uuUV4CkbeazEx4hriAPV1 6G2CU+ObgPnPHfBvsGWylUR19fsDf+KlEMFPfP+BQtMWo862pwgJKaBv0s3PSi7VFzXD24QzgTs JojKN7fACTyxRNEYUyrep/N9XUIwt8TGmmJhxCWzTCjshf2lRjNCRt9s3oBDDrrTvdSk2oW2eSy V7mR5l63uScc4c1jWGd5Q23sQRa06lXbrS0QTfRKk6YtGAIBX9mu3CB9qRRmJsNVvozf9Y9PtKq QPA5E1qq3Ss6H2PRliC84nvvtKV6g6Y6xBrJxM0nYZeC7wSSPwJZm1pzHlMyfmpikCpM8RMnRG1 SmsTeplkbfvig2gjVosd0W5E2gVW3huwoLVeZKIWiQQ52C4OgJN+C/kyiojbdsPlJge4aQl3K7N NQFavh9VkQtBAWA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX7FwLg7l/rHRa leL4oKriUm+RQo+9kG5qR9GxAC/ZlenNNWRCc/8DYrih9c5LGwGCgt0pRH3g52n0D52YRv/tX4F ibwitGWiaxk72B9XEnojLCUFFPFF+UP0/ns+HYtiKU2Yb9GaVFS8nFGUzZkyIkkyB1zCPemhmWy KEcp2gddZF7jR/5YIHT/Mi2rTTOHgDz2CXXNUrmQlJZPw7hzq4Ekq9cXMD/8AfdS/3rYiNEss7m e3kHF+O93wYd+C0kkuBAtqSf/roqTTQF5+vymw3LBRMTXUOfXRu5lgNljt0PCMvsxXYHeqCdZUx BbVLzKgNuoPNLwMoW3WuEtSZjElB0Ro09hoIMZQv8tjVhcnACd4HOGBNzdfEZMg6eE6ZFP7UrQW BPZc3ORwgvilBFXPNnJhzKCCiWFquRdV0SlmAR47VDoxcY+nhU3+ltwvqR0pFfhBa7rluuc6Sgq lvK6vTOWIn/cIU9ACZQ== X-Proofpoint-ORIG-GUID: J234b8RCz_6bFHnH6hnVLvMCA0mbLi0P X-Proofpoint-GUID: J234b8RCz_6bFHnH6hnVLvMCA0mbLi0P X-Authority-Analysis: v=2.4 cv=dakVTnXe c=1 sm=1 tr=0 ts=6ab129fe cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=7HxpRQPu5N1oW2hdKb0A:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX3fUa5U0PYtU9 30TfgHfKJJ3/GLiksU2usCJP+8OUxSPmosg0yrOItgKaQ/7BATvV+WdtZabbOH9oV2E+fm+u7u2 7qiXxX4fgXSrCKYWo5nWZtFvhcbpGQY= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210187 BAM DMA cannot process zero-length transfers, so the driver always holds back at least one byte to submit to the engine and only ever finalizes with an empty buffer when nothing is left to submit. For plain hashes this was handled by returning the precomputed hash of the empty message (tmpl->hash_zero), but HMAC's result depends on the key and cannot be constant, so hmac(sha256) produced an incorrect digest for an empty message and the crypto self-tests failed. A zero pending buffer at finalization time does not necessarily mean the message itself is empty, though: the caller can also reach it by importing a state that already reflects some hashed data with nothing currently buffered (crypto_ahash_import() followed directly by finalization). Special-casing only a genuinely empty message would silently compute the wrong result for an imported state in that scenario. Handle every zero-length finalization consistently through the software fallback ahash instead. When nothing has been processed yet, let the fallback compute the result from scratch using the key already propagated to it via setkey(). Otherwise, reconstruct the fallback's running hash state from the state kept by the driver and finalize from there, accounting for the HMAC ipad block that the engine absorbs internally and that never goes through update(). Cc: stable@vger.kernel.org Fixes: ec8f5d8f6f76 ("crypto: qce - Qualcomm crypto engine driver") Tested-by: Kuldeep Singh Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/common.h | 1 - drivers/crypto/qce/sha.c | 58 +++++++++++++++++++++++++++++++++--------= ---- 2 files changed, 43 insertions(+), 16 deletions(-) diff --git a/drivers/crypto/qce/common.h b/drivers/crypto/qce/common.h index 9cd2e6ed8bbb0f76e24be187d8ae7e2fe2f7b932..587d349da91d1faa2bed7cd4883= 06d4358467b2d 100644 --- a/drivers/crypto/qce/common.h +++ b/drivers/crypto/qce/common.h @@ -82,7 +82,6 @@ struct qce_alg_template { struct aead_alg aead; } alg; struct qce_device *qce; - const u8 *hash_zero; const u32 digest_size; }; =20 diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c index 406c33532612f0b37300abfc9c8c13e43d0c0392..a9a55bc5bc310d82a52b5637655= 007990da5b7a8 100644 --- a/drivers/crypto/qce/sha.c +++ b/drivers/crypto/qce/sha.c @@ -249,18 +249,53 @@ static int qce_ahash_update(struct ahash_request *req) return qce->async_req_enqueue(tmpl->qce, &req->base); } =20 +/* + * BAM DMA cannot handle zero-length transfers, so the driver always holds + * back at least one byte to submit to the engine. A zero rctx->buflen at + * finalization time does not necessarily mean the message is empty: the + * caller may have imported a state that already reflects some hashed data + * with nothing currently buffered. Handle both cases through the software + * fallback: reconstruct the running state when there is one instead of + * assuming the message is empty. + */ +static int qce_ahash_finalize_zero(struct ahash_request *req) +{ + struct qce_sha_reqctx *rctx =3D ahash_request_ctx_dma(req); + HASH_FBREQ_ON_STACK(fbreq, req); + struct __sha256_ctx core; + struct scatterlist sg; + int ret; + + sg_init_one(&sg, NULL, 0); + ahash_request_set_crypt(fbreq, &sg, req->result, 0); + + if (rctx->first_blk) { + ret =3D crypto_ahash_init(fbreq) ?: crypto_ahash_finup(fbreq); + } else { + core =3D (struct __sha256_ctx){ + .bytecount =3D rctx->count, + }; + + memcpy(&core.state, rctx->digest, sizeof(core.state)); + if (IS_SHA_HMAC(rctx->flags)) + core.bytecount +=3D SHA256_BLOCK_SIZE; + + ret =3D crypto_ahash_import_core(fbreq, &core) ?: + crypto_ahash_finup(fbreq); + } + + HASH_REQUEST_ZERO(fbreq); + return ret; +} + static int qce_ahash_final(struct ahash_request *req) { struct qce_sha_reqctx *rctx =3D ahash_request_ctx_dma(req); struct qce_alg_template *tmpl =3D to_ahash_tmpl(req->base.tfm); struct qce_device *qce =3D tmpl->qce; =20 - if (!rctx->buflen) { - if (tmpl->hash_zero) - memcpy(req->result, tmpl->hash_zero, - tmpl->alg.ahash.halg.digestsize); - return 0; - } + if (!rctx->buflen) + return qce_ahash_finalize_zero(req); =20 rctx->last_blk =3D true; =20 @@ -292,12 +327,8 @@ static int qce_ahash_digest(struct ahash_request *req) rctx->first_blk =3D true; rctx->last_blk =3D true; =20 - if (!rctx->nbytes_orig) { - if (tmpl->hash_zero) - memcpy(req->result, tmpl->hash_zero, - tmpl->alg.ahash.halg.digestsize); - return 0; - } + if (!rctx->nbytes_orig) + return qce_ahash_finalize_zero(req); =20 return qce->async_req_enqueue(tmpl->qce, &req->base); } @@ -431,9 +462,6 @@ static int qce_ahash_register_one(const struct qce_ahas= h_def *def, alg->halg.digestsize =3D def->digestsize; alg->halg.statesize =3D def->statesize; =20 - if (IS_SHA256(def->flags)) - tmpl->hash_zero =3D sha256_zero_message_hash; - base =3D &alg->halg.base; base->cra_blocksize =3D def->blocksize; base->cra_priority =3D 400; --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DEDF149BD75 for ; Mon, 21 Sep 2026 12:58:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995523; cv=none; b=t9PsZwn+08/M9c4q6Or9ofscPd+/vdsncaUOd8ZyczMW8DsnbVM8aO1ozrBge15nuhjydq3XVU/6iuVF5FC4vJEiSeySYJp2PnBI2JlCVb+YsM20bwSqEs3UHovLJgt8b2b8/7wevVAH9y8aC23VN0stSg7d9x0HlMXJlW4vfjs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995523; c=relaxed/simple; bh=fiubGOpznSBlWjS81EhUbY8+Jvg8mdIEbz8sZifJeJk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Sz9R7FPWFuCIoWSGv2V9NaS5Pe0Cx2g7QHZEksXNNzssL4xag9Fta8weaD8RX+cZEeLyOO0l5nEdhQmEOOoOAQNs1LQ9hlw7hQ1HNNv1mb/gzZe65d8PsAT4G1FkC1o5XwtQ1nkPtcBqoRzHFN3dJSaOCMSfY5eQ6GseX67u3rk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=VlRpau30; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=X7MUfdID; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="VlRpau30"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="X7MUfdID" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAdhIf227704 for ; Mon, 21 Sep 2026 12:58:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= skjmTwe/2/9vsGC6HLJTSQTIY2ObikwZKwuHsPTlEzE=; b=VlRpau30bHj0O0af bMiAMhzBP3oJ3f+PCA+Omm47zjxSPgeHoVPCynbxfHgavLE3pwCdR3fDszGGfCmB dMJevFWloWqUGqD6PSvaDak2BQdUAYY304Y+tZv33JcoF1iZMVAgDTx+sRv4eM+N QQ0+oKKdBl7Hq754yQno04gyFP3Ok9io4LuKBmvTO9knR0b8T44gIiI6yVtW0LnI DhUpmAkLhqEBESm4DnmaKPuu8saAm/qECqoV+VWoJaR7XPgrxUIKQHX2bugZUqxS D/wfgf2hti5DWeOcczvMHLc3uItPCTlyxNgXcL5SiWF1IAPBpun/CCG6J8YJfDQY tpWdqA== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gu17gs0pg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:58:40 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-93a3f673221so494423185a.0 for ; Mon, 21 Sep 2026 05:58:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995520; x=1790600320; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=skjmTwe/2/9vsGC6HLJTSQTIY2ObikwZKwuHsPTlEzE=; b=X7MUfdIDd9eg7Ap8LIb/9gI1kJSIFcMSP3sNFXPMa73kWNubSr29qtqtNXhLlPKzIc 7SCv6EqSqtV4CS3IR3qlfU5g35S2hSz7Nvi4WqAl3MS4GL9rarip1I2IE/rhddMkPY0H FUnB/V54kF3j9nPkEZB478+pR49A8z0WYKIzOS/TVotYgCOIPLefOAsueuzmQ+SJu2CJ 85UTQxu8OHP3nI04KV1dUtuBwyBnsWrlZttIODMqAu5Y1jzcEO59EznQ2QYC6gmF0xkK 91cEmgGDqBf+CDEB+mZROz8IJGvDSeboHWrfpqqpPUZQzOeJoRFq6JFQVIHS2unvL64c asuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995520; x=1790600320; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=skjmTwe/2/9vsGC6HLJTSQTIY2ObikwZKwuHsPTlEzE=; b=K7VfBd7wYffTZIPOVvl2fQeg59klvIzGeUV0zkX5MdEbnLVQs98LcWSLgcD1OoKb6T Yk0KEdtZABvnbE/oQoSQxhabdOgJKLeLOalmuvYTYsFm3jXnOO6WaBvHdi0x9rLrd/6G 7ajQPhVf24Gp2IoyNT3KCe6rNEz+NLBzb8i7WOAniRXUySKBni5kdzUhX/fZC0lubNb3 0kSB8K7/A/E/Ups0cX9sRPDsmchOXYP7/iCpIDENWYLiE1vaD6kdPWtnmSqW/FoQ4BC0 WDmbbuC32ywzZ2EAl2ONZpm8SlKMbTf9pQC+365Al+fiIPLdQYKeSmG8oQgNgN601Ueu Lo7g== X-Forwarded-Encrypted: i=1; AKwUvByRupHnj/XZCOacVGB6jfP+QLSLIedsO4KYlodjDe/9CfevGSc5alMhwiFh8kRxXodPZEsqx8wrHAIqWLA=@vger.kernel.org X-Gm-Message-State: AFuF++mt9HVRIscrZ+QK3+jXy3Q+g4wYgackYbkY/6FWbZgXllMJ9Ccf iudiSrGJ3R0EoAb3pvD9Dl/4WwMHdTHlGlWjxnPfwmX3q7M691sw50CtThbfR4iAmFeG4zd91GY qu5Rb4XLTmtUH4FoPVvuvQgi+uXX+HuPrqO/o3NSsRQhyhObjU4Aq7XYriwM5A8xwAoU= X-Gm-Gg: AYBFou2l6E/77DtpUSllyQzaHy3fqxqR0ye2Je3BJUPK5tWmNixp0/AqiPsCA0us7f9 SBU6hn108pWsZmyFXjGjc+idTw7s5is7CFOmKeycfkdBvkrsdeSaEkfKvuTTvVdi7Re5ZGMqd3/ bwCTf9y9ojmzeloITbznORJ1ZWw+MqcvHoVZrM3u6r2z+uE205W3RsxG04evZSbKKt1Gmx0xJQP Tgb/6Ckos3r0EJOrIIqN01EOLxfb5xADsHTFu6aQ9bucXAnakdiTRRRr9uBMveE79vzruYHkXNf k1Ve+XVSJgyj89IRsQLOc6U+5pNXNpUzkfHFx++VLh6pLck6M/ExtfkSTrV2JBYRZBUcQC6CmKz d97yanzTZURtkeFoOUMchgN86L34= X-Received: by 2002:a05:620a:711a:b0:939:6de8:43dd with SMTP id af79cd13be357-93c15e99f46mr46326585a.49.1789995520089; Mon, 21 Sep 2026 05:58:40 -0700 (PDT) X-Received: by 2002:a05:620a:711a:b0:939:6de8:43dd with SMTP id af79cd13be357-93c15e99f46mr46321585a.49.1789995519625; Mon, 21 Sep 2026 05:58:39 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.58.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:58:38 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:11 +0200 Subject: [PATCH v8 02/14] crypto: qce - Reject empty messages for AES-XTS Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-2-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1491; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=fiubGOpznSBlWjS81EhUbY8+Jvg8mdIEbz8sZifJeJk=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSnq7SZtnuJ3gKn76T2Cx+kF+kAxPiEDzJeO3 touwhyuOyiJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp6gAKCRAFnS7L/zaE w+B1D/9BQnIoyDi5SScYSIHdGc7bLgsPn4vN+50qIfkwN8ShCn7wuBF/r10UFpbpv79rp1kKs+y mL4qBlu4S4FUE9viYPuBAaIqmKY+N3+AjtL9a8mhQYlynycI0UxiGH+b7cgKPes6M9sSJkhr+9Y BMekYaS9+278rJDDmGEpkoQSVSOIH9lm1DR/McGD2YR2zhCBmPaT4vVA9mNevX6B/yEMSoan6he A/ZwZPtGlhimDROaIY0tz7eUJ4HWnK83FrE9JRu7N7N/di8gRBwaZ4xe+63DUGU05Qc9WNmD9p7 7BEetO5JtnDxQ+WqEdyfxls8v5oGiRZ8F9ZxAGAF+tiwYvY5+/YhihcOml14oj3cEHQlkzdj62a /QIOVdtmXDiFpJP6/3y5qsCwLRagVaYE8NXTfZtDCaoZeiEtdDNYAJpxPA0dKlP3fu48BXl4JYJ M+kdYY9KeavSzzclGlOfhbDo/SEDRXunAslSwus271IMIgFIQ+L2fcd6zB3hmREtIyAxAgLf16t ULmY9J64DZiAU3FisagvSDLX5Ne0cGPUn7t2RpQTee1P6gL9FN3VAJRUvXs6b/+b15uyiy93H+v F9hhxFFojcpp286Gbi6Anb/sD8NxVQwM8CNCbUAKap1yPw77Ina52qCAeZilBlDccYCdA8Qem25 cwPGQGTqnUzVFhA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: iAiBiOVS4JVKcVp61oqvK8D_pF6fLP-K X-Authority-Analysis: v=2.4 cv=IewSymqa c=1 sm=1 tr=0 ts=6ab12a01 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=kiYxeA6Iecqc4QeK3QQA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX9hopEuhLwyMu WCpBsMdmSsruVE8GhSAG/gfKv5HNBKZbftF8hific0aSy1dmuSHQUGaPMNi8uSYJeTIrpWpAepH pDEO6n0If8MTtnPBr8Qhs/1Dz7Ls72pchhPCZkGVZyJbhow28V9FNXSGYETht2lh4TnZ3R8n8Z6 ksqQEgHH/4756Avw7c1ams5idzADQLpUrJSShX7Pr2cmzb/QnV5C0eubwa1Cvrwub3H2xVI3X+W AgDrvUE9Os6ZmJwPB/y1XC43tewatw2HnMzJeN9i7a3FMOIi60hzx39ymz76HMEWWlG0JYEkF2s 7I+H0Ti+vVaSa7i36Pv3/nYoA2WscWiqFoPOZXtoYpeaOLPkFFWbSBGp0Uh1HfTMd2HZmsUtX2W pMhCXHSsQZ/JWbUuGCDTIZ2zArUYsC4Cbek1YyUZ7v0CE5rPloqP31Pot23QyfI8XAhGjW7Lt5l 8XIr2kZQCI/XeRENJMA== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfXxt6c6GuUSV1m G6MecMtRVnikeypxrN+m42NnHMa3xo2r+ohBgKFLVW4EFw/RD8kXNoT9ttz4x0OjLx6eydm6aBo yka+U/OjaGk80jqQh1gBXZ5LBbw+5Bk= X-Proofpoint-ORIG-GUID: iAiBiOVS4JVKcVp61oqvK8D_pF6fLP-K X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210187 XTS is not defined for an empty plaintext: it requires at least one full block of data. The driver treated a zero-length request as a successful no-op, so the crypto self-tests "unexpectedly succeeded" when -EINVAL was expected. Return -EINVAL for empty XTS requests while keeping the no-op behavior for the other ciphers, which the crypto engine simply cannot process due to its DMA not supporting zero-length transfers. Cc: stable@vger.kernel.org Fixes: f08789462255 ("crypto: qce - Return error for zero length messages") Tested-by: Kuldeep Singh Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/skcipher.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c index 84263ddbd62733f4d1ed42a2b94ae9f4d0d5c6df..b49c1aeb0d27d4798e3e3d0b302= 99f48ef8ae453 100644 --- a/drivers/crypto/qce/skcipher.c +++ b/drivers/crypto/qce/skcipher.c @@ -222,8 +222,12 @@ static int qce_skcipher_crypt(struct skcipher_request = *req, int encrypt) keylen =3D IS_XTS(rctx->flags) ? ctx->enc_keylen >> 1 : ctx->enc_keylen; =20 /* CE does not handle 0 length messages */ - if (!req->cryptlen) + if (!req->cryptlen) { + /* XTS requires at least one full block of data */ + if (IS_XTS(rctx->flags)) + return -EINVAL; return 0; + } =20 /* * ECB and CBC algorithms require message lengths to be --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A112A49B5D4 for ; Mon, 21 Sep 2026 12:58:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995526; cv=none; b=qPss3kMJ0qTGTjSEVn83NyqNaSMRlDsZNRn972W9YZZaLWw3rWhSNPjgR3nYl8X1X8YNmuGU1R3egW/4hHDCLexyx2gZrY+FcLLJuHFTF3NLMI7DxEGzmN1SNRR8i81yHdEqHsa7a6JLS0ip1PRCCBe/GF1mRMO86N8YKyNxl5A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995526; c=relaxed/simple; bh=eJoYIGrknQwfb1zrIzM2gHnxaMtp5z2Pvd8SEbnN70U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FedSQqt+glQzW/ybDt4sHGh2KuX7ES+kH0YcN6I1MOIDQCJ3VD0MB6LXYl5XojNT3ImS+TwQ7G8Q1eo7hzMp6ej4bURDvOBK8LCA3Phx82eW05vQmDE5RylhFT0KG9xjlmrKTgNAZ0ieP82IW+HxVUCdxRCzV948tvd827GL3VI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=IF7RZWwZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MQt6lYZs; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="IF7RZWwZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MQt6lYZs" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAeKMT1414493 for ; Mon, 21 Sep 2026 12:58:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 04OudQ7RvWkd5HBxT2dEnlvpOGA7uiwqEFqHf0RkyOQ=; b=IF7RZWwZTdzCAb8b 1FZdv1QNV6TuI8uF3afWvOGARYy4CtNOrnJ8qVa34gdikgvNgf1vAquKp82Jj08C kuN/kg5fOmMn0NuodLntHb/cw0A40x+uK8DyuROdA8qWvnWhWdHmdZo9ze8/y6sp oMNAmKu2iaTr+E+8aHtPbOPcj56G6X120rBZ6rX8SIlQBjjwqeKVHWydp/U9Omgx jyrLsj0A7JtJNV/gzgaOmZo7qcw45WuiY8/azf13rqjGNNC7aB4JzGJ3wIHKpzOl /3igA9QStw5Ry94zQWdh7iNfABdcHSFe0ED6smd5kZI4ZCMdSiaOwxbFl1CSGVMQ eQDqWg== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gu01d1ab9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:58:43 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-93a01d1d1b6so462217785a.1 for ; Mon, 21 Sep 2026 05:58:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995523; x=1790600323; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=04OudQ7RvWkd5HBxT2dEnlvpOGA7uiwqEFqHf0RkyOQ=; b=MQt6lYZsh5p5mx33sOCi3r4DSlrryvcjLVZCLN+qeBkuMvtg9DP+u2hVxpdDEyzIlS GAzEb9HHepgWuyWPFCknFxaidMPVcwq3FGecljNup1bvnSH8qnCnkaxCy6CoHlApszwB yUMosT7/KwRDbOBGonx26ScMz+u6aBnaGvTJCQZRA++7OM2PUH9QP+6wN9CGWd77LmRT TiWcNDNAJOLrIaKMRLI1+VLQSiqfsvyXKNG5gj3w8wIl1v0dKQXbBMkLztiUna4g0eEl 5K3ZoeaARNTTjsFUYZ5R3Rr3T2Bmy8gUJNZDyr/K72bLW184qSIM5Ty7tzyo+q+INryq U79A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995523; x=1790600323; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=04OudQ7RvWkd5HBxT2dEnlvpOGA7uiwqEFqHf0RkyOQ=; b=fPjkPKHlkEsrlTPyBJuzcEUabPRA1uw1RNsjWZ3D02Hmom+fdMu7DkSfYE7dEtrX+w 2wXihYH+Uk+XdVtx9J1+u7T26XvT6h0YxDGez/+fQ2NM9+SUY+uUVJnmSAkRs579Lk8i +I4ZYtv1SE5LARsf4KhQP/JcKu7EQe7e39eUqL09cz7SXqzgSeXqbRBbHfgOn/aKogqY Qj3BoZJiFamTe38h08XpKhRGdpFdHHn9c7F4RNH0ow/u3leRa4Knvo7vgufIGqF+dWgX V0tXbd/DzLwI4LTRaFNI2mLIqSnAj/ZTnRZdYKJ/5n0Oq7Qtv+eWxO2mnx5b/yqLks+x 0pSQ== X-Forwarded-Encrypted: i=1; AKwUvBxWLYOMyJGxaizTggyM1KDZN6gY9un1eo0S5mpQ6lv+GMfCFEwiw6xMNMKk0rU1pkl0pCVFlV7FK302utM=@vger.kernel.org X-Gm-Message-State: AFuF++k+8MyZ+h91M4ie5AdeUXkC/yiIrG8LT0HvP4FmQ61gbR7og9Kl HET88t1tmeez34KJT8UtDqUvkXIQ7igOkuEp4+ZJdMMeTnHlPFWttR3yOszuEd0rmvYbWKkPi8n XvNQKfiywiIANbDP6aoDxN7RX2IXvRvxEcC9Ph3y0sMng/PbGKVh00ltVLNhR8uGoAx8= X-Gm-Gg: AYBFou2t3Z1OrYdqUU4NN6aiFo7olbgvoHtng8k5puZwnOZNtEfVCQ530+dZ70/pibD RXyNAT8Gq3Ymr2Uk6h+FudPK1uLYlgUSWY6RMC/knV7jwzIXaTqdPVWG8NVep6gP+EUo+ZQjPDA D7wL49iSUq+ijhKNECYWX+IwbhPXr6eGrs27sd+R0DuisqptXBtk3BUesTC1gUP4NpXTclROolG mGP84rVLdplwCtdp8hPfxM+zZqTIedulEmsZLjKGM8c3Z991pesf59TNQeFNjmvYkHpCae2Bcki AHdGqTY9vFf2qcZRXcOy0TyxDA9//rWdauTVosk0lOsZsuQZWkywQItwgHXB9+aHsg0JTdLOSro 8tjT9QeZDXy88KCjt4gyldG5yEZY= X-Received: by 2002:a05:620a:288f:b0:939:8e05:27e0 with SMTP id af79cd13be357-93c15dc1778mr47008085a.1.1789995522884; Mon, 21 Sep 2026 05:58:42 -0700 (PDT) X-Received: by 2002:a05:620a:288f:b0:939:8e05:27e0 with SMTP id af79cd13be357-93c15dc1778mr47003385a.1.1789995522448; Mon, 21 Sep 2026 05:58:42 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.58.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:58:41 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:12 +0200 Subject: [PATCH v8 03/14] crypto: qce - Fix CTR-AES for partial block requests Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-3-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3299; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=d7WlPHrXeW7G7LyENFi8sr5ULS/pgYG0asWNnZwa7dg=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSnr7NXxogcEF0l4gf5+0Mtv/aOVOboqSDSHd mmcA6+YEHCJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp6wAKCRAFnS7L/zaE w/mzEACwVBiz0BKzCYUDJ6EVW9lHyjRzazToHaLtXR6ahUSTqhswSuAnRfsiQI1UlsU6SYOY1/E cQzENS5CI8zUFiQhjKPBY33I0jWa6Ol7drGyqT7M9ek9tz+yu5BqdV59gj1oZGL5KN42sktQQki 2ZkFTjlRaSptjEsfGy0+JzHSc49H6pLf1SHTYRkp5kiCZBo5MKU9mY0FiBrg7yynlRaGwLei6cx NJ/1vkBUGc/N2ZFch+v3NGK0WUDmNR9Iar+rAIIXfwLn5FJIkyBjolQ3KR7VBTHrsP+U5/ccDH6 /dzf8q6UtI3ZUxRAURikCtDMbp8gIgQyjQm7f0pbPO5i+F98KIOqzVl+jH9UJV710l2mjFMd6WL BwApRnWmzwzFbIxzf+o9jFkpS1Cy/nH6wsTEJq2oLqDHIuYgNM+/tPemG+2Oa+SGa6NI0yGOx3O SLBmnT9rCFdI+S6e0WydRVfo1T5J6GN0MUFRIZ9abZC+OfNGfJk4ik1UrJ99O4LifMRbPEi4xqF ojzhccB8mwdwU98wca2LODKSk3jhG6UgSpoeR6xXhiPRDT3nEazonxWEisPjPLQlv12bPa2Vj0I DIIZzuQQkKVir9cxOAxgZnq4TNJR9U8rz0HiES0FkG+GjFI9N79y8nvzyG3UpdkbTkbs4F6prrx u2oTTmA99bvk/hw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: 3sjwMn-zC1UUIzUyNqYUVU97G2DmKwsU X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX7hWU91cLzozq SZ+JA8cXWSopPmAmRVm1yzFpm49OKgC4mDR9Ml4aiwujh3xYWz6Q3OGRdHGFYFtK6IEkVi1RkEs VQwsnN/1uPl6MxSuIaXqDfMQhY2AkjQ= X-Proofpoint-GUID: 3sjwMn-zC1UUIzUyNqYUVU97G2DmKwsU X-Authority-Analysis: v=2.4 cv=Ht7jiETS c=1 sm=1 tr=0 ts=6ab12a03 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=Y2NcAOke46LZopEJyX0A:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX4jtutRnWCyEu FmfAZpGBksrW6vCxKZcPlKFmY9CPbEumNvNZHo/XwfSKz+wcAE24n3HuQyXvmYaQLhBup3Qvr6b 8sXt4eVpw5+8G2rcPDumzQ9qqy6fbv5OHsR74NJ+o7WPI9vYMUV/LparHVn9pEbnMos7+oI9jFM 9s0cZoDRHBK7tTe5g/mhMpMbIeI+IwNTtCgnLLj7TWIen2+VGl7/amITxSogtOpy9uZDwqe16w/ xhqydHo0D6H/P9qPg6WaDUrAbdXXRWn1sTlAk7juEaIorlYT+S14z9YTuDvFINGWbXTTcj+ANjE oiJUdpNvaBzk07Te6ePoAQ54nCXajPhVTQpv1G4YI/Oq10I+eQf1GF2HNzSdjxTAxrhlZzlpTTK RcR+L7IbxUEFWEn/I5SMdy6xlBy7czn9BUQxek6Z8IWhdSbIalfFKjivoShhdVsxi5QLKiZB9FH voJWrmYuvwipkQfmFkg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 spamscore=0 adultscore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210187 From: Kuldeep Singh In CTR mode, the IV acts as the initial counter block. APer NIST SP 800-38A, after a CTR mode operation the next unused counter value is: IV_next =3D IV_in + ceil(cryptlen / AES_BLOCK_SIZE) The skcipher requires req->iv to hold this updated counter on completion, ensuring chained requests produce correct results. Referring to Crypto6.0 documentation, Section 2.2.5 says: "The count value increments automatically once per block of data (in AES, a block is 16 bytes) based on the value in the CRYPTO_ENCR_CNTR_MASK registers." QCE increments internal counter register once per full 16-byte block(for ctr-aes) is processed. In case of partial request length, the hardware uses the current counter to generate keystreams but does not increment the counter register afterwards. So the counter value written in CRYPTO_ENCR_CNTRn_IVn later once read by software is one less than the expected value. Crypto selftest framework capture this scenario with test vector 4 comprising of a 499-byte payload (31 full blocks + 3 partial bytes). Error: [ 5.606169] alg: skcipher: ctr-aes-qce encryption test failed (wrong out= put IV) on test vector 4, cfg=3D"in-place (one sglist)" [ 5.606176] 00000000: e7 82 1d b8 53 11 ac 47 e2 7d 18 d6 71 0c a7 61 [ 5.606192] alg: self-tests for ctr(aes) using ctr-aes-qce failed (rc=3D= -22) Expected iv_out: 0x62 (iv_in + 32) Obtained iv_out: 0x61 (iv_in + 31, partial block not counted) To fix this, just increase the counter value for partial block requests by 1 and for the full block size requests, don't take any action as expected value is already returned by the hardware. Cc: stable@vger.kernel.org Fixes: 3e806a12d10a ("crypto: qce - update the skcipher IV") Signed-off-by: Kuldeep Singh Tested-by: Kuldeep Singh Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/skcipher.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c index b49c1aeb0d27d4798e3e3d0b30299f48ef8ae453..0a872beff4807e6e5af612e3366= 30ea7a36e203e 100644 --- a/drivers/crypto/qce/skcipher.c +++ b/drivers/crypto/qce/skcipher.c @@ -33,6 +33,7 @@ static void qce_skcipher_done(void *data) struct qce_device *qce =3D tmpl->qce; struct qce_result_dump *result_buf =3D qce->dma.result_buf; enum dma_data_direction dir_src, dir_dst; + unsigned int blocks; u32 status; int error; bool diff_dst; @@ -56,7 +57,21 @@ static void qce_skcipher_done(void *data) if (error < 0) dev_dbg(qce->dev, "skcipher operation error (%x)\n", status); =20 - memcpy(rctx->iv, result_buf->encr_cntr_iv, rctx->ivsize); + if (IS_CTR(rctx->flags)) { + /* + * QCE hardware does not increment the counter for a partial + * final block. Increment it in software so that iv_out + * reflects the correct next counter value expected by the CTR + * mode. + */ + blocks =3D DIV_ROUND_UP(rctx->cryptlen, AES_BLOCK_SIZE); + + while (blocks--) + crypto_inc(rctx->iv, rctx->ivsize); + } else { + memcpy(rctx->iv, result_buf->encr_cntr_iv, rctx->ivsize); + } + qce->async_req_done(tmpl->qce, error); } =20 --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 190E849BD63 for ; Mon, 21 Sep 2026 12:58:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995529; cv=none; b=L/n7hXrGAP5xSqguzAZ/CK9Z/S2RoY5NaZukck3e6GXwOQLy38EnMy3UN8nuNjgZZjP84yZ4a3Vf6Om7y3/pIG7QLOR9wQm2ex6jfe9i2M+UAvvq1YboJLYgF6FxF6ldYsTNPB4K48zR3MG8EYX5PMZiBljpSGLbNx9WC7FiVnQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995529; c=relaxed/simple; bh=tX3TRtZACxaWj28Vd3tV97Cdc6/vFpH99oExqmgwzeU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qCAWb421hqQUu0U4Ylgr9IMSA6gcSWAD8eC3q42eRMu96f6uLma1DUpKL8tGbzHpRkSmvHNGPTvzvVFR86b44AnKrWUfq5rUtKv2tC2R7mMpJwo+tfMpsYtyql9JRU3mMAomnzMJvtif6XRbLA5gt4BodS14YrFA5gETUrnH2nA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=XVEXkp5D; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UGRgRUUB; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="XVEXkp5D"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UGRgRUUB" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAe9JW419325 for ; Mon, 21 Sep 2026 12:58:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= XpAwiJrGurnLU7swiLYwHwGFQJ26CvgKoaprZ+5NHTo=; b=XVEXkp5DAQtxNROD 8TUtU71YXwpf5AycTK20Vnin9/bmIE1pFVdqOj6JCgTTLfymuAhL5Pzw+gvXXPfa 6qBZwmjjnMS2s6SCrmbzOTnrTxuiKZ2FdszGwgydzis+PRbZNe95gzgKPBSueEp1 LQW3i/XG65L5U3adB7WGsd8r7FBsDx9fnvnYqojixuaj/LUDGxa/WNJmwB8wWnXT PWWlKrNGr8MoI3ba9qTOMfR/Lwg/T2IEgENWgbmbe6qhAugJQaj5XOKOCvMWi5Zt T8STT/fy0abCjMBkoFRQ7ae5YgkkSQ1oJ32R190Np8rIFLL41qHUuFLLJmyJeoUO xKtKrg== Received: from mail-ua1-f70.google.com (mail-ua1-f70.google.com [209.85.222.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gtyxq9bq5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:58:47 +0000 (GMT) Received: by mail-ua1-f70.google.com with SMTP id a1e0cc1a2514c-9806535f8ffso3211462241.1 for ; Mon, 21 Sep 2026 05:58:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995526; x=1790600326; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=XpAwiJrGurnLU7swiLYwHwGFQJ26CvgKoaprZ+5NHTo=; b=UGRgRUUB9+jStogZu2EfFRe991iBMg1vmQf/dqki3HRku8pilfq/muKc9PqeEvJH6p rg1JyTnPxf6+TdFxzDsqdFeHGE47WXb2NggO0lmt7MmW78PgE7vqFrF6HN++sDOcUtTK VU1YlVj0QKf32eyCohXk0Ja+mMtvm5rU4swczNZaJcgdVPStrC3EXAcPj4l8ketmhpeF F+JDPzP8FBpRfocARdzlTTUMZ1PwdR4QOfLbAGoq+gCWJqj3VQ5iKICm5+JFBjV3m8TG 8pekeHXQdIfOvhAKvHQ+xTJ+j5mh/Wqey3llSMf3VFyQ5hY8M/gI9PnidmZrXvI0IRSQ qQzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995526; x=1790600326; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=XpAwiJrGurnLU7swiLYwHwGFQJ26CvgKoaprZ+5NHTo=; b=xlniVNuuWQ45o7W3Z2HOJKEkrDtWRc7paWJVMSNPFonZu596iGlRmuBnZZSM4DqgS6 mDXRpMD8O6layNXq+gfeoA6sV+00poZ98235l10PTeqWWhEEcmTB5QIvoUdWWqdab2wC H/W7d3VjYZA/bb0d29depewyvaMti7jy3DA3ZeoZ8TaYmnCQvs4EJbQpaT8yRe7WyoFG HB4XY7oGF0nkp8HFkrbN6hOJwPDz1kM9IJorxav+bgtrrccPkv/FQFB3fuhDPNNcwBVK kdc5ux09pMdn1g/bVNAut5XwLI/xR5VUEOSDCM24UXnM6sJ0TNbG/vg46LGuLIi5uPG2 fbkg== X-Forwarded-Encrypted: i=1; AKwUvBz/d76VvpUPGc+I9ybyMNIlZVglEgcVCEDx2oniEBA0IGLyH+KMEFOmTnVdqfVJab46olEYEN5d3qO5imI=@vger.kernel.org X-Gm-Message-State: AFuF++kWaYGahsafQk6G6EOA3GvOLJsQRBGLprxVPsa+ML4/yaqjSskv yiOkwQareqNY34XHAQx/PJIiFo4zy1rz4/1J0dLDTjDTbEy8HYEzrJ34mlTZu1cp+E31A8NvnP2 nxPgjAtG2lw4SXySXU+Bl7KFeb2wzQDtJi+A2aCTduqw4c/T3VZGNax1Jxoyah3gcJ2I= X-Gm-Gg: AYBFou16+esKYMJzDdHCHd7DVQC/eSl8bzvI2VTx1vtl2VlLB28x0tfCyNBvWjPgP9r Fm7oVTRHrhNeRBXwUrStX54vGkyWX0R4Ps5fqmo7LAg6Jswkk8ETZH9FKwhkZ5YGXlfR3vE5gak oTCET7PR3pQDCI7TTcvlTdAtOWIxeOBjqPEde6MvmuryZn/SPpVMmb5QQr6UBIIhYxspAHCfjpD SKHdC9vSPWDmj+eV/atUZB1GempL8ksJaxzQSga9Bmm7dj6OQGtK6mWOrrFkd9uSeZQzqmx0e2/ c3/HrBLvZtJaGTPRf/G3O/wC/xtzxsUIZ5tsHYySQiTDoDQjC3wl9msAIUcMUgZp5fn/oOucvvX ydTGqGsB5He02stGLbP1hxmDEs4k= X-Received: by 2002:a67:f7d7:0:b0:7a2:7d1d:5014 with SMTP id ada2fe7eead31-7a4e1abc3c2mr2942551137.16.1789995526286; Mon, 21 Sep 2026 05:58:46 -0700 (PDT) X-Received: by 2002:a67:f7d7:0:b0:7a2:7d1d:5014 with SMTP id ada2fe7eead31-7a4e1abc3c2mr2942535137.16.1789995525893; Mon, 21 Sep 2026 05:58:45 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.58.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:58:44 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:13 +0200 Subject: [PATCH v8 04/14] crypto: qce - Use a fallback for AES-CTR with a partial final block Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-4-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1764; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=tX3TRtZACxaWj28Vd3tV97Cdc6/vFpH99oExqmgwzeU=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSns+PyCyJuRQgL1Pq4op/UdD2lRhm347xN8M V4UnHO2zsuJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp7AAKCRAFnS7L/zaE w3FDD/wNFoyQNr83Tn26infnX20bDnq0HWlj0p9hHRyFBsmTz/Vvqh9gZQPoBEBJgM/gpxyuUto Zzc2LTGEeKRGbUHDqZ33V0j8ztXUomYGXIuMc3poo9qY719BaNA/cvaEbO5N4Tfaicjf5NoMFNg CvvSdWL3Z2qW9vBwmWkq8S3AdncjKl1yDtAkP1UQ55PQuWC8juErb6ITmTlZpg7GX4FghRV7+E0 cxtAQyuPeIV53SRAEnxI+zL/uL1A9N+6V0iuFBg+J4cSzHMRRUAW/WhL/n7nXgp923MSdjwsqmO AAoYOTVzifI+PCEEmTrqcSzZ3pKpKS7WZun0Mcb366pE3AHdyTSVnK0kbLrTPlY4x9gqcCjTUG2 kEbRUB7M+DQa8JNM/GD2YAg1HKG+3LmsywBDfsNmN15jIN9zqQc9EjsEfa4YdEBCqfr2DLHk3b+ 5QirXJjWmr91SHvrhXgnzEPh6FXyoUHFW1ncogy6t+KJFPLFf4d04PcXcz7Z5IdcD1mWm/BPNjB BF9rqSi8bwLSO0/QNm3QGEZmdOAM2C3W4ml8d0dE/RXdWqD4VSiqTHJMBfru2rOm42wihsRsaEY HnyqnDnZ65h+u0G6/8yN+sRXFqYNiNNZ4sQzkJ7VJlUSxV5PkLdZ0Vy9FCe55iG6UyLqXm9U4nL +OefrVqr8uTL35Q== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: FTHoDtFjOvrE4BdbEALhwEhmpVCpgkvj X-Proofpoint-ORIG-GUID: FTHoDtFjOvrE4BdbEALhwEhmpVCpgkvj X-Authority-Analysis: v=2.4 cv=OtraWC/t c=1 sm=1 tr=0 ts=6ab12a07 cx=c_pps a=R6oCqFB+Yf/t2GF8e0/dFg==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=vUpbTSJP45I4i0_vGVUA:9 a=QEXdDO2ut3YA:10 a=TD8TdBvy0hsOASGTdmB-:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfXzFLNS0H5pI+f gQKLusMFmyz6cXdHmwU0hXE8I7JHbpF8bKuk0PvACCSh26q2NZeGCZeDIgt8sQNVg+C/SFsGSLN AED9+eSdY9Gcj/exXLq92rsa3Kfs3/xr8MXHq2IJMH0evp1Zd3u2vDaC9o6o26+oH6dneD2uqF5 BPghyflo/Q8q1nFaQtFy7v4AlHOENHAiRWSPkuKKHKqCWaRo13nSxztVLdOjvaov9dYUPIzlvsu bg/PsAFz1zmiweZl58yR0VU5D2AWu8xbeKgLhVLz1nI4StoevU5A6t3NVKi4EXabYh/eXBCqmma a+VSaa6XQCroDS5nFhw3eVF2VzwsH4S6obrVrCj+M90u+pwyneCmxAiB6IXhMSnhGLkhENuN206 copYKo+KPMIEmxYI2AHkXvoSvAGoly0FktsBsBf4F5+07VZr4iviC3R70he7CBr9VpD8nenIBlc ypWRSKEzBwQBL10F7Hw== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfXwf3ZtfeGGBV+ fjBreDGHD+GCrVylptvfFn8VDgBEVnihfGrpEHlRQ6IZ38Ooix+zz4QxZhLudu08XMp+gSZ8+nj 9FvZXJ1/8wyFEcg7QkVcztDP1tOnd78= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 bulkscore=0 suspectscore=0 malwarescore=0 adultscore=0 phishscore=0 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210187 ctr(aes) is registered with a block size of 1, so the crypto API hands the driver requests whose length is not a multiple of the AES block size. The crypto engine, however, stalls waiting for a full block of input in that case, leaving the operation incomplete and failing the request (and the crypto self-tests) with a hardware operation error. Route AES-CTR requests with a partial final block to the software fallback, which already handles the other cases the engine cannot. Cc: stable@vger.kernel.org Fixes: bb5c863b3d3c ("crypto: qce - fix ctr-aes-qce block, chunk sizes") Tested-by: Kuldeep Singh Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/skcipher.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c index 0a872beff4807e6e5af612e336630ea7a36e203e..e2ca2f7a6eea1129edb724fe306= 59d55aaae8190 100644 --- a/drivers/crypto/qce/skcipher.c +++ b/drivers/crypto/qce/skcipher.c @@ -259,9 +259,12 @@ static int qce_skcipher_crypt(struct skcipher_request = *req, int encrypt) * AES-XTS request with len > QCE_SECTOR_SIZE and * is not a multiple of it.(Revisit this condition to check if it is * needed in all versions of CE) + * AES-CTR with a partial final block (the CE stalls waiting for a full + * block of input). */ if (IS_AES(rctx->flags) && ((keylen !=3D AES_KEYSIZE_128 && keylen !=3D AES_KEYSIZE_256) || + (IS_CTR(rctx->flags) && !IS_ALIGNED(req->cryptlen, AES_BLOCK_SIZE)) || (IS_XTS(rctx->flags) && ((req->cryptlen <=3D aes_sw_max_len) || (req->cryptlen > QCE_SECTOR_SIZE && req->cryptlen % QCE_SECTOR_SIZE))))) { --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 752EC49DB85 for ; Mon, 21 Sep 2026 12:58:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995532; cv=none; b=Mw7p2y64IDkdrEse4mzjOfDcKS6xlm5fKRpPJMsDuYjIp0EsJz7f8bwxwGmAvVdfK7gRqp1rcgnH4xHLE4EIyJfvUf1lg32ytajU8ji7Sbb3g8pseOHNsP5q2KTkpCx7Pq1VA9+atZNKh+YtTxeM3jvCerd2NKw9h5SL6EWbnQo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995532; c=relaxed/simple; bh=+q94hW+kiltzd6oZ8H14oSSW0osx3J/1PTA4e8Zi7ro=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PGFsOagoAMaHcFcYxocRdJOXUuZXZp6jRR/Nya7CgyLXA0eznn4Sguj+ROxTmnKxzSV0nAkr8XjdJAgPOFY/F+sIVbI7I3aCepZ15BL120ggUzMNOx8P9lT+lvlfYAtxBt6xo0uS70YMGNS77Rsq5GIIZG3+ygGTUReYKmDP4sA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=DLwFlDpR; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WtQYeD28; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="DLwFlDpR"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WtQYeD28" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAdt1S2091243 for ; Mon, 21 Sep 2026 12:58:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Apr68ly3hCT/cD0oaIKI9KYaRUniJ63SnCFjliTBbmo=; b=DLwFlDpRW/YNzVdw FrHwNY76mp+N7QpoKx6XjiIMj+bHc/lGGJOFv/TmqZ0irmg/6eeoCYt5A6Y5md3I FMdc12l1NRMvxfhLAc1+4U/tLmE1m44M3wZ2mGZr4fb8krMYU5TtXTB4KPc0oTOH TQ0Ue3b8XDm6Njo9s8Ti2ndheVp51aiMasLCIBKi5j9+gTKExf3Xoxxh3P3IyeUo ukTFagyvxke6VVUPTo/0hBFk++fybmYEH1DGz60EDcmZZZuI2+uAZnSQVp6EgWoE gRjvh96KXHn8ipuW32lth8Bx7+KG4RoqKX2rvw0crvHGc8sri4zWo/g7f10To+Et KqMhVQ== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gtt3wteh0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:58:49 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-93a1bffc2eeso243546685a.2 for ; Mon, 21 Sep 2026 05:58:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995528; x=1790600328; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Apr68ly3hCT/cD0oaIKI9KYaRUniJ63SnCFjliTBbmo=; b=WtQYeD28hWqD5bBRBHAAX43ZMr4RyaS/YnS1cZpP62EJ/cCVcd2VmcRkhxyqatyAp7 XMNj4/LgKio2ARiAuoZZ+dUsumcmMJWUdnHJ4e6FxtvAQy4v8jjdnOctqHgFJJs1OqTF nTMEZQBKjI9LAraqRLR7Xu4+roFUcAqaH7bT8iqE8wxhwp5DfA6UudIGrcHGmWwt7ehm wznXRzP+HsOQ85cvRu7lRyjWBb3TOe6ipUDdfb6gpGCFJfKxZtcHRwh1luFppLT6XIVN lpV2stdLERCImH5oT+N1IPgSFLsTnuG0adlve1LqIEAv9iWN8vVKayIHMRc/uKnOMtu0 bIFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995528; x=1790600328; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Apr68ly3hCT/cD0oaIKI9KYaRUniJ63SnCFjliTBbmo=; b=RVSJ7+/oGE9WIdabcgG8IrBkTiXNJjqSa/v09+y8sKeTMa6Ocr0Dm3rkIb6gXUz0vn OvzQ5hYJ4gYQVBREXLGDx0WnE1wp8IcUv5rlOjyoDkXYViN7TnYkU62XxngTqJdlZMKI oBoAOd8NM8+wqPcSyNeTVBG/ll1Q32v35CIj1mQNcU/WAmjTNmQv6Vl4hN/2ZZZGHVzx 52IWprHdEOI0OmweKBn7BeMbB1hHZFu4UcRlTQHDCR36o2cwc57spYu7UT7niNNqx1Eu VgVVSVCgIvL7ViCiuwwxvbS7fLRKpMUh90JPXaONMPKsbsYTkGTP3Viaqm88TfsEtGE+ UDcA== X-Forwarded-Encrypted: i=1; AKwUvBz7P5MDU7Ky/yNXtyxxVD9izDmZZfypi1Wvgu3c1a+vvCUQjp+l8cM+gyod8/cXwH9iURd9xfZ6yJgjabU=@vger.kernel.org X-Gm-Message-State: AFuF++lLTn+voVYsoQl0DdwpP5ChUUEFab85y2qp5l6aZVm3uNIkUD4h awq9AtgRqDBCLHg21E0KYATy9faCftCy5xAQs9lk07akG2kFfEDczXaMf7evDHZpAWYauTVMSJ4 qx91gO5fAhERLRzl/afQM/ztbGne2IfQNmwlYhvmNOF98VhrTI0LkYLaqVhvzSn/hKNg= X-Gm-Gg: AYBFou2X4HHFCyJFKqrh6TGDSA6LswhuQ6vXwaKRjG9iXFnqsKJmBGNeSXOC1UwuptC w3CUBbc61O8Py2HmZFLmpSxuECOKxFfS5nxqhKPnEL+9iPZEZWT9cwzAOjtCTxlONOi2Tlx5oZM pDQmPIRDdZot/pCbr5oHo3DNsHGmAjemtLr6EdS63FmfVHyMGay8lZ8Ksi9ZDnAKqGSuIED+9LE qCzSwkC0AvsUICGD1HaI2PK3MEJIUwBWiB+/ZP4Mw5LFmk9gfeg/ruhpQfU3gngRscdPdniHjyv eiWCOTV/svE+V+B/C5DaZ8WNRmAkxTFM/JKpnHfa5NM624XKjhN7o/ceV9vyBrmxKyriem5Kc0F W3Kmym7UU6XIRLIF8JEriQcGBxb8= X-Received: by 2002:a05:620a:288e:b0:93b:c279:2fc9 with SMTP id af79cd13be357-93c15dda27dmr44779585a.30.1789995528601; Mon, 21 Sep 2026 05:58:48 -0700 (PDT) X-Received: by 2002:a05:620a:288e:b0:93b:c279:2fc9 with SMTP id af79cd13be357-93c15dda27dmr44776785a.30.1789995528174; Mon, 21 Sep 2026 05:58:48 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.58.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:58:47 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:14 +0200 Subject: [PATCH v8 05/14] crypto: qce - Use fallback for fragmented skcipher payloads Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-5-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2137; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=+q94hW+kiltzd6oZ8H14oSSW0osx3J/1PTA4e8Zi7ro=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSntalv0A4u6x2wLiP9tsPe+bVnenmBnDZTEi sFO8LmZ366JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp7QAKCRAFnS7L/zaE w+GQEACZttwFyotUQKFljDEyRe4igLp/89tHuFhol7EGvNxkCWVOkE8o0dIGGtgBzFlEZyH+Ren L2XNBJgH7KZxrEZw4txDVrX6y+dODBQ6467be1+9uuS5Ekn5vrtcIRLfGP+uBXa/TfoYXHR7uoj g+wbS1siKhyY7aA1clGthUFIpIglEgZ8BymfhP3coggLql9HVFTVIBPbwS0DY0df6T7/UVj50rF Uz7gS2+gz1TGqDXoTNyXNseiztBjWyVnGYQ+JfGelyA5qbJGjNDQtoMHzBB0WYdmjuzFlLCgrFn Npdhk96sesIt+0dnTTwPFur+M4RmM891qHXDaOtCFjrQmtG0driYLTLOXE+wDW2C5quDaXgoJSz cbLi6Hh87+HwAlIiriNOVyw+QZ68KugFY22VGpklYM5BN5IATNXmA1GhaG0LEUTUl7HOpDytxja NJJzPj4PCafhxMcX6YksGhA/1uhLnFf4HWgxzAwJWZnCo3Zf3t8jAtN7bWY09YxaKjpLEgb3+7c ma21hCkFl7pu9gsNgjPbgVdDQ0vbFe9hNMs/tkYm2ckq+tqmaKK5uj11C8m4Fl9svSfIeLhHB+8 3vW1Yw9A34S39gu42KjICzuHKmvoAoQKcO4GlCOgKvizSKjiVrVuXmy+u5Jvr+o3Xwhppx5Idfw sMiF+eju8KO3Tbg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfXwg/4CNwqDkIf sTNXWsBVTZZso9Bb6o1eOumSdOQyuhOu22uC16BELgfddnJE6lUJpU1vEuPhILxmQKpvNGjxUQg 4GYF36gxcK1KibzS++KelNr87S04BYW3NFqQrZf3X+k9LylklfAFJzTeoHqnWRH52WviLC6SCSr 43UvMK1JIlOQ/oXntTWW6qw9URWBei278cFtY8Bm/hN2pRSXuO/vDug6TWhBnA1rSkGD1We3P1D i9DXf1LRsisBZYmamDakQ29QVKu+D0GKqqFN37cV6YWU9q4S2OU2tBMdjiCMgcGo5BT55B4Dpsf CzTlN+WiRuejm5AmmT7jZolARSs4W8QLmjeFocioIxJHj8aOgJT6vidtOXWs+92r2IlGEbllJJs RdoMG/Yvpsz1pQAX2vm+JJgdGFj+0sqzs3LuvGVV+PQ5uwjTpiSZR1Qf9muRwc6dTV5fbTeNljh id2BF6QLM0CrCyrqQHw== X-Proofpoint-ORIG-GUID: kHBIXmd6g5h69ra9pH-ickFTKn-v1nAZ X-Proofpoint-GUID: kHBIXmd6g5h69ra9pH-ickFTKn-v1nAZ X-Authority-Analysis: v=2.4 cv=dakVTnXe c=1 sm=1 tr=0 ts=6ab12a09 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=2ArJjka39wvl4ErYtigA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX4Zl8DXOcVbGY 1lgyndfmW+0v0koiD1mq/zTUzWpxDmFf8gEOeIKsozxGzQAJ5A1UbRroZkYA/tg00fOjfclQ/lF /pHl1mzMkFnM16rgm4FWDucdVCu+Gas= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210187 The crypto engine reliably processes AES requests only when the payload is a single contiguous buffer. A payload split across multiple scatterlist entries makes the engine stall waiting for input, failing the request with a hardware operation error. This was uncovered by the crypto self-tests, which feed the algorithms randomly fragmented buffers. Detect a payload that spans more than one scatterlist entry, in either the source or the destination, and route the request to the software fallback. Cc: stable@vger.kernel.org Fixes: 25b71d61d631 ("crypto: qce - Improve the conditions for requesting A= ES fallback cipher") Tested-by: Kuldeep Singh Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/skcipher.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c index e2ca2f7a6eea1129edb724fe30659d55aaae8190..4b7545e6aed220b7fb5af7dbf20= ab47db5d1d180 100644 --- a/drivers/crypto/qce/skcipher.c +++ b/drivers/crypto/qce/skcipher.c @@ -261,13 +261,17 @@ static int qce_skcipher_crypt(struct skcipher_request= *req, int encrypt) * needed in all versions of CE) * AES-CTR with a partial final block (the CE stalls waiting for a full * block of input). + * A payload fragmented across more than one scatterlist entry (the CE + * stalls waiting for input in that case too). */ if (IS_AES(rctx->flags) && ((keylen !=3D AES_KEYSIZE_128 && keylen !=3D AES_KEYSIZE_256) || (IS_CTR(rctx->flags) && !IS_ALIGNED(req->cryptlen, AES_BLOCK_SIZE)) || (IS_XTS(rctx->flags) && ((req->cryptlen <=3D aes_sw_max_len) || (req->cryptlen > QCE_SECTOR_SIZE && - req->cryptlen % QCE_SECTOR_SIZE))))) { + req->cryptlen % QCE_SECTOR_SIZE))) || + sg_nents_for_len(req->src, req->cryptlen) > 1 || + sg_nents_for_len(req->dst, req->cryptlen) > 1)) { skcipher_request_set_tfm(&rctx->fallback_req, ctx->fallback); skcipher_request_set_callback(&rctx->fallback_req, req->base.flags, --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EEED549E125 for ; Mon, 21 Sep 2026 12:58:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995535; cv=none; b=WjSwCC5YBSBY14rP0PVDzKQD/dwEgapSL/hjJsUHGM20kxtyQl3F6qSgNRjx8DlrjjFJxX5sWUf2XyOfNtWTk0NCvUXxGzANTG+Ui7kpENiz78GegpfQVT3h1a39E931XJObIUxbCjPDn1hUzqnoconaKY4IyqBXdm7hrNagV68= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995535; c=relaxed/simple; bh=KW1xboFDIw7GUw5/K1L/QGR8hCZPAPAXS2iVODYVr6I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Z7bfZwMA5oX3scIpojj89+v/GMxJW5layB9m3u15NPxyZ5q7/uLwiyXjpohIb0W2UwKUvyQc5bdcCb+kmT2lmPlHC1y1JCHv98pzbjmH6LF7NH44rae0nC4SSakP5AlDMsCYDJwlmUKX1dHoGCv4j21UJqlEVZJ0TtpI7CLKag0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=mvzE3FyQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Wqo66AvW; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="mvzE3FyQ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Wqo66AvW" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAe2fY287522 for ; Mon, 21 Sep 2026 12:58:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7EU+wkow0wdDIWrKXMXcNY/o+lSeS9qvjpj3PNv9N8s=; b=mvzE3FyQb5phIviS Lttt/eiAx5l5oZ+zXOp2Iqdy+/8PP6bDNk0FkDQcQUzcFAX0s/5EdUlm6YpY/VHl seXXzQ6TNY9+aOih+z71Teu4mHHe7y88AkgW+HMLY7KDSNOsw032CWP3xIeMniUD FPISZPyVvzR2D2aCVvireHFrc2GuDW02sAZ+VJlgtBJ7AOTCqruupi7tOwnCUjbb k8PSaPdRY9xm77g2qUe6zI3y/GNg2EqyCVvbafgkxZ1I9mig7n4jOuKIjbiboPAC ae6iNokv591RAjmaHLoqQG6jGFJjmoNrSvjVTPweDzFLuj6U5mo55cDsl7SZRO3I QJ0Aag== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gu0rj152e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:58:51 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-93be1861d2dso450444985a.3 for ; Mon, 21 Sep 2026 05:58:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995531; x=1790600331; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=7EU+wkow0wdDIWrKXMXcNY/o+lSeS9qvjpj3PNv9N8s=; b=Wqo66AvWoCwBxvsKnjP77iP4gc7DDxxMH6s+EFARecB+K0v57ieDuX1uJP2PxS8Oag EDgh5NX2ml28UtIZpQfb1y3yo9VX3LxrY5s4YOORIL33pkPKQGdQzjr1zopGt+9wpeTM qAGGD1KojqNUowxL4RupDaLAxYz5JTZ4knDGPF555KbpX+skgIKCqNRfjcT2HwaOE/LR GhO3MNDKx/wfIVVRjYtur8SieiXtMEPFCk24osCLTTU78hMWEBymrBLuScAJ3gUKb+Xa 7qAAPYEcow0FhcXiCPAs05S4O9IGUUF3C99aXs33R5y4lhr3zdm+vg/CDJBCWKMlbjrE 723A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995531; x=1790600331; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=7EU+wkow0wdDIWrKXMXcNY/o+lSeS9qvjpj3PNv9N8s=; b=iAzpBmYaQpDJxTcX4zJPmom7rjN3j+yN6uW9ci7KTUBzIysupwWaYL3paCz9DXowMb LC4lLVkqpkSqSzcPnCi9CBGFF9YZFcGm9vleHlpEUcb+7d2i8At35k4vuf5Z0TcvU8KW hJOz5ILO2XivSEaJsKfB1f7PtgdD8CPWdm4QM8sOaqgI/U3pklSngeQh+gOqXJ5bU2UE 9SlANTeuAc4xnhOmw6yQekFesCq/oM+bR/gmHVLc9+Y3HzDHW2yc0LMSkevfKAGwV5jK EcGEi8Mm74OWNPHXt0brvmSHMQowFbvqFmzIMcTe66IXt5Dhg+RyqQAbI3DAgJQPNZvW bgUg== X-Forwarded-Encrypted: i=1; AKwUvBwZ4S+8B2nea/ksPyMSldcshhAqj6fvcMyeMXI2yoh6jHdZM7UkkM/B5Q6r5f9/FEwX4eJA/FMXsWxGusk=@vger.kernel.org X-Gm-Message-State: AFuF++nH8kQ/2C9X9V+PzdvkabyE0y7OXtliMes7+6Kn2iS6f6TSx0eY XJaxKwyyfa3MDsxqm9YaKpZ+q1pbLBZo82G8QhEZFFRtcrPapsohlV1Rs2BY/5lk6vK2QFvZeix /FyNm9sU8CTnKZwWsmOhqJVgl0zhD6e3p6eH9krRQAYhDEAPdtGmU+1ze+HBYnbcXWwA= X-Gm-Gg: AYBFou3vjrbu0RDMju2w/TwOjVE6l2q18NEFqZWCuFGixX7mGzZd4JcsFNG2YydlO+A 0bQhwK17QbENxvHpjQu6TSs9m2SS5VHo3suC1hl9hbI+eSM/CO9fvc7r5o0vPjJIBQWZhYpYl+5 PyjLOdsvKnPe0KZfJXo8jdNuDHZ8EGO5GKKXwbxzaiJnSevyhqyhjIgnFaWGCHMxL1arYnt0AYO KpIo6O956yNWFFuZt5MLwY9J77IZtaOvxzYF2oYZnVlD2UnmzA4XqAs5W3u5ZTyG6Cw4lluORbh wGm4dgmHb3P9icf6hmAw7Jdu44xlytaER3Ar3pVlZjyH1gbzwkjjipv1Vbfi8q5+410WBbjpfU/ LPp84QX8Z29321tcx8475LNNri80= X-Received: by 2002:a05:620a:2b8a:b0:939:feee:630 with SMTP id af79cd13be357-93c15da20ebmr47385485a.30.1789995531171; Mon, 21 Sep 2026 05:58:51 -0700 (PDT) X-Received: by 2002:a05:620a:2b8a:b0:939:feee:630 with SMTP id af79cd13be357-93c15da20ebmr47380985a.30.1789995530752; Mon, 21 Sep 2026 05:58:50 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.58.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:58:49 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:15 +0200 Subject: [PATCH v8 06/14] crypto: qce - Fix xts-aes-qce for weak keys Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-6-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4152; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=LHxn8qZQ7172JYTQczFIpOi+jAmwYv5eGxN5U2DeL2I=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSnusXJ6mTA2dg++3IzzyqwVSxIsPDRSVAq4i 1m3jU1alFKJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp7gAKCRAFnS7L/zaE w1aID/9ZmjDlAMsP0M5cpuf554DLhUGaE4Lowr2sd3k7pPhqfNfXWruy8SC1J6hISelxpyn6o1M taFwiXJ8fuSwuG+nO6Ft9ZCTltVrsLdCz0Sl8bgO3oXvqGFDJ620hBdlNLFckAGsJ/mRDHG2VKM 9w5UpUVpehVIQx9K1ra+QBioFXjpk85MiOLHe/mHQbNGMn+PFc67dvJESO2CbyY0MIKydcawIrx sPz1Jv8/RW5tKQPxAH/Ij3I/NnG1d1Q5IgYxMP2FqMnTDejyLO9wyBPqpi0F76X7hPfaKUwbuqL YG2x3dVKOzgWBb08lI2zfcqya4BwYoMFlU1f5eeqzIKttRmNmqr2xFN4/Lx4np5hbeOZfG+waow tenwoWzlXp8DlclrFNn87Dec6O6/+FZ/opUhzulx61KoYGWRXPwnk+oU/QupOflQVu5b8vYWl8M yoia0TGCwKhbsbrenvXSIU5u7kA8A16aTqLqHVZbiip/X40P8/b4/zbth4cXFm5exYGVkD9GfST 1FQUbtZ+noH2ykXe5aCkkoahNXxsVmvXz65eTNLOt+q/eNLAu8eAdntWYnKOaeD4M76jaVF/ekw rbypKAoQ7vRPz3soFJGlZSAlhTvK1xIIfh1ERCqsJJCylpShh7+08MWQpaCh5HNYq5/BAu9SaUW CJqgrqYKAc+D18g== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX43dv6fjXl+hz wY3BoXBLKdnfpy5T5aJ0UcMgEq9InLBAbPaq7bsq85dp4GXSd/gHl5LCdx3ohslkxopGb6nDXh8 qh3EW52M1WRDWVbWjRoTgTchKNOzfso= X-Authority-Analysis: v=2.4 cv=AsR7T+9P c=1 sm=1 tr=0 ts=6ab12a0b cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=tpKvEUOkdOp8HkJiz7sA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-GUID: nAjl_YoTarfhUjNvdP13UwihHZCtt89Z X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX/ziY6Zx+MRMb tIaZ0UUKLLdQuqjiJisVC71nfiUtOqZltXkNIK6RTUOk8fNEubihQbDREGhhMbohrZlfFyHOEwt WvkhosbefW/A0HIs42fxpohC+1EEWU5O2vjSXccUVZ4QY1ssg61mSnOSZJjfgJc+keDJ/QAJXbK +a3/FqjkRxO+UdMQNVDtVa9s5iqdjAB87+uwkcySzvPuTfCcIb90nvvbeDf+gv9prV8fwDDeW0n 4ESlREXQD9FCZ5IybIVsfejT269tfce27i9OJjTAp+MVD7gRIQI22a00wOvtEzqSwEp/yWUnG8C WLvGrf4BB4TzN3ve7ozYvJUCmwKGjRhZ3MU+vEJR/AZjthyp0YBoNU35p8v/BZnhZtFA6hPPya4 yoZT21b3gj3AGA/ZyIc4towXI554bB86O5tzpsm1BOR04S3Cz0GeDjUMLuf+Df5KCRZWVm538Lk HwFlwZk7KEJzv4Xaosw== X-Proofpoint-ORIG-GUID: nAjl_YoTarfhUjNvdP13UwihHZCtt89Z X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 malwarescore=0 suspectscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210187 From: Kuldeep Singh The QCE hardware does not support AES XTS mode when key1 and key2 are equal. The driver was handling this by unconditionally rejecting the keys with -ENOKEY(-126), regardless of whether FIPS mode is active or the FORBID_WEAK_KEYS flag is set. [ 5.599170] alg: skcipher: xts-aes-qce setkey failed on test vector 0; e= xpected_error=3D0, actual_error=3D-126, flags=3D0x1 [ 5.599184] alg: self-tests for xts(aes) using xts-aes-qce failed (rc=3D= -126) In general for weak keys, - If FIPS mode is active or FORBID_WEAK_KEYS is set: return -EINVAL. - In non-FIPS mode, Accept the key and encrypt successfully. Since QCE was returning -ENOKEY for non-FIPS mode whereas the expectation is to encrypt content and return success, the selftest saw a mismatch and failed. There are two problems in QCE behavior: * -ENOKEY is returned instead of -EINVAL for the FIPS/weak-key rejection case. * key1 =3D=3D key2 is rejected even in non-FIPS mode Fix xts-aes-qce behavior by using generic helper xts_verify_key() to reject keys early with -EINVAL for FIPS mode active(or FORBID_WEAK_KEYS set). For non-FIPS mode, since QCE hardware cannot accept the keys, use software fallback mechanism to encrypt the data. Cc: stable@vger.kernel.org Fixes: f0d078dd6c49 ("crypto: qce - Return unsupported if key1 and key 2 ar= e same for AES XTS algorithm") Signed-off-by: Kuldeep Singh Tested-by: Kuldeep Singh Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/cipher.h | 1 + drivers/crypto/qce/skcipher.c | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/qce/cipher.h b/drivers/crypto/qce/cipher.h index 850f257d00f3aca0397adc1f703aea690c754d60..daea07551118d444d2f749588bd= fe2ae2c6c553f 100644 --- a/drivers/crypto/qce/cipher.h +++ b/drivers/crypto/qce/cipher.h @@ -14,6 +14,7 @@ struct qce_cipher_ctx { u8 enc_key[QCE_MAX_KEY_SIZE]; unsigned int enc_keylen; + bool use_fallback; struct crypto_skcipher *fallback; }; =20 diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c index 4b7545e6aed220b7fb5af7dbf20ab47db5d1d180..35bd59656931c5f12614405490f= 1e254849b9eb5 100644 --- a/drivers/crypto/qce/skcipher.c +++ b/drivers/crypto/qce/skcipher.c @@ -12,6 +12,7 @@ #include #include #include +#include =20 #include "cipher.h" =20 @@ -194,14 +195,17 @@ static int qce_skcipher_setkey(struct crypto_skcipher= *ablk, const u8 *key, if (!key || !keylen) return -EINVAL; =20 - /* - * AES XTS key1 =3D key2 not supported by crypto engine. - * Revisit to request a fallback cipher in this case. - */ if (IS_XTS(flags)) { + ret =3D xts_verify_key(ablk, key, keylen); + if (ret) + return ret; __keylen =3D keylen >> 1; - if (!memcmp(key, key + __keylen, __keylen)) - return -ENOKEY; + /* + * QCE does not support key1 =3D=3D key2 for XTS. + * Use fallback cipher in this case. + */ + ctx->use_fallback =3D !crypto_memneq(key, key + __keylen, + __keylen); } else { __keylen =3D keylen; } @@ -261,6 +265,7 @@ static int qce_skcipher_crypt(struct skcipher_request *= req, int encrypt) * needed in all versions of CE) * AES-CTR with a partial final block (the CE stalls waiting for a full * block of input). + * AES-XTS with key1 =3D=3D key2 (not supported by the CE). * A payload fragmented across more than one scatterlist entry (the CE * stalls waiting for input in that case too). */ @@ -270,6 +275,7 @@ static int qce_skcipher_crypt(struct skcipher_request *= req, int encrypt) (IS_XTS(rctx->flags) && ((req->cryptlen <=3D aes_sw_max_len) || (req->cryptlen > QCE_SECTOR_SIZE && req->cryptlen % QCE_SECTOR_SIZE))) || + (IS_XTS(rctx->flags) && ctx->use_fallback) || sg_nents_for_len(req->src, req->cryptlen) > 1 || sg_nents_for_len(req->dst, req->cryptlen) > 1)) { skcipher_request_set_tfm(&rctx->fallback_req, ctx->fallback); --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 174EB493D58 for ; Mon, 21 Sep 2026 12:58:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995537; cv=none; b=Q1S0KgOUFMtH7ugnFLcTnOaOWtuuFLvqu/kiHL6x803DE3WOCtB7fIOSWwVb7fCpBDX7d1MQTAtz1NVSTN7J7E8ihTZn0n9+GHaXbPipCXA4UXCe1vj8mm7JnSoo4ki2yagfdbD93gPTZyKqszZ4ehUOSPs6porKqnfKpWDLv90= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995537; c=relaxed/simple; bh=bR7rcpx8onqzBSepmnCRtUu5K6IkMCBMdI6sMN2Sg+Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pxPDjSCAQ4Lm2YaPaigjl1TjFG1KFZqUrHKC5p37Gxhf22Taw2ggN950/8WcGlCcoxe1/uEnMj5FU6JC7Mv/vK2eF/O2P0n7frMssAmVfSRecMkJQElsyY/1H1inIcqOJy3XHu2kCsyUGbfUkOVy7/jVb1wpBJx+EvOGaORy7NA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=lhAMprkZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YUmedBtm; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="lhAMprkZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YUmedBtm" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAdnof227909 for ; Mon, 21 Sep 2026 12:58:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= y8KgtcfuuaZKDzeqQLlE1f7UrQdF8/SBl/S+AsYWcQ4=; b=lhAMprkZ5Gd+p2Bl zapGRykvf7aKToBxc8zGNoaMhaBWSB7L2eti1GKQO1p1txhBuow6ejUZZ1XL9eBr /FWu2c0eyBhxHScIFHpIrC1+NW7y3Wd1KSuG0Lnuxwop9jCFOl8Sk7lk1GlUvizT 5MEee0gSkgZU4CO1m0ygK8Q8/iRXSnB5PLtiKwEfEvGtuTbei+T79nS7/K6u+BpO LjyqPGy6FLGh/P9b56TjF6eOAPR2Gn1jkoc/9k4t8ChMwH7bvmFYh0xQmC4L+Yux mQ0U/ur8lFHegpfyiRV+GLi0hwglZleJanjGFvOL2lJ2j+rvStGzpTdV8eIk6Nv9 RB3oBg== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gu17gs0qj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:58:54 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-93a01d1d1b6so462240385a.1 for ; Mon, 21 Sep 2026 05:58:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995533; x=1790600333; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=y8KgtcfuuaZKDzeqQLlE1f7UrQdF8/SBl/S+AsYWcQ4=; b=YUmedBtmCXz7UWY40CZaWhGqi1IwgUist6GNt5C/oC0+JOzCTkL7UJYoDiHDYeVh1G YT9ArOl0PRDlP1SWMAkcu2IzJhjtpDq16RCu9K6M9Ch8Nj+ft0iW9UogX7jp1DpT0Ilu M1gTd4MbxveHiYdeXs5ppWLTCdARMnK4PY+69IKk9q82paFcZiGoxlFO3GwcPqxntMbT bEdRxCsEhNfGy/q8QO2lawh6OkshIJ5iaEwxWeaNkl4k6ACRNGQTr/eVXWnZ1EPJqMiO Xdo/Ib2xPI8FHjuecF15hVBCkEQoQ/4smAhOS6ptAu1r83VXyNvrc02p8gFTF+DWivAO 8Szg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995533; x=1790600333; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=y8KgtcfuuaZKDzeqQLlE1f7UrQdF8/SBl/S+AsYWcQ4=; b=pdFF9HVnDEYD2nvwVCnT0mUdlTyJF5v6oHSBh95/qZ9DecrihqI0dGGJuvu5hd+Unl 61f64Xy6GtFz8Kxw6zHqrClhpG7klT5YlxjT68AUKEPK0fvNiyW5390+DB+jdhQ/hvrz Ix0GoxCWqcU1B7Se4wRr9edR8vGgD72qVG1PG49MReF9J7txjM1hA0AbBUqqT73aEqLO sG5e9yJJaT7cExwEye++bKak/ejc/Dh92+HszD+fHkZzlSJlx5f5pFmSV/wRaBjJCkBY 5HG06HWDSCZmBREBX0B8i8y+NJSxvrS/1LR8+fwpjx7qErZJWlV4DOhQFsslMQCe37Oh EUkw== X-Forwarded-Encrypted: i=1; AKwUvBwXbohRvIyWYR5BXpZimkrEDMJYKibHjf0h01DNy6dSyj3YOy7pq27cyIf2lcMZrvOiIlQXfdrJczeh3tk=@vger.kernel.org X-Gm-Message-State: AFuF++ngY5YQm6TTJocfsUd2ABZ2yS0ltdReqWKqHjaJIlbw37rBg2/x xRdiwA48tABJXPS5n+6NkRQhTXf8c8LIK6+RAcoQnmnaJdwLVtBsyxRoZGZoKG6cjIrxt6Q4EIE OVwitraVZEluEpF/u63pJgVYFGTLxuAg8gnyFJtiads6Yu8hQvWBr84tCk3SQ5BKdmPg= X-Gm-Gg: AYBFou2xpQVYgDLwck2XwCh2twzCFiUoF7GDkBDFOvvGXykE2+PswOwydFRmo1c87of PWPqlCX9gakSzuVOfi/NgHRMTftPA76z6XKvYLRd+dGKfTgyC1+xlYpc7jeXNCZm4Vjgv2AXl4a BxTb31v8OrCceQQuhe3pgUI6rgmgk39M/jcHhMT8IheAAwncQR7w/ATX5EjZZUL6tk599KrQfjC UdQJuHhRZfwTiig9mWJrgJyXpmnyT+ZprpWgdZ4AS63uYua4m+sGyFTetn+sy2kCXgSnhQ8F2Sa bnjXGwp0z7Keq7Z8hA8DD3LTlB0kvVE8g7j5tN4uQi6Pbs8DsdgO2zr7XIR/2E2OIuMRPLFlHLH 84BiQJnwW/nN/FluUD4Z2eghja6Q= X-Received: by 2002:a05:620a:444e:b0:939:1864:343e with SMTP id af79cd13be357-93c15ec573amr44085685a.40.1789995533440; Mon, 21 Sep 2026 05:58:53 -0700 (PDT) X-Received: by 2002:a05:620a:444e:b0:939:1864:343e with SMTP id af79cd13be357-93c15ec573amr44081785a.40.1789995532985; Mon, 21 Sep 2026 05:58:52 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.58.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:58:52 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:16 +0200 Subject: [PATCH v8 07/14] crypto: qce - Use a fallback for CCM with a partial final block Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-7-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1622; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=bR7rcpx8onqzBSepmnCRtUu5K6IkMCBMdI6sMN2Sg+Y=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSnvHJiGUrC4aXm7TleNYXA7PepLc1wPa2hbD kfU5yixVxCJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp7wAKCRAFnS7L/zaE wyk2EACJIdLOHvcyKrgdEHuj1c7IJ7Q+gb7sVEzM9lLn1SDswRn/fWkqvqJIpO3P3/NmM5EiaOX Hw5HMjEzPxRSMpGluZXC9d4j+amGCaC9uSisPhcO38/tndUG+3Bv3+Suv+aBMQfjuNxGQrReWeK TzOQ0eHj7fjm/pk4/dkJn9boC4Kf1pWZVzokY2kxTTqE6FBfHlSuoYO0Lg63q4YniDKhAe8K71K 3gbnH/bxR1O5Z8OGcBTTzLHFLmbX6vR+zlW8WA3x3W5BOoPimLPqSNA58odwNC6ttl1jQM9qFdc cmlXU7do70hYcmSlWZOZw20Q8sPDLCtB0aNdweicU3u3yZ251YGg4T8cDbuzqEgoXqZBOBTIcZA rK8YsY9G24xcOKbTCk+9+cFFuL8tbE7RYH0wFeN8sVz9Gdk0HvIR8BdQzYqstElrUGYNSDzgALW mnc9dLC55W62VhZS7LE6RkbgZlo/bpnQQ/DIiJYQCaSQM+mIAbrrQZ1Qan3GNo11FVl7PVIdZOx cmikZoEA1wV7jbfNXB5iUPuNxZI3ijYJe69hV0GjdUCtBHZYXIBxmm/bMhT5FGA7o86xY6B4jP0 98qm04tPUmT5nGQLery+x+PPVyjvFqQuwKkDg8m9JoPAy1rPhTggSW45Ymtr6JHadxSumNfBEcM dkzb+N+vlnOKt0A== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: q-fluQEFhQijb_N1obdGe7aMvI5YY4mJ X-Authority-Analysis: v=2.4 cv=IewSymqa c=1 sm=1 tr=0 ts=6ab12a0e cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=dx2SfONCXZg6tt9xEGkA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfXyFpdcIG0qhPx y1Jl6fRLclT53OmzV8GH1N0GQKbzR1StNVOl6eT2pbHcX5e+K6tReKjjU9TSC14nKmJkvvagsDH GD4anigC8fI1jQH2YVlVkV2fH1ZZRv+LQEvrFiTU0WsoXa+I6M4/p+nFGlUCcKMUDdbOslvoHHt ntnC2eanQCqhYEaQxRaWb/6kvRHcnZVFJ/tGA6ZBOWO+QMfQIhKr/6C2wSn0Z6zqo7N9FpCZO63 QA/fz6Wp3SzDBeHp+LwyECwZVOye1FBevtrfQxMZAWdPMX9cCgzx7MlrGCM1O/rFhpDW+fcP12g aLi0/AlLxjdxlRAAithFz0tAWj/yG4Qz0m4QupaU72H4e2PCICzVgohnWAJpcUPvPj5mAdjU6DP htrxNGB1vvy/g/ahloHuys0T4kGzbEjSIYqsoM0/fT0WLl29VWq+UzdcGzp/O7etGHc/PUmgQDB JlSL/ENVx6coXFHfOAw== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfXz2cgOJjEwbCi MJzF152ukMQO+lctrb9RWDGIs1L1KvMmbF2JLmXXf7VCU7LEo7HyJEzFmSnI/hMbmpxivAoJw7M R5G/2th8/0VATdkDnvqlmn/YMBpoRhk= X-Proofpoint-ORIG-GUID: q-fluQEFhQijb_N1obdGe7aMvI5YY4mJ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210187 CCM builds on AES-CTR for encryption, and the crypto engine stalls on a partial final block just as it does for plain ctr(aes): a payload whose length is not a multiple of the AES block size leaves the operation incomplete and fails with a hardware operation error. This was caught by the ccm(aes) crypto self-tests. Force the software fallback for CCM requests whose message length is not block aligned, reusing the driver's existing need_fallback mechanism. Cc: stable@vger.kernel.org Fixes: 9363efb4181c ("crypto: qce - Add support for AEAD algorithms") Tested-by: Kuldeep Singh Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/aead.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/crypto/qce/aead.c b/drivers/crypto/qce/aead.c index 2324aeb4d4d90f30f999108be00a0d98e4f67b43..dad2478bae0e2aa70d31c5f3c7b= 37003e9e15e2b 100644 --- a/drivers/crypto/qce/aead.c +++ b/drivers/crypto/qce/aead.c @@ -514,6 +514,14 @@ static int qce_aead_crypt(struct aead_request *req, in= t encrypt) ctx->need_fallback =3D true; } =20 + /* + * CCM uses AES-CTR internally and the CE stalls on a partial final + * block, so a payload that is not a multiple of the block size has to + * be handled by the fallback. + */ + if (IS_CCM(rctx->flags) && !IS_ALIGNED(rctx->cryptlen, AES_BLOCK_SIZE)) + ctx->need_fallback =3D true; + /* If fallback is needed, schedule and exit */ if (ctx->need_fallback) { /* Reset need_fallback in case the same ctx is used for another transact= ion */ --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1C37049E5C3 for ; Mon, 21 Sep 2026 12:58:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995541; cv=none; b=JS5pmmfiuFnxoj4rrm4FvNbUsMDY+37mlIGCL2eu24Gzd8RpQRUl8wpMl4JgUrSRJmpkKmYB2gzPVvPdPFjc41ZPPI72IgxvenHC+YiCEYj+oSwr1xolKulsen7pnoqQb3ihvTfQeLrLP5mFYgwH59u2yGeTXY2lirG/2GI+Ufc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995541; c=relaxed/simple; bh=IJdDm4DV2stdnBPHtaq11uqEmO9kKVnIjpfyisSRYII=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rumERAEuBGNnFCoDH+Oz6Y4R/77/QG0xPdllztdt8NrGxB5Thtm7JBO6lHh+DUg9S6gTR3dNdQyayIP4c/kEcah3CHlF9He108azHEvSjFnqOv5kwjxb2IL5J+YwMDKNEYzwbjLwC+Jxo814kYDdebTPDIRudErKK9vy7ZASwbQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Ag5dRETs; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=RhJszDdV; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Ag5dRETs"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="RhJszDdV" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAdhfH227697 for ; Mon, 21 Sep 2026 12:58:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= AEL9cOLkbb0sELjP3bPIpNHAEuCYXD2Bf0vsGddneIo=; b=Ag5dRETs4yzbd/I3 muOajTYWnmgVr0KNplJrjVPfcqw6dqgFhdrJDO8ZlDHGv4UfeBm1B8E+9jF7JjJu 98ne9cw1CXAad1bmU282PFRxGkTBmYJv91mJ705h47lCVUTHYkW0lWrhjf0MmWSH x2TZwgS7m5GtBLiixnfCi/V+AqhnJWT7kk39ZLxQQN6o2R4XWtn8Ux6c46LcyQwp RjLcWvAsuwk5Ah6hzBEt+BNGYws3p4FKHQzVrS7rtoq1j+jyM9KfVaaBFvYSicSG kSdAQGFhrLx4IIjir/ODkk8RPWALZDdXKcQNfN83tmftznPIMhl0zsyv0wjfWRnW zXC3Xw== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gu17gs0qx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:58:58 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-93a3f673221so494497085a.0 for ; Mon, 21 Sep 2026 05:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995537; x=1790600337; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=AEL9cOLkbb0sELjP3bPIpNHAEuCYXD2Bf0vsGddneIo=; b=RhJszDdVqMQu5W9MX4PDvZIR9KY77l1+h5FZAuhzqinJp4uRhgGgdkGNgmRXQqh4E+ tdHmQ9zIaTx5MGxBZg1rOSERdihloD0ovMw9rRYp5Hw7EbhhgzIgYK3WBk+luss1TOkD 8UQDR1X0HUh7StEaOhghVixRuLhODEG72qfGrxrdP+q2/mhPystDrqNsNrIs2dVLoV4p Lh837SLDQsBF2Btgr6MT8xalZxAGWV8vSoLimvOClv4MFJ9idAon4HOrcZps/ALTd5md NR8fQUq8rgWOgazoiGEdZZJgIqMQqpuxCYYZqEMqVxeaMpT0nn2ilbBM8WoFINQzdXQW CraA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995537; x=1790600337; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=AEL9cOLkbb0sELjP3bPIpNHAEuCYXD2Bf0vsGddneIo=; b=f8nIVa+06YGIROuUtDS2zmSx60SwX+1wuTfoBw1oV7CF1NFBWOkgAhseENOoi0/xvB 8v0+hkBDJbBXKpelvLXt9m41BanhQdZzNIoesxzVlgL59kJ9JXoS5ZnFS5WrTNHAO/uQ 0YgE9GYxXN4pvN+0kXOjeIawX5QcQq4C5lwcB4UYF2wnhl9j8IV530dsSppH3gvAjznz aLhpGV2hFqlWgDwa219LGzrtuNvw+vpfxFy9MW66x5N+zcxbyMPgqQ/XqVNueRR2GLm/ DUlL6z3nuIGAuTA8q0ZdKuGktP+bbXmK+ePsvlu7gobm6xE/VKK5CX2ohCNvcg805zbr 2O0A== X-Forwarded-Encrypted: i=1; AKwUvBz2VtGWTtYMhC1p5JL3yTpvkikXGu947UoiX5z+ltDgee9J0Im8p2Q95/Rkb9W7jpn+DUyTTenFjIl/0B4=@vger.kernel.org X-Gm-Message-State: AFuF++ktOOSkZvNipoy0tK3YgUm+Oeli/EefMg7+0nei2NXRZLlEIFIe b0W7yTMlfNADLQLKsHfpzm/z8lHJNaz+hhToPkECvrrJTK6ORd/WNs+jChJV+JACsI/FcV4CqnF 1XODgo7VegPqdQ20NtS7ZE0psybmNIvM20tTJtwtczQy7im0KOQD4PyQI9dLM5t0zqIM= X-Gm-Gg: AYBFou0+Dt+zi2JtGeSKtvfffsLX/JLBlJ16+Tf/rKWnF3eOSCwUnjBYzYmy+sw4qBT cs4x+ThrKxegCsE5AOQa3OY8lYz/y4vsFfgGyYjG2QS6e2HfYkHFXctv1/gvpWFSS9qDCXEj0yY heLE54gRHoM1DRquoTwyUaefpmedx6vjC+WVOJhEtN0o2UDU6+KMssghTsS6H/YqPKrowj5MtRI 15rqvELzgkjuuf2BTOQB6i+PJFQIO5PU/JESfpqc1LDSNFiR6XE88ShaiTrvyOECVRoiiBubALD PSm0Y2JtGdbx7ImOPLTelRBjRTYhBaYutTNxWNV1V8fSDRLwZxmd0/stdEvQVGOWUSa5+9kqoYN 69t81Ii4GZGwZnV5nvHZXGcsLUxo= X-Received: by 2002:a05:620a:701a:b0:939:6a:a71e with SMTP id af79cd13be357-93c15d9198cmr51641685a.21.1789995537198; Mon, 21 Sep 2026 05:58:57 -0700 (PDT) X-Received: by 2002:a05:620a:701a:b0:939:6a:a71e with SMTP id af79cd13be357-93c15d9198cmr51637985a.21.1789995536815; Mon, 21 Sep 2026 05:58:56 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.58.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:58:54 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:17 +0200 Subject: [PATCH v8 08/14] crypto: qce - Use fallback for CCM with a fragmented payload Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-8-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2908; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=IJdDm4DV2stdnBPHtaq11uqEmO9kKVnIjpfyisSRYII=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSnxUdKIQbn30Wr6jm9HbMHDt5xoh1FVftHXo OfD/ESCrnmJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp8QAKCRAFnS7L/zaE wx/rD/9/w5RK7R3qv59uB5ZKSYkJD4KfqaUj4FguyKfvfNwrZ7hPt7lF829dTNBYolnwWM+4zH0 AYD+6nNRJu0UnE4r6nhKIyOVIQZZRPfv6Gx6hMLCACsK5slCgjetxmVRmu2+tnSb0q2Mq34nNF0 kgj+90QvbVXngW2BYbHa961jyJ+dOz/eb858t0IpkszPk4WRKMvUMmOlWuPVyR8IkmF9digEaSx xLIo2naQcomCCdOxxK1AWsr0IpAj9m8mTHYQMd4hL4MfrZXW/ReqFLKU/lCJM+Q6A0mGg3pmLHT 3cZssHxkVJI8RiaBWWEhctMRZzIvr5YbfC4QLlKrzGVnijy1SPwcz7d3szbDVIe5hbIbXikYFVV HRthcl4vVr7TEafu352fxhSdFtbT5/Q0zyprhnWglmOze57el0rF83P6k6JZsN5TK++P+Vc5x8l oRMwqaMyiQNCg/1qFD7lWr2lzOyW6/8ANfCnxBhR4PyMuLKu2c0JgP7cFLmiFAcu+4stOV0riIk HK0lDuHz7gH9jsK5qdKYeSYOSzX56erTdlubEG3UDg1I16X1DvfA3P3oJj+A+R7y6F1L/uH8VLQ m6JyiIiXVNz8eg4htzF7kkQh1uGic06qkCCQ2v0SikyvTVy1u2KLvQfS45icl0OLt/2q+rtnFb/ ADUJHxCBUOHemvg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: Nc1JqBJ_PXOVIhndiR9jygkpj_LRRgUm X-Authority-Analysis: v=2.4 cv=IewSymqa c=1 sm=1 tr=0 ts=6ab12a12 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=phyxH6jkQibGXiXynFEA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX4SotNOIevdvt Z4kBVqla3luh9LjW2qY1m7XE0Sj2+4uDtLaP3sZT5tMGep55K1gDSO3C3gA4ZKj8er9uodopKoa +jrvwHedVl7cotbBsCLBKC6wrM89f2803V1GxlWCFrSISAXDHJWMqzS9rrCXbTzFPmR0cauCdqU ASXMld1ork05WhdOX1c+3uQMSnNI0qGREgC1KSw/kZ34TzrWoGaolURegkwS1rTVzwYMax+ob2v OQVv4P39mp/eSB3HLQRNJPPQefknv2mnioUgsbB/fCHK5/ENhgrV5fyrGlRasAcofKxlUypbCvu U2oAzbi+zJKt9hi5muVpYu9URyAQoHrH6q67IUH7N1VoNda53MqvnP1QXlT8QqIuTQAFoDPRcA2 CBymhXCmgIgfQ8cY0ScgaGMBGlX6TxI91Zn91O39znXya2VudyV/tMrhDweY02rsHK1lCwiIvV2 b8jn6fhWkzeE9sETj+Q== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfXxe9W1gq38m9C UJjmVI9xzGBZLyYI9VcCJn/BtwQTQtl+/zcXTjEdabwlhQfsfHxTIIE1W44qqMHbI0V0CnKo+U3 WfFAKMJtKiFur9M1X8BSfPcjSchgoLU= X-Proofpoint-ORIG-GUID: Nc1JqBJ_PXOVIhndiR9jygkpj_LRRgUm X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210187 The crypto engine reliably processes CCM only when the message payload is a single contiguous buffer. The associated data is already linearized into a bounce buffer before being submitted, but when the payload itself is split across multiple scatterlist entries the engine stalls waiting for input and the request fails with a hardware operation error. This was uncovered by the crypto self-tests, which feed the algorithms randomly fragmented buffers. Detect a payload that spans more than one scatterlist entry (in either the source or the destination, skipping past the associated data) and route the request to the software fallback. Cc: stable@vger.kernel.org Fixes: 9363efb4181c ("crypto: qce - Add support for AEAD algorithms") Tested-by: Kuldeep Singh Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/aead.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/qce/aead.c b/drivers/crypto/qce/aead.c index dad2478bae0e2aa70d31c5f3c7b37003e9e15e2b..a38f7f9854437a923b8fffb3dbd= dbfc0e3b44b97 100644 --- a/drivers/crypto/qce/aead.c +++ b/drivers/crypto/qce/aead.c @@ -498,7 +498,8 @@ static int qce_aead_crypt(struct aead_request *req, int= encrypt) struct qce_aead_reqctx *rctx =3D aead_request_ctx_dma(req); struct qce_aead_ctx *ctx =3D crypto_aead_ctx(tfm); struct qce_alg_template *tmpl =3D to_aead_tmpl(tfm); - unsigned int blocksize =3D crypto_aead_blocksize(tfm); + unsigned int blocksize =3D crypto_aead_blocksize(tfm), authsize; + struct scatterlist __sg[2], *msg_sg; =20 rctx->flags =3D tmpl->alg_flags; rctx->flags |=3D encrypt ? QCE_ENCRYPT : QCE_DECRYPT; @@ -522,6 +523,27 @@ static int qce_aead_crypt(struct aead_request *req, in= t encrypt) if (IS_CCM(rctx->flags) && !IS_ALIGNED(rctx->cryptlen, AES_BLOCK_SIZE)) ctx->need_fallback =3D true; =20 + /* + * The CE reliably processes CCM only when the message payload is a + * single contiguous buffer. The associated data is linearized into a + * bounce buffer before being handed to the engine, but a fragmented + * payload makes the engine stall waiting for input, so route those + * requests to the fallback. + */ + if (IS_CCM(rctx->flags) && rctx->cryptlen) { + authsize =3D ctx->authsize; + + msg_sg =3D scatterwalk_ffwd(__sg, req->src, req->assoclen); + if (sg_nents_for_len(msg_sg, rctx->cryptlen + + (encrypt ? 0 : authsize)) > 1) + ctx->need_fallback =3D true; + + msg_sg =3D scatterwalk_ffwd(__sg, req->dst, req->assoclen); + if (sg_nents_for_len(msg_sg, rctx->cryptlen + + (encrypt ? authsize : 0)) > 1) + ctx->need_fallback =3D true; + } + /* If fallback is needed, schedule and exit */ if (ctx->need_fallback) { /* Reset need_fallback in case the same ctx is used for another transact= ion */ --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7006D49E5DC for ; Mon, 21 Sep 2026 12:59:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995543; cv=none; b=rXlMPaeLsV9vhOT+OAa7bY7BzR4BWd3ZG/PgDI4QhgSj7+0abMU6kVrDf0RS/PdHcFPUiuVjyG2jsAok0nkuqWdJzbrEF6MB1PAF/K41Ka+4kyGQANvCFe7xm25PvJMvxceP0w1SVkIhFQ1Pcw603I+ONZHfe4S2DyCyLNlbaKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995543; c=relaxed/simple; bh=OONR82+SOL/pvmQQ8fCClk/rQeXHbpvPa9nD7auDntc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JV313VXAaao3HDBv0m5ATJuNhuJnEu6kgHmntwbNXv53IdQlZg5Eb4/FhVTcCKBDwSd4E62oz7ZDJsmQBejwGQ88hIyCKjnROAr9WKluX7D8NYkYFwrsyrN5T1DD7e2LgmwfeZbvt/q+Goxp+H+YtbCbr9FCDn3oG05GkP90G0A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=SBrsLKw4; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=S0gEPMiu; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="SBrsLKw4"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="S0gEPMiu" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LB4srB1130249 for ; Mon, 21 Sep 2026 12:59:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ExRYRpHD1u5DXOU+rn+njvT7N53U5V0zMU/VcDkIX+Y=; b=SBrsLKw4ASNIX/mj +tM3xywiFEptoK1tTTiP6LLHZ2a0tudVZLo02+/zRt0W5a3GAjF+W2loiFuw0hz4 6UnAYYlfHbMc/xmiKet5ikf/0FYfbdH1tq4bncXaWLwbniEjG/bLr3Oor9Z0t8OX B227Cp+vl8oGxeHnB9E34R1mzcne1+knouIy/gwcdiR6T8QiOi3EE6pcaLQ00qJR nkmPFybsNjka9H/FJTC5VCtAcN5Oc4tUNWOSoF38J4eLMHwnRnnwcxppkJcvXy/N Z7c2/3jZWsmn4l6Ld6mS2+Z4ocROodKf1hA17fCaQRoxKihsEJgB6ygxVBa5v6UD jsz5bQ== Received: from mail-vs1-f70.google.com (mail-vs1-f70.google.com [209.85.217.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gu3csgdkg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:59:00 +0000 (GMT) Received: by mail-vs1-f70.google.com with SMTP id ada2fe7eead31-78fb21aaad9so2849031137.0 for ; Mon, 21 Sep 2026 05:59:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995540; x=1790600340; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ExRYRpHD1u5DXOU+rn+njvT7N53U5V0zMU/VcDkIX+Y=; b=S0gEPMiu3ZnA1b8tJcw7aeA0LUB8Tpq2bwLEisTCUbdNQUIn6pzhA1VmNL24zuL3wx 9HMlBSgrnORRNvXbLDDoRbweqCGPrgV+FSMunC/U/mzi58IRNXgks/Ll/ugn3vu947X4 4UMDRovXMyfgs3pOW8yWdVXYhC1PKHQtqfn+7/FZhKo/2F9oO4Dj3u1HqM7yYAl+Wnh5 nsowkj6rCFcWEIegh9mj9BU4HvXUcouJ7glZSYy1gGv6mZThsnbIZV2h2yaZJC3WpVTN yeOM2BJHYhlpJnqxRS4D1cBwqB8WCs0kZvQU0LF/vD1FsRGs/6MDt8dUMOlF9GuWsiaS Haug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995540; x=1790600340; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ExRYRpHD1u5DXOU+rn+njvT7N53U5V0zMU/VcDkIX+Y=; b=PKYLG668z1j7hJ89kf5TIjfQKwm8KXVrA48xBJ0Tg/1wjCYCKOynu3dj+5Z64LWBFt RyeyhoPhMs2KP1O68iBdFddyX9jl9oCmyjIeGrOYzOXL2ewpauHzTXVItbPWXza+OBv8 Kw0H9w1eGlifAuibe+X75VoKrdmqxAyeIXmBO8+pSq8XhyQIL7uyoL6Bo28A5HRKnfIX Q6zqZQDauo5KET8MRmnNm0IXT3SjKDNr6+l2Z329buSaOfUeBAMLWxkOXA8lDj8+A0HL hiPct4eevQDQZ/QxG5j0PZvrGzEgLuVa53f6MmwOG6d0SooKWzKWo07hpj8d0E9PjMOK fwXQ== X-Forwarded-Encrypted: i=1; AKwUvBwOb3ywyZR5zbXe30Suxi82i1fUEDAtqyKI97pAtDc3mTYBMoetabx0L0hCFhO6M+CRCRwBZyKjnGDnwog=@vger.kernel.org X-Gm-Message-State: AFuF++nrMsZxBXQLODX0xitpmf6Hf/jtpOAwR8Wz9AruGXhU0XfIX8ym 0HhTNouxWbeFw6xuUSN0kpcLKs4+sMrnoAWbyMOkjy6Dm9Qx8df6GJkuNPx13vX1WxED7BY7Wee cdIq9Nrzaq7fiOitnjt2QExU9zmQefUVmeucCEnnnpB5pjp3+qLIujGKUNfRK5ztvYxk= X-Gm-Gg: AYBFou04Uv/nTnvsdrwwnnIKq+qmDug19lE0TF/+G4zlhRfj8TU3eEzfxCIPiIfbmgE ee9gWxdOMoulhDKJ5gbqcP6wNPW4yNOpaPWqy+9CQIae9quDNIot9PUUXjB6hw1FKusS7U6IvZ7 ad0vWSlMW5yZS9NwNHvIMcpW5o4Xr1HGkngsg7UTnXkr40JFRRnsXB7n52Hh/LiXg1kc1OHH41Z ASuzUL0OjVV78R0r06b+FPH5P7er/EPd+t+Zqj75C4ycL6/ENERSC8galvEnkEonmSMy7XCUY4A WKaExG9kFcFXNsLkFVdC37d9MaHjy2UBZP2FYFahK+3F2a9kVTdJQiYexapDCdUwe3oq6g8oHEs uAs2Dxw3hMtYfVc5wRARdZvURIsw= X-Received: by 2002:a05:6102:464e:b0:7a1:f2b5:6469 with SMTP id ada2fe7eead31-7a1f2b56540mr3241997137.38.1789995539734; Mon, 21 Sep 2026 05:58:59 -0700 (PDT) X-Received: by 2002:a05:6102:464e:b0:7a1:f2b5:6469 with SMTP id ada2fe7eead31-7a1f2b56540mr3241993137.38.1789995539360; Mon, 21 Sep 2026 05:58:59 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.58.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:58:58 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:18 +0200 Subject: [PATCH v8 09/14] crypto: qce - Only register algos if the user really wants it Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-9-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1924; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=OONR82+SOL/pvmQQ8fCClk/rQeXHbpvPa9nD7auDntc=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSnxe6yVWDsKagQxZekUU7x5OLdHaAqEOhNwy NZzfhuiXtuJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp8QAKCRAFnS7L/zaE w8bpD/9cBfj1WlEMGJPPYV4jTYLXwfOH0h0C1Lo7lGZjUmbSvnHlzE8xTAz8cj19M2PiYojSGZ+ al/OTOisucdPDknDb3a26AigD3kTN+YIUqxDtB5yrZACpI89iTZYZh0nMlu57wo+eUhXwaP1dpt wNfgO5AJB6zhzV6TVngYyEKdLFpGxWatQGvXJjF47h2a34jsSZ4JNYQTiw2zCGOY5FT+tipC4Tk 1o6HchiLCmuLIQY4JMPfs0fkAwsh2RJfvsc1iTKGzt2oAgBebCXh4bgYgMW4BbOCZ+MYsjiG+VF +eP7KMn0dMm5vYKuDf7RQorJASqkWGFv9StXJ5tMOmf3rNaStIIawVNzjdfrw9i+bBfPSt5d7z2 3wDlvoLlcpfxcjzfCbe/Iq9kf+rLE64YOloz8prYBe0UPQdbjHYZxMZp1qiwl0Hc8oi33J89yvt 78W+qxKjWRdTVv6cy4rqXT2AMoeAPGl7p/kdPpM+yr57CH7xA9zRNWbxge5/2Wy4SmL0Yo/T7+6 dTsVTIcOMVkqOASf7gJPEtw0qiNeUM5o2FkqmnGtDp+YRNXeTHn2Gj/ie30cAUZVe3TrEVRilaY FEEDh73xdMeQq1q18HSKz6kzyPN61r3bPqdlnB2kYzO1RRpukSAMq4cNJAeK/uJFQyZqRB0S8/x pBFN3k5mHsxOBkw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX+QYIj3oJVGgS vjC8Ss0WTekEw23ctuUU1KJnFu5XqLSWqClPmdCAPhJZJ/V0Gg2LjBvpUjQNPxq4WaK8T0GF/EW n4ybRBTPH8V40fEwgsM1Ai/lo/Nz23E= X-Proofpoint-GUID: d3hRutLZBQwyQIypT3_irorO2ty6Wahy X-Authority-Analysis: v=2.4 cv=QovLTlyd c=1 sm=1 tr=0 ts=6ab12a14 cx=c_pps a=N1BjEkVkxJi3uNfLdpvX3g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=s_o0qblw2luIdUq6tZ4A:9 a=QEXdDO2ut3YA:10 a=crWF4MFLhNY0qMRaF8an:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX+r2VMupsedDa k21SSzEps0qhM9UBR+icAXk7G1DcL5cCz5vV30OnZXUHhHg4P8W4q8TDWzbr6JsYeKGxijzW9w4 D7IXeNP7TN7rUIoPLabLLg05NoDqiKLKrvNioaaDZeDc2imwKGD4cw+RvgfRssidas99xsAy2Qg 3tnYJq/Vd3DU78vooQHBcoW2bUxgeFoqh9RjlBNJuFq7o62oEfxjn9KK9k1K6Wb52GhEJpm302W 12LNhgOHoEXdINJyZQJkuZtEUU34f8AfVF9OkZ5ydR5NVEfa624D4+vQ7d80XRWQOXOmCJYvT6T wh5GFpc/wE6yN08bQUySPG4kNu7M20XMHSiZZKwtrPYP0ooLSN8y/RGXD3WOMwUfyxE3cHBQRLI Q/7RBE8JhLqXiNAu/ghY0hX0PeIndP7nRtN0wsrK+YyTq64lvhJRGyKmU3zZY+Ig8iiGhDS3sR7 ZMnwK6Qwld7K2PXIrGw== X-Proofpoint-ORIG-GUID: d3hRutLZBQwyQIypT3_irorO2ty6Wahy X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 bulkscore=0 impostorscore=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210187 This driver's crypto algorithms still have a few issues that need addressing which don't currently trigger any self-test failures. For that reason: don't register the algorithms unless the user really wants it. Add a module parameter to the QCE driver that by default causes the driver to *not* register the crypto algorithms. It will only be one if the user explicitly passes the do_register_algos argument as true. The power-management part of the driver is kept as is to allow scaling down of interconnects gating of clocks by runtime PM. Cc: stable@vger.kernel.org Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/core.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c index bf3c1bc3ba7bde5e5d08e06071c67ba77af95695..5b1bf7a50f88c890da1f0820fb9= e070b3d3f4708 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -22,6 +23,9 @@ #include "sha.h" #include "aead.h" =20 +static bool do_register_algos; +module_param(do_register_algos, bool, 0444); + #define QCE_QUEUE_LENGTH 1 =20 #define QCE_DEFAULT_MEM_BANDWIDTH 393600 @@ -259,9 +263,11 @@ static int qce_crypto_probe(struct platform_device *pd= ev) qce->async_req_enqueue =3D qce_async_request_enqueue; qce->async_req_done =3D qce_async_request_done; =20 - ret =3D devm_qce_register_algs(qce); - if (ret) - return ret; + if (do_register_algos) { + ret =3D devm_qce_register_algs(qce); + if (ret) + return ret; + } =20 /* Configure autosuspend after successful init */ pm_runtime_set_autosuspend_delay(dev, 100); --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD51E49E5C3 for ; Mon, 21 Sep 2026 12:59:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995548; cv=none; b=tt+BxPSt3/M9XZ8RkHIihA92dbGL48k162Bh/wc5FsU5YNxQlTvx/KfaaNIUqQh81Wwc6Llyq8vZ5xGeF9wPUNu2hJ9CamGI6R1oFq5xp6I0KLkH8T6ldDnO024n9FPisTMthSn6ZP+2bHbFzo4rpOqvac4B3vUKxnRgXlLK6S4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995548; c=relaxed/simple; bh=vkQ0+w+OaiTixUsSZRF4DmzZtt122AZuDXlpHEfsrS8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Pn+WjRPdD7A327qBECer5vDql6fwjMOzSnFt2ubwEb9hlr35cgMTMACf/gCDEIO+/R/7oYPym6nhdshgPke9XQEhUMXANlBHMMb1+/I9t9toKm7HdOFgPAOk/nsdO/tPLlecsyGn4FmFvjSmJcrDmChztZ9hFp9dDVohO+B9bMQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=NjrsCL/J; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=F/LBz31n; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="NjrsCL/J"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="F/LBz31n" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAeL7d1219039 for ; Mon, 21 Sep 2026 12:59:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= HHyrvKQS0PCTJFUcgPmmdME//BoOFMVeQtcfEBdKJso=; b=NjrsCL/JBu9HQB+J h69K5/sLacS08MzxiXPy3uV4UWA6XSeCZoYa6DBlgYetDH+3botROPx9tVLVJJBu EAIe9YZqpFIkrFUxqc214msuW131IcjIiu0hbETLeNKhsgCIY+2Yub6FaninzHhF QWHVKrAuikXdI1R3AdATRTS+AHsh7mvx+kOCV6tpNdPIDZuQuwt5DswQWwpnLRry Iu+K36hfuJe/pWr6cPOHzMyPiUBprz9GfLml9OVCKr8DhsqfWniFvCZrRQUAjbLP lQBXEIdZHFM+XpcJaHYC6cssiVo2elec4fh7S1g4jiy25k/jwE+5SVJG7V/Blp0X kQhK4w== Received: from mail-ua1-f69.google.com (mail-ua1-f69.google.com [209.85.222.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gu0119bby-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:59:04 +0000 (GMT) Received: by mail-ua1-f69.google.com with SMTP id a1e0cc1a2514c-98304865f02so2546763241.1 for ; Mon, 21 Sep 2026 05:59:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995544; x=1790600344; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=HHyrvKQS0PCTJFUcgPmmdME//BoOFMVeQtcfEBdKJso=; b=F/LBz31nI5+bL3syukYfLvtEKVcBs2Pf1akVDPssJrmub+ji5+MYKSOK8qnpOzoTtS sSTiLq/OvjA0aImlJESnUl652Gwy8BPECXqQCtVaru2ibCeeWF1lcgc9CNHnsgUcI2zy GEnSdjjCZxXDOLPIooz0MBAWQ4YK34aKSwbzohDjN1nZxP/LwFcQ9DJkAPO9wy+lyTc7 cArlR8vM39NcaWl6D6rxGa/u4yj71pMV8yvFQJDPCMqIWz9nbHAUwcJRoXFzqAquQnPS NraXd1HNvmFhhcRSAKV16VBbbog0QJRbh2GLt/w7oGjbFNUM2SlzJ33fFGPQogDAPKuH 7ZgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995544; x=1790600344; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=HHyrvKQS0PCTJFUcgPmmdME//BoOFMVeQtcfEBdKJso=; b=K2KALTf3a/cRHBgCmZ2Iv/1Q9PdNj04df4wwUXOooRFdgXU1+6h1XeMrSmKOrM8Qmg i5egolbx3RKHBmSGQljsHLxvxMwNqA5yFosJW+dRfEfjVrPnwcsGLtWPcCQe0wfqRFZ7 gVO15rXyq30slRWOOAj6KCjsFP2aJOl78H+xG7dpqE05HRwJM+6db+0UBBus46fJmYmD 46Qw7VUDtRHQh/4gyw1LCHqNfbIFmkRWzN3joHlC83YCKhBcZymwETZtp3vUc+zv7Ttl UNSEIZKrtts/fJ+PxNbAjG6Ktm8QJ1adwQK1EmaC40LLXVzDoE2MF/7F1aYDj7J6XorC LaYQ== X-Forwarded-Encrypted: i=1; AKwUvBxPpdWis5xWOcYbX07Mf99I/q0u5ar2ZToe+759vZ7tbNdXy/1Yj+n4ND+UX30EUdFGtHtJw0/73DAGBSw=@vger.kernel.org X-Gm-Message-State: AFuF++nVaQ1Gmpfg4oD32SrpVQOlzrIfg5Sb+aBS7Ss8w1oJlp2y8D3t a3gnu9ymPBIzTtwiDPLGo+yNM3DsOvtyAccVO2d3+DUocYLU8GfJKKVpFnXwN03TOVIbYxHHEd8 1sRHp2nrucOOlGCF0sIzhJ+2SXlkq76qTQv1Oat1hT4PFUWnoFh1i32XvQy2qpL1URcE= X-Gm-Gg: AYBFou025EGhVRnkwWpPVqsrF+VftRLfDbCmS/kTfkkhnEFOzoMH0FzxsI9Wzpo0usj QT++gA1E5Ua9v8Y+69XFDzCZhguSfmnwwQXJKzwbq4ki5OOWMlgQx5cst9T/G8KD3M0TYqNYfDG CjnT8kiBdzlyJSQrcpqq2WFGAV0kZJKVVz9CRbvs7NKjSQBvuMyBAgPaCsc4ho1Hco2epVXzOHN eZfvc0T79gOU7hldeobRVapEQ1JvulOnEmSaIE0ABVQ4Hpxf7wbHAyXvrhbPfn+nFtoGFGKv6a9 ZAse2k35EcqgsQe+yuqq9exGRGVUwFPCsVSD6dnuYpbDKGDyuUkA7eog09Xuj49uDb+dL2M4T9g IYDEF9chE9VVl12teMLMsDDMeo1U= X-Received: by 2002:a05:6102:f9c:b0:7a1:f7d2:e82a with SMTP id ada2fe7eead31-7a55e1a6bc1mr4171441137.35.1789995544299; Mon, 21 Sep 2026 05:59:04 -0700 (PDT) X-Received: by 2002:a05:6102:f9c:b0:7a1:f7d2:e82a with SMTP id ada2fe7eead31-7a55e1a6bc1mr4171378137.35.1789995543721; Mon, 21 Sep 2026 05:59:03 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.58.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:59:00 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:19 +0200 Subject: [PATCH v8 10/14] Revert "crypto: qce - Mark QCE as BROKEN" Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-10-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3022; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=vkQ0+w+OaiTixUsSZRF4DmzZtt122AZuDXlpHEfsrS8=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSny8RXHnD/hCcrWJJtVX444fZXPh9LvFHLf1 8/flOUlVXSJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp8gAKCRAFnS7L/zaE wxw4EACvpYLqBSBBiTMrlHW+mTMnlQpCkcDrV1TD1p5dpE41/RNPbKnKpXgDbsXga4i/DAVh5Vg J0SPGdUCxS1rXetIyXiz8oOkzyB7K4430qdp+meWpohC1/lY4klRK+mVJXCOC/mBM68q0jk5BLG mYsMMZo/Ga6y1GAOvweRpoaLfr0YucfEPRq+MHcAyKnFVZL9JZHCjrxUZ+YZcM0TGCct8z3fyG8 S3vyMpHgulgfe9ARtPHFzcERjhnja74y7o8L4zX3lKDiN7egT85OzHuc4LffWznNSDwYkmgI8SE xllDJLYHxY3vt+g18ZLqOLYPDOZSGqbdV/8kHLdClK/ay9dZVhaa7EeUUfhUZ2HTMrXQfTGq3N8 QTRTr65y4hBK08y0XeWotSLBhryjoPsac3NiTr+6xtd5gySQwZ/aMbLvh0N0Ym0qA7TP/9zbk2x /vDySC4+kYbZUI7OqKIrT86Mo27alii76gSJqUzB788hvFGfh3n1dJRYQA8eOjoftZRn5beH9vU 4YnbFvDnBznJgziFxjZu1yzp424IIEpMh+bPmfegRLSep6gNbxmOP4rkbD8oRvQzxd/suxnbARF MDcSY8rtPEibhvvZAxozCjNYxsd6myGs7PmSj0l7dCeMO6w3kakTurU4NSHievC38gT/ziKVfbO nitVFOitYmcR1KQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: tlbNR6kiuoELzTs9ikoKdgyu70BORJa6 X-Authority-Analysis: v=2.4 cv=dPczC+Zb c=1 sm=1 tr=0 ts=6ab12a18 cx=c_pps a=UbhLPJ621ZpgOD2l3yZY1w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=Y_jwshM-TqYlUzFSP1QA:9 a=QEXdDO2ut3YA:10 a=TOPH6uDL9cOC6tEoww4z:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4OSBTYWx0ZWRfXwWfiZ/CIMoO/ O+BLHoYN4fyuQLuCFPeeqvtUy50VKcxIjHKB7bAL+cNJBkMXcx9xCRdyCOUWgdv5uqMQiy+L8P1 QdRftINLL1DlcIO3BGcf8cWwmhtKWnZ2YPEx9DxT1V1zngg3//qQSlb1mdzoa36vNHKP1lR2O9P B1f7gq2eZ/ZYCstSiT9sLJIRZ9nCyyzaGNgVNGgRDmYi7tHZ2WmAl+WZCkSyDyN8OiuToiqMqZd Y6twEIrQMPfj3iTk41mNvskr87tJZaXSJsyAulinof3AxUrCdpgy4A8Haz1JIJtNfN7xImJ0oYD Z0A3br+8Wm61MwxWWawMYro2B/3xTiSFbg/L+InRP9SZnW3V/cLfiWuW0UjaZA3fGfc+FAFU8AS 1ApnV1WrwicIYhTw/NHqvgAaOQqh0yWs00GbfTibvkkrkehwGPovImJaR67vxCIJ3jxK2edEPVI o/ChcVlNEGTHVn3uEsg== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4OSBTYWx0ZWRfXz3qCckT9r/mn zKG80DkCyu+Qnzz/lB6fMb9mvm9DBSJxsLPppTdpM5G/xL6UmRa2mXksyS3unedgMUH/OG0si22 CcNMQ8izdyVsCZDt+IY6A1wa/fKSK98= X-Proofpoint-ORIG-GUID: tlbNR6kiuoELzTs9ikoKdgyu70BORJa6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 adultscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210189 The self-tests for this driver have been fixed. The crypto algorithms are only registered if the user explicitly requests it with the provided module parameter defaulting to false. There's no reason to further keep it unbuildable with the BROKEN label. While at it: update the Kconfig description by saying this is an "offloader" and not an "accelerator". Signed-off-by: Bartosz Golaszewski --- arch/arm/configs/multi_v7_defconfig | 1 + arch/arm64/configs/defconfig | 1 + drivers/crypto/Kconfig | 16 ++++++++-------- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v= 7_defconfig index f9b8dbf9318c9d4947e56ef0159311634bf0c1ee..2d6292f8cab39596b540084fbd8= b30f4c25cd4ff 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -1323,6 +1323,7 @@ CONFIG_CRYPTO_DEV_ATMEL_AES=3Dm CONFIG_CRYPTO_DEV_ATMEL_TDES=3Dm CONFIG_CRYPTO_DEV_ATMEL_SHA=3Dm CONFIG_CRYPTO_DEV_MARVELL_CESA=3Dm +CONFIG_CRYPTO_DEV_QCE=3Dm CONFIG_CRYPTO_DEV_ROCKCHIP=3Dm CONFIG_CRYPTO_DEV_STM32_HASH=3Dm CONFIG_CRYPTO_DEV_STM32_CRYP=3Dm diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 982ea1758eb667a1949721140961764b3e9be1f6..55a2e8c3ae3522630df8c31cb2b= 7c7663e973aed 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1957,6 +1957,7 @@ CONFIG_CRYPTO_AES_ARM64_CE_CCM=3Dy CONFIG_CRYPTO_DEV_SUN8I_CE=3Dm CONFIG_CRYPTO_DEV_FSL_CAAM=3Dm CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=3Dm +CONFIG_CRYPTO_DEV_QCE=3Dm CONFIG_CRYPTO_DEV_TEGRA=3Dm CONFIG_CRYPTO_DEV_ZYNQMP_AES=3Dm CONFIG_CRYPTO_DEV_ZYNQMP_SHA3=3Dm diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index 0189dfdcbbe11098ead0ea194293422a31d8fe65..baf6c4a4c8aed663e89ae2468a7= e9ed9dcb66f34 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -527,17 +527,17 @@ source "drivers/crypto/marvell/Kconfig" source "drivers/crypto/intel/Kconfig" =20 config CRYPTO_DEV_QCE - tristate "Qualcomm crypto engine accelerator" - depends on (BROKEN && ARCH_QCOM) || COMPILE_TEST + tristate "Qualcomm crypto engine offloader" + depends on ARCH_QCOM || COMPILE_TEST depends on HAS_IOMEM help - This driver supports Qualcomm crypto engine accelerator - hardware. To compile this driver as a module, choose M here. The - module will be called qcrypto. + This driver supports Qualcomm crypto engine offloader hardware. To + compile this driver as a module, choose M here. The module will be + called qcrypto. =20 - This driver does not have exclusive access to the - hardware, causing races with the secure world. It - is also slower than the CPU. + NOTE: This driver does not have exclusive access to the hardware, + causing races with the secure world. It is also *slower* than the + CPU for the same algorithms. Use at your own risk! =20 config CRYPTO_DEV_QCE_SKCIPHER bool --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B93BA49BD7E for ; Mon, 21 Sep 2026 12:59:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995551; cv=none; b=NjVA2a4Qc2iFJ2UCrsinRGanZMKT5VgBtAAx/IFULNAbq8sReW5S4vzmc7GsHbkMREL/oH31LQBkwkQPtJgz1ShAA175qTjIQpWeDNK0cv2GQana7zI/26tfyR7j0btQcs3dv6GigRS1tLRJrahDuhzIMKhBjZPylHOfPims1Zs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995551; c=relaxed/simple; bh=Su5m21FaywXrZ542UF20IF8iIL8sfF0MxiQHBwH7Pp0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QOX56jKPXDlxEB4W9an7CH4OZEeVktRZJvLBH97gTVpLtLGrI4zMif9fxLRQVVlc6kSdeOtoIKSC3dLkHzLL1itIWDkwuYiw9N7NE3M4W/HUlVpJNh4lZuQhzUzMh6ClbdO79BWlXjUtoJsL1Poz/ctcLnphnkO8QK2AISKPzVw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=f+U/bfNJ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IZLX0hDY; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="f+U/bfNJ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IZLX0hDY" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAe0au1563477 for ; Mon, 21 Sep 2026 12:59:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= tGrjzhD1UKtClz0VOd9lKai/lh/9MDlYmAVL+yQ8DKE=; b=f+U/bfNJn7pmp8Ld WvXJVI7486/G4LwWtpP9jEW+hN6BKBha6uLVMV35ii3JKrqj23bcjCwbcI0DLZj8 +tRlnCJQD+PUI8i+zVwHtXb1eQZoaUFoTPMob2Ss+qSpwnUu1zlPZNAhMMl3ZPUD Xwuaje3kgkrDNl5gzc8pkF050wLtmqFA1k3/1zk3srVrR5EAT3veVl1N8Cbapd1j 2yqtXMogUH0catTqfzQrCb7v9AzbR+dNlTjveVZwuz01vdJAVsMQCwy8b3BJWE55 +XxR/oXzpUpk7Xams7HuikBd8Mlb6vfvWq1S7sHkIoWB3DQ3o0FZGvAgSVDPF1E5 lZWjDQ== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gtysw1c3n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:59:07 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-52ffe24490bso81411431cf.1 for ; Mon, 21 Sep 2026 05:59:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995547; x=1790600347; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=tGrjzhD1UKtClz0VOd9lKai/lh/9MDlYmAVL+yQ8DKE=; b=IZLX0hDY1lJjJCJPmPYJVniHdJBZfgApWCvBW77uS5/TDYGCXS2XsAc1nUHqq5qTx7 rBk69/VNMVJQQUgqlG5mUI8OFk80S7HhITkGoeJfOW3n9ixyK//hNLdsUM0KZGnTgoxI KF9cFp4P2t8vIsPx1vG9y8i5+n1RHlb1gbhRDkk5P8n/Tbulozm93L8GwSxbmS/PwJMc BBY2Ir588w0lizH7bWYzRmE+yiIydUqKHR+90zjDwEHprsTqS8JsWUcBgRXVCJfUQ9zD c0MUBbPnic+4HyJIgrnR5yD+Zp86iFizAmI9VPLIm5zyJOdWnsV06mHFkoNEfAOpaDcX rAUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995547; x=1790600347; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=tGrjzhD1UKtClz0VOd9lKai/lh/9MDlYmAVL+yQ8DKE=; b=yZ5EvfDGQJmd6N0RObfDqg5+emcxEkwxUYtTNPB58AN4NXieBoWUcnytNZzU8FX2Bz h/L63YItiWkf9fTnoLje+ywFbkqEGiYzM9QIGuPGsZSWRb23XRd7++2KY8VoRtWgTzyV Yd5/FcLfn2TLswSMZFr4OIb5tWsoTfxnrcAICbjAJb/qZwL9CamQjBH2c5gaDdmMr10j bVE3vEoOiyEmEmdS5o1gtHzlsfCdHm4ndGMcPY+uE9qwM4AjU2I+ZLY2CgiGjXHcV8bk tKWph2Ip3f3IVpcD7fdHNcYpbLWd8AUN3JTC4kbmOJT5Js2BQdL42DFnpAq57KinpNPW R1Xg== X-Forwarded-Encrypted: i=1; AKwUvBzz5/JWC9C0P/XgSY2tKNfH1TcScKrbynZ3rgCWiA+e/ddiQ5YIciApcKu2hwyaPW39oK6RfsK/36nu9pQ=@vger.kernel.org X-Gm-Message-State: AFuF++lfVePYPoh/cVi+RSiNBYBl1bovlopPaks/PNZ50kvyoNbjbHIq OpZbu15QJHlbkri7u60xY2lW5dy3fj9nYPmvjI5lPlmrFZLRrFoPsmpabPXW8AkDlzlPpYzrAaq LvaCyvu5v8GC+xafHJQk4NyrJIdjC/oE3T7+ThoPNqKM69IDUHMRSrdQWT3zKDIate84= X-Gm-Gg: AYBFou0buMAhFbv7zM3fNR3DYbOxaKj3F1+Yjj1WgXupdF/rUFFAt6mI3HhGyhlfBwQ nQzUo+o38vgTm7f5OtHMZfUlW7vCltD9YcvQoN7a1qtsTvszYfEP+TsJQY7FxVaOw27D01bjMQW XQ8d3eXfTq7YFCMddYqT0N8HdQ/XWPOiEvNqjaYuA44sRUogfBCap5dSr6lkxPl3Woj43X1Jdlz 36q87NnG9F09KmoC58oyQATbnlN5xjLtwRYCYR9uZFLkOru8sxjf3gkbef8zFhaHTMjnc9PDwdL YIzyNUAoeXTaeC1OKzRarhP2vwRwXDMa26vut0wSF6hFFb+bbCVpCajvg8ofomX/s83bvTFaywS uamI9erGVNBYlpNU1xh4A7BrsVws= X-Received: by 2002:a05:620a:400d:b0:936:dc4c:3bf4 with SMTP id af79cd13be357-93c15e26fc9mr53360185a.28.1789995546654; Mon, 21 Sep 2026 05:59:06 -0700 (PDT) X-Received: by 2002:a05:620a:400d:b0:936:dc4c:3bf4 with SMTP id af79cd13be357-93c15e26fc9mr53353885a.28.1789995546140; Mon, 21 Sep 2026 05:59:06 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.59.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:59:05 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:20 +0200 Subject: [PATCH v8 11/14] crypto: qce - convert to auxiliary bus Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-11-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=14659; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=Su5m21FaywXrZ542UF20IF8iIL8sfF0MxiQHBwH7Pp0=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSnz8GQ2WDOodTABbtvt7lmNMdGOAnOF+VGfr NqEbxlbO4OJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp8wAKCRAFnS7L/zaE w55RD/4+iB2gGhSDEakre+2DAzhzKUWMiXXLYjIoj2E6IB9yYuf0xtyeM8VKKxDETl8UZlbJdlt mXCqbZ0aouTpMYUpHFNbdICXem4yp3uyHLKWImlaRF/ylz+Ux97xUvJkef2XMvxj30NoB6hLExl ZpUgqZ0p/bLKGigmDrs7EcEb2qtQtOxa308bOmUcHINGiUSD/DG2LmH/o2XOP2Q1u81IA6pLRDQ F5IkzS9I1Q1TfUdz4p4PlPabkMWQMnsOXtOM1SUkNz0ioPyozl7qBDbojW+EeRUCbCSTGvsHHWp 57yY5eAV8+jPc6oLA4zo0Bs0mzgXYCs/aJEJFKrRaq8N3pxn0FZ4+PQiN282feQSZBksdiYyyqO SROG3ExkA+9J3SEPED9+zgMLM0evy0cASDDBlHUCfri9vnsnXG/zjnB7Jd9LrRnbSSlztXhi9GM z0LyEaqujNQ//hGifcJPF8EH4b1G9rpe5xDK6DqkGXKzWd2bMx8Cry2tdv1ncshCfe4QStTqFpS UN0qwsIdowwAjbHKdaXhzASddyANvIr/gw6HKK8dmvfiECl209u7Vhl0f7CBvsxnzXzLRwBjInP xIr2sfQxa6gfGvvO+zfjtyE2/C4U78wB5/c6172KNc7unAvwKEaCYVvxjb4CkEjWTLq/NPSeEZg qx/x5aZSKI+JTEA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4OSBTYWx0ZWRfX57TNmkLWP90a YqI9Za6te0RuT/afke8y49YgJh5Z+VEKE4s+FXJg8TC+SWbzKHDEs9MScpjSo7VXfJvgWw+gexI yd6WtAObAT00L6KXHMhQwbGS/eSH4tREfkNJ2r+Zn42Lw+5QssisoKyUK5Dn+YeNtuf2hzQIyBF fZyDNsbFy/2LmnKsTZFk7tbm7E1I7affOUG2O1GH/Oup2BnfKgXxSJ/612T3PggngihTf4abdvC FoESyAgl/F/UvZXz/9Ls5X0kEx/b3ojUNgiwDS/BHJK9oTuas73cxNCSUEpHaeaQC+DbyDkz6GB Cc10iaMMp1stWuLhqJjCh/tmAw7FcDv9K8jBCmAIJ6QYHFnQ/57woVFMJm8X2zdKKdC716CpBPa 2U2YCm0+Zs1elHNVRZMdcy0q4jfpGEDkLQQPvW0OuP5zWc0sqhkucJ/IBHJHw8BED1eOhCroO0i V7Y2A8VP8iX6Rj3IgwA== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4OSBTYWx0ZWRfXyvMK5de+Gtkc MP8vOpovLMGNrn1jjvSC6U8Gh9vDsgzH0epJ1NkIh9sasRYiMsqG6hKQsgLyfFFdb+WZessRVOE yeRKPw0bh/R0Zc79j8u5Fe3uBkiAX0E= X-Proofpoint-ORIG-GUID: edN8LE930v9OCAobzh6oVq2xOn-SBTZk X-Proofpoint-GUID: edN8LE930v9OCAobzh6oVq2xOn-SBTZk X-Authority-Analysis: v=2.4 cv=W7etxhWk c=1 sm=1 tr=0 ts=6ab12a1b cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=WPyFHUJR_z9Wl-EIX7EA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 malwarescore=0 suspectscore=0 bulkscore=0 impostorscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210189 This driver is disabled in arm64 defconfig but one of its functionalities - scaling down the interconnect votes to 0 when unused - will be moved to an always-enabled core qce driver. This upcoming core driver will also be in charge of registering the qcrypto device on the auxiliary bus so that it may be enabled if desired. As the first step: convert the driver to using the auxiliary bus and remove the interconnect management from the code. Update the power management as required and make sure to use the parent struct device for DMA. Signed-off-by: Bartosz Golaszewski --- drivers/crypto/Kconfig | 2 + drivers/crypto/qce/aead.c | 12 +++--- drivers/crypto/qce/core.c | 93 +++++++++++++++++++--------------------= ---- drivers/crypto/qce/core.h | 5 ++- drivers/crypto/qce/sha.c | 12 +++--- drivers/crypto/qce/skcipher.c | 12 +++--- 6 files changed, 66 insertions(+), 70 deletions(-) diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index baf6c4a4c8aed663e89ae2468a7e9ed9dcb66f34..9d42c5f7820dc6ac54d4f2b631a= 93917d842fcf2 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -530,6 +530,8 @@ config CRYPTO_DEV_QCE tristate "Qualcomm crypto engine offloader" depends on ARCH_QCOM || COMPILE_TEST depends on HAS_IOMEM + depends on PM + select AUXILIARY_BUS help This driver supports Qualcomm crypto engine offloader hardware. To compile this driver as a module, choose M here. The module will be diff --git a/drivers/crypto/qce/aead.c b/drivers/crypto/qce/aead.c index a38f7f9854437a923b8fffb3dbddbfc0e3b44b97..6f33a89bb38436cc0b0d37b4209= 010b410e5201c 100644 --- a/drivers/crypto/qce/aead.c +++ b/drivers/crypto/qce/aead.c @@ -44,9 +44,9 @@ static void qce_aead_done(void *data) dev_dbg(qce->dev, "aead dma termination error (%d)\n", error); if (diff_dst) - dma_unmap_sg(qce->dev, rctx->src_sg, rctx->src_nents, dir_src); + dma_unmap_sg(qce->dma_dev, rctx->src_sg, rctx->src_nents, dir_src); =20 - dma_unmap_sg(qce->dev, rctx->dst_sg, rctx->dst_nents, dir_dst); + dma_unmap_sg(qce->dma_dev, rctx->dst_sg, rctx->dst_nents, dir_dst); =20 if (IS_CCM(rctx->flags)) { if (req->assoclen) { @@ -442,14 +442,14 @@ qce_aead_async_req_handle(struct crypto_async_request= *async_req) =20 if (ret) return ret; - dst_nents =3D dma_map_sg(qce->dev, rctx->dst_sg, rctx->dst_nents, dir_dst= ); + dst_nents =3D dma_map_sg(qce->dma_dev, rctx->dst_sg, rctx->dst_nents, dir= _dst); if (!dst_nents) { ret =3D -EIO; goto error_free; } =20 if (diff_dst) { - src_nents =3D dma_map_sg(qce->dev, rctx->src_sg, rctx->src_nents, dir_sr= c); + src_nents =3D dma_map_sg(qce->dma_dev, rctx->src_sg, rctx->src_nents, di= r_src); if (src_nents < 0) { ret =3D src_nents; goto error_unmap_dst; @@ -478,9 +478,9 @@ qce_aead_async_req_handle(struct crypto_async_request *= async_req) qce_dma_terminate_all(&qce->dma); error_unmap_src: if (diff_dst) - dma_unmap_sg(qce->dev, req->src, rctx->src_nents, dir_src); + dma_unmap_sg(qce->dma_dev, req->src, rctx->src_nents, dir_src); error_unmap_dst: - dma_unmap_sg(qce->dev, rctx->dst_sg, rctx->dst_nents, dir_dst); + dma_unmap_sg(qce->dma_dev, rctx->dst_sg, rctx->dst_nents, dir_dst); error_free: if (IS_CCM(rctx->flags) && rctx->assoclen) { sg_free_table(&rctx->src_tbl); diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c index 5b1bf7a50f88c890da1f0820fb9e070b3d3f4708..31f1ad8938ab3bbe76b2ae4799e= b2797efe704ed 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -3,15 +3,16 @@ * Copyright (c) 2010-2014, The Linux Foundation. All rights reserved. */ =20 +#include #include #include #include +#include #include -#include #include #include #include -#include +#include #include #include #include @@ -28,8 +29,6 @@ module_param(do_register_algos, bool, 0444); =20 #define QCE_QUEUE_LENGTH 1 =20 -#define QCE_DEFAULT_MEM_BANDWIDTH 393600 - static const struct qce_algo_ops *qce_ops[] =3D { #ifdef CONFIG_CRYPTO_DEV_QCE_SKCIPHER &skcipher_ops, @@ -93,11 +92,6 @@ static int qce_handle_queue(struct qce_device *qce, struct crypto_async_request *async_req, *backlog; int ret, err; =20 - PM_RUNTIME_ACQUIRE_AUTOSUSPEND(qce->dev, pm); - ret =3D PM_RUNTIME_ACQUIRE_ERR(&pm); - if (ret) - return ret; - scoped_guard(mutex, &qce->lock) { if (req) ret =3D crypto_enqueue_request(&qce->queue, req); @@ -120,8 +114,21 @@ static int qce_handle_queue(struct qce_device *qce, crypto_request_complete(backlog, -EINPROGRESS); } =20 + /* + * Hold the device resumed across that whole window instead of just + * across this function, or autosuspend could gate the engine clocks + * while the DMA is still in flight. + */ + err =3D pm_runtime_resume_and_get(qce->dev); + if (err) { + qce->result =3D err; + schedule_work(&qce->done_work); + return ret; + } + err =3D qce_handle_request(async_req); if (err) { + pm_runtime_put_autosuspend(qce->dev); qce->result =3D err; schedule_work(&qce->done_work); } @@ -154,6 +161,7 @@ static int qce_async_request_enqueue(struct qce_device = *qce, =20 static void qce_async_request_done(struct qce_device *qce, int ret) { + pm_runtime_put_autosuspend(qce->dev); qce->result =3D ret; schedule_work(&qce->done_work); } @@ -194,10 +202,12 @@ static int qce_check_version(struct qce_device *qce) return 0; } =20 -static int qce_crypto_probe(struct platform_device *pdev) +static int qce_crypto_probe(struct auxiliary_device *auxdev, + const struct auxiliary_device_id *id) { - struct device *dev =3D &pdev->dev; + struct device *dev =3D &auxdev->dev; struct qce_device *qce; + struct resource res; int ret; =20 qce =3D devm_kzalloc(dev, sizeof(*qce), GFP_KERNEL); @@ -205,13 +215,18 @@ static int qce_crypto_probe(struct platform_device *p= dev) return -ENOMEM; =20 qce->dev =3D dev; - platform_set_drvdata(pdev, qce); + qce->dma_dev =3D dev->parent; + auxiliary_set_drvdata(auxdev, qce); + + ret =3D of_address_to_resource(dev->of_node, 0, &res); + if (ret) + return ret; =20 - qce->base =3D devm_platform_ioremap_resource(pdev, 0); + qce->base =3D devm_ioremap_resource(dev, &res); if (IS_ERR(qce->base)) return PTR_ERR(qce->base); =20 - ret =3D dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32)); + ret =3D dma_set_mask_and_coherent(qce->dma_dev, DMA_BIT_MASK(32)); if (ret < 0) return ret; =20 @@ -227,10 +242,6 @@ static int qce_crypto_probe(struct platform_device *pd= ev) if (IS_ERR(qce->bus)) return PTR_ERR(qce->bus); =20 - qce->mem_path =3D devm_of_icc_get(dev, "memory"); - if (IS_ERR(qce->mem_path)) - return PTR_ERR(qce->mem_path); - /* * Enable runtime PM after clocks and ICC path are acquired so that * the resume callback can enable clocks and apply the ICC bandwidth @@ -240,7 +251,10 @@ static int qce_crypto_probe(struct platform_device *pd= ev) if (ret) return ret; =20 - PM_RUNTIME_ACQUIRE_AUTOSUSPEND(dev, pm); + pm_runtime_set_autosuspend_delay(dev, 100); + pm_runtime_use_autosuspend(dev); + + PM_RUNTIME_ACQUIRE_IF_ENABLED_AUTOSUSPEND(dev, pm); ret =3D PM_RUNTIME_ACQUIRE_ERR(&pm); if (ret) return ret; @@ -269,31 +283,17 @@ static int qce_crypto_probe(struct platform_device *p= dev) return ret; } =20 - /* Configure autosuspend after successful init */ - pm_runtime_set_autosuspend_delay(dev, 100); - pm_runtime_use_autosuspend(dev); - pm_runtime_mark_last_busy(dev); - return 0; } =20 static int qce_runtime_suspend(struct device *dev) { struct qce_device *qce =3D dev_get_drvdata(dev); - int ret; =20 clk_disable_unprepare(qce->core); clk_disable_unprepare(qce->iface); clk_disable_unprepare(qce->bus); =20 - ret =3D icc_set_bw(qce->mem_path, 0, 0); - if (ret) { - clk_prepare_enable(qce->bus); - clk_prepare_enable(qce->iface); - clk_prepare_enable(qce->core); - return ret; - } - return 0; } =20 @@ -302,14 +302,9 @@ static int qce_runtime_resume(struct device *dev) struct qce_device *qce =3D dev_get_drvdata(dev); int ret; =20 - ret =3D icc_set_bw(qce->mem_path, QCE_DEFAULT_MEM_BANDWIDTH, - QCE_DEFAULT_MEM_BANDWIDTH); - if (ret) - return ret; - ret =3D clk_prepare_enable(qce->core); if (ret) - goto err_core; + return ret; =20 ret =3D clk_prepare_enable(qce->iface); if (ret) @@ -325,8 +320,7 @@ static int qce_runtime_resume(struct device *dev) clk_disable_unprepare(qce->iface); err_iface: clk_disable_unprepare(qce->core); -err_core: - icc_set_bw(qce->mem_path, 0, 0); + return ret; } =20 @@ -335,25 +329,22 @@ static const struct dev_pm_ops qce_crypto_pm_ops =3D { SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) }; =20 -static const struct of_device_id qce_crypto_of_match[] =3D { - { .compatible =3D "qcom,crypto-v5.1", }, - { .compatible =3D "qcom,crypto-v5.4", }, - { .compatible =3D "qcom,qce", }, +static const struct auxiliary_device_id qce_crypto_ids[] =3D { + { .name =3D "qce.crypto", }, {} }; -MODULE_DEVICE_TABLE(of, qce_crypto_of_match); +MODULE_DEVICE_TABLE(auxiliary, qce_crypto_ids); =20 -static struct platform_driver qce_crypto_driver =3D { +static struct auxiliary_driver qce_crypto_driver =3D { .probe =3D qce_crypto_probe, + .id_table =3D qce_crypto_ids, .driver =3D { - .name =3D KBUILD_MODNAME, - .of_match_table =3D qce_crypto_of_match, + .name =3D "qce-crypto", .pm =3D pm_ptr(&qce_crypto_pm_ops), }, }; -module_platform_driver(qce_crypto_driver); +module_auxiliary_driver(qce_crypto_driver); =20 MODULE_LICENSE("GPL v2"); MODULE_DESCRIPTION("Qualcomm crypto engine driver"); -MODULE_ALIAS("platform:" KBUILD_MODNAME); MODULE_AUTHOR("The Linux Foundation"); diff --git a/drivers/crypto/qce/core.h b/drivers/crypto/qce/core.h index eb6fa7a8b64a81daf9ad5304a3ae4e5e597a70b8..6eda6e617b811420c0c3cc53988= cb15a23abafe2 100644 --- a/drivers/crypto/qce/core.h +++ b/drivers/crypto/qce/core.h @@ -20,6 +20,9 @@ * @result: result of current transform * @base: virtual IO base * @dev: pointer to device structure + * @dma_dev: pointer to the device to use for DMA mapping calls; this is t= he + * auxiliary bus device's parent, which is the one that actually + * went through DMA/IOMMU configuration * @core: core device clock * @iface: interface clock * @bus: bus clock @@ -37,8 +40,8 @@ struct qce_device { int result; void __iomem *base; struct device *dev; + struct device *dma_dev; struct clk *core, *iface, *bus; - struct icc_path *mem_path; struct qce_dma_data dma; int burst_size; unsigned int pipe_pair_id; diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c index a9a55bc5bc310d82a52b5637655007990da5b7a8..a5b55f5a861d072ac7a82e178f9= ab223f892418b 100644 --- a/drivers/crypto/qce/sha.c +++ b/drivers/crypto/qce/sha.c @@ -47,8 +47,8 @@ static void qce_ahash_done(void *data) if (error) dev_dbg(qce->dev, "ahash dma termination error (%d)\n", error); =20 - dma_unmap_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE); - dma_unmap_sg(qce->dev, &rctx->result_sg, 1, DMA_FROM_DEVICE); + dma_unmap_sg(qce->dma_dev, req->src, rctx->src_nents, DMA_TO_DEVICE); + dma_unmap_sg(qce->dma_dev, &rctx->result_sg, 1, DMA_FROM_DEVICE); =20 memcpy(rctx->digest, result->auth_iv, digestsize); if (req->result && rctx->last_blk) @@ -93,13 +93,13 @@ static int qce_ahash_async_req_handle(struct crypto_asy= nc_request *async_req) return rctx->src_nents; } =20 - ret =3D dma_map_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE); + ret =3D dma_map_sg(qce->dma_dev, req->src, rctx->src_nents, DMA_TO_DEVICE= ); if (!ret) return -EIO; =20 sg_init_one(&rctx->result_sg, qce->dma.result_buf, QCE_RESULT_BUF_SZ); =20 - ret =3D dma_map_sg(qce->dev, &rctx->result_sg, 1, DMA_FROM_DEVICE); + ret =3D dma_map_sg(qce->dma_dev, &rctx->result_sg, 1, DMA_FROM_DEVICE); if (!ret) { ret =3D -EIO; goto error_unmap_src; @@ -121,9 +121,9 @@ static int qce_ahash_async_req_handle(struct crypto_asy= nc_request *async_req) error_terminate: qce_dma_terminate_all(&qce->dma); error_unmap_dst: - dma_unmap_sg(qce->dev, &rctx->result_sg, 1, DMA_FROM_DEVICE); + dma_unmap_sg(qce->dma_dev, &rctx->result_sg, 1, DMA_FROM_DEVICE); error_unmap_src: - dma_unmap_sg(qce->dev, req->src, rctx->src_nents, DMA_TO_DEVICE); + dma_unmap_sg(qce->dma_dev, req->src, rctx->src_nents, DMA_TO_DEVICE); return ret; } =20 diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c index 35bd59656931c5f12614405490f1e254849b9eb5..c77d96e7a7506153bed1447331d= ec0aba7d56828 100644 --- a/drivers/crypto/qce/skcipher.c +++ b/drivers/crypto/qce/skcipher.c @@ -49,8 +49,8 @@ static void qce_skcipher_done(void *data) error); =20 if (diff_dst) - dma_unmap_sg(qce->dev, rctx->src_sg, rctx->src_nents, dir_src); - dma_unmap_sg(qce->dev, rctx->dst_sg, rctx->dst_nents, dir_dst); + dma_unmap_sg(qce->dma_dev, rctx->src_sg, rctx->src_nents, dir_src); + dma_unmap_sg(qce->dma_dev, rctx->dst_sg, rctx->dst_nents, dir_dst); =20 sg_free_table(&rctx->dst_tbl); =20 @@ -139,14 +139,14 @@ qce_skcipher_async_req_handle(struct crypto_async_req= uest *async_req) sg_mark_end(sg); rctx->dst_sg =3D rctx->dst_tbl.sgl; =20 - dst_nents =3D dma_map_sg(qce->dev, rctx->dst_sg, rctx->dst_nents, dir_dst= ); + dst_nents =3D dma_map_sg(qce->dma_dev, rctx->dst_sg, rctx->dst_nents, dir= _dst); if (!dst_nents) { ret =3D -EIO; goto error_free; } =20 if (diff_dst) { - src_nents =3D dma_map_sg(qce->dev, req->src, rctx->src_nents, dir_src); + src_nents =3D dma_map_sg(qce->dma_dev, req->src, rctx->src_nents, dir_sr= c); if (!src_nents) { ret =3D -EIO; goto error_unmap_dst; @@ -175,9 +175,9 @@ qce_skcipher_async_req_handle(struct crypto_async_reque= st *async_req) qce_dma_terminate_all(&qce->dma); error_unmap_src: if (diff_dst) - dma_unmap_sg(qce->dev, req->src, rctx->src_nents, dir_src); + dma_unmap_sg(qce->dma_dev, req->src, rctx->src_nents, dir_src); error_unmap_dst: - dma_unmap_sg(qce->dev, rctx->dst_sg, rctx->dst_nents, dir_dst); + dma_unmap_sg(qce->dma_dev, rctx->dst_sg, rctx->dst_nents, dir_dst); error_free: sg_free_table(&rctx->dst_tbl); return ret; --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1815A49B46D for ; Mon, 21 Sep 2026 12:59:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995552; cv=none; b=k0qjxNhqNROnaIG5kWX5/xKuhYenh+sHxvYDKeBrlsMuzL+c3J3nlmD4308k2Q3QyG/slDYN9qZ4nTdpF3TK7AeVoaIAAUPCwE7Ru8og6YN3zrplOCmtKfx+nGRrMLRSJKl1xqAy/wYPiWUJ1j+06XrfzMcMspu4feiQbnkPGJg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995552; c=relaxed/simple; bh=E327Pomf3JKllBCL3eKN9FPAVurkOetH3xJ+MFfA5xM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aofJJyo5FN0qschJ32LCquqsHvsovzoFvdKN1jIPfsnZ7YnxZ4zzDxHXiE0UTUgD3LXLe5bB3kBWyGOhUMapAHX4wpx9Ff5Pf713GaztNBui5O2CI2WqjfdU2xdlGLZnoe9Ye1h36CHSr/USRJccps033iHBZxNV0Vb7iLGXYBo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=jT3eFuSz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=A5epBWkG; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="jT3eFuSz"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="A5epBWkG" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAe2N7287478 for ; Mon, 21 Sep 2026 12:59:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 5AqSFKEEkwVYj+NtZ0MDSRuOaTWu6Z2jWfDJcWGHQ/A=; b=jT3eFuSztVi0e+i2 SbwHg4kOwD7T7T/0jFLOyXg6lgKMRcFXDWJU7M4K9IhfSRAmDrGsI6hf8oanaUzU qIpVOcGntXsoNne6PFRCe8f9+AYV/HrM7xwpmFUuu4nCViqpmRz6sFdVXjp+i0lg 0HX/IQEBvLEwzk4LsIDUySFsQJC7BHrO4nwk8jpFXs0fP8XorSZJSJy4nGZsm8Zp Eqp4TCzKsltTVxUDR3ZV1S2vLg2KD5iGqeunU6feczilIsHTSbNRf1ykWXoNTOBS Pm18mWNVj4dXUZrUs/wVNNXXhigqTMmpv6plARRUIhuDqc+32z3GNiUhFSniSsMp PtggVw== Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gu0rj1546-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:59:09 +0000 (GMT) Received: by mail-ua1-f71.google.com with SMTP id a1e0cc1a2514c-980989f5030so2350720241.0 for ; Mon, 21 Sep 2026 05:59:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995549; x=1790600349; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=5AqSFKEEkwVYj+NtZ0MDSRuOaTWu6Z2jWfDJcWGHQ/A=; b=A5epBWkGVNfWpTZvBThLsGnP/DjQBhxHT3INN51FjY8GOKWODi/5UlNEXBh9OZ8xas DuqZH4zfFuhtlzEIFTHJWf6lKah2AjFauTQojkvj4CFzCh91QgcNVW6epKiUFjj/XPWd VcVJhx4dN6IMWAoqeqBx60RiGigx6WkSK7wK0+y/jcY4ziT4xKgniv+nkKqmRvDx/lJ0 1OCDwPdq8nFPMXi9KhyYQ4G/qrF4UAKjyjIA8ciNmaKRoQMf8ieAqd0KFup1/UcH9EUS hdIaRY3eAWNl8qKpOaXhb5FxyxBcoQs3vvrDUmvn3lcqeN2bXGfQmhS2ZL68aNgLe34y sfMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995549; x=1790600349; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=5AqSFKEEkwVYj+NtZ0MDSRuOaTWu6Z2jWfDJcWGHQ/A=; b=jfzWyq1pB/GLbhw1BYjH6Xr/PNLUSUH/YOrjitmBF0GyIdU2uStFG9oilWdPlvVfdz TH2kRj9xQ8YVjFAgYgYhQRfxMeIzT5eAUKpLV/K0GM/yfcJFDZUOO91CdtZqWbKyXrxl TV4Y6WnhLLPPBl5yuLUU/VW5VM8aChTfidS40VKIb08P5mHt6gpZlc9uvBG9XIhIFUk3 pzsT/RZf/t21wDzuJOLyxj/wEcFdgX/xJwNpsdCULbPaIDxI4xiDFbkEpPigU6pB01k5 qI8xcRo71Zr0FZ2nDTIaaYPNopLF8s0hV/qd5Y1kFTy8h9PO4MXUBq/ezYqnJTfQ4Fqn mQUQ== X-Forwarded-Encrypted: i=1; AKwUvBxzu0E+BC+MR8OJxrMfI/pP/vsZLkxq9Tvd6HmjYCkYVsXmQA+uEh1NzYvtDegRQ2GiUvfZGDPsRXeXs5w=@vger.kernel.org X-Gm-Message-State: AFuF++mAKVmgDwBE+q5r9qnKk1Xy1fgelw/C+FVhPpqeNFUqMubi8O0Y XyI61uHgTYtlTaAtAtrDUY2Fy/TS2b0kHZc7XtviAuBNqfRg3LkKmQ6NvStr5aZ2+YZ8EBWwCSR 3TFsuzSogu095NKB2GSbdoUxWzNhPJu8tpIJubkQR5TWZkvNi0qh6fN6wj5nlUiNzwMo= X-Gm-Gg: AYBFou0OLNM1ppsQXj/5/rjpqT+pAWFXI16BX5VboJHDWLNgbt9FF+RrN+PKb5wDPDZ KoC3A/w+sOLMmEaw83tUu2bRAKkpjnxDKVloPmvAq7FjXMzMJhlvVf4hWWLfUig+LUvLeuKuiA1 0fkpg9FUJ/sUMxEr6qRKi2lbdStmdrEoNo1U3CJ5aoVz+SfML9bR55nTXDbpMk+UvCrd1DuZ0g6 k5znKtcMNhEWDbGuTU32Lj5pqTPzcWyHj9sGx0Yd6V42WvJLbyUh8XjTUX1ZB3yPHwQSfCwEWvl rvlOU1vdJXrbOH7zaa6nrR1saotHdLNLonzIBSmEMj6vJCWPN0uZfxuFEsxYtg3HEUfWgFIqL4z FbfsjtWM8tUrTSxsJyur172p5Zgc= X-Received: by 2002:a05:6102:6890:b0:7a1:f7e2:aade with SMTP id ada2fe7eead31-7a55c28a6ccmr4962284137.16.1789995549289; Mon, 21 Sep 2026 05:59:09 -0700 (PDT) X-Received: by 2002:a05:6102:6890:b0:7a1:f7e2:aade with SMTP id ada2fe7eead31-7a55c28a6ccmr4962267137.16.1789995548881; Mon, 21 Sep 2026 05:59:08 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.59.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:59:07 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:21 +0200 Subject: [PATCH v8 12/14] soc: qcom: add core driver for the Qualcomm Crypto Engine Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-12-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4833; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=E327Pomf3JKllBCL3eKN9FPAVurkOetH3xJ+MFfA5xM=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSnzPkzRZxhXl7foHcU+1E5GYUoORYlNL6MAH auGzuiarRaJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp8wAKCRAFnS7L/zaE w63tD/4jVpOnPxw4kGs/0iApyM/Y9G214wzm8NjO9bF+C/1ouSz9dM1BTK1oyNwrr69SLJVjd+s V+FaAVwA2GnO6p1UrDqig6sjJ/Fq7+CH7apb50f/we+EjUa3a5fmf7tEnGPrpI8Xh/Ann3eQ1e8 m+SC2j8pwZyyUBzsyZQunn8IQy5QxbOpEcLpuNLgaIcc/49VraiomKLc4tajB/39lssnRPi6mc9 5Iv21zNF7mskkNA95VL3f6QvS7lU0TRFn0jpiXDM59gQMb/qcSm3/gwmFMK66Ytm1UZfYOxdfio FR13JdjerZeIiZCPa7CvCS5HnYHbxELR5qwhILylAtDWOc90YQyekhX/uooZeP0k2nt8OL1vGEt jIL4STRAcIkxGeMod6M30yFsEPOsu1+7MzSG07gUmcoDZ0KNWDM/wc4tz4RafDGZtRL6Swx8n64 yFBOKytBp1WAQPuLWE4jltZxhesaEIm/khO0u2gVgsGq4b8b2Oqfl+3aEEiDr4BdplFvLWqeq62 wGZpC2M4rs8tGLVORspQgvTVPuidY1P+tu1zjGZal6Mz+Z8TtEl/IapS+W9ghtPeQmXOqmf1OgO Tnj2WgZWGChf9WjMALz4UKB+s59HgcAWPaLbgxuAgav3i3EiAWYsvNNOJOu5CHQuIOHdcFXx6i1 dwen9plIPcZUxnA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4OSBTYWx0ZWRfX+62L+X2351GT IwmS0XIIyUT9jjwo3Q6S4iPsKeothQa6iOSMx0Tc2DZLU3r1XESM5hWux/6+V7syEnsQW+S6JnX 7yw6pCR4DVoDU8e9FMQXWLdorTFu2h8= X-Authority-Analysis: v=2.4 cv=AsR7T+9P c=1 sm=1 tr=0 ts=6ab12a1d cx=c_pps a=KB4UBwrhAZV1kjiGHFQexw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=EhY2VP3nYDlqWzrqXREA:9 a=QEXdDO2ut3YA:10 a=o1xkdb1NAhiiM49bd1HK:22 X-Proofpoint-GUID: PZrlqmiBcRtZAGYGA0ANnoAe-dgjRAWl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4OSBTYWx0ZWRfX8dnmrgrMkxT7 Zv1PO6fE+D2NgCDMP3j0BvmC3GGY0bvim9wscFWcCVnwF/65S2Rg/8rKCxUSdKHRt4UsH7THFzX XItoErrNzSZKJY3yewDSmrxIu+BaplikxUip9VKvzXGF0QVDSNTo3GCW9IbVRImiBlGaBikiA94 6+pmwLeqHyYe578SjGGKyi2thjvMROV1ElXEcpoZ5R6JzokYEs6nGeRCNP+KJz03lp8l1JTK66w dZ0wlkf5VQBHfpQc/x6ZLmowYjRpDZaVg3g4tumaFBWEKHB6lYPSDIyTQjQijcUdpm3SF/wA4qC ODkLp3dgPe71BbehjQ/SsmW/ClyiGTIqB0Kxp4Zeu89XpQg5tlmhOzKUyHVhxT0TbeMSqLOkhFg gm5pN/ww3KRHsqQ7DGg87eaRDAvRKIrKarHM3gNLpivIKg15i9Yokk2aG1MJCdPNJGI0YPke27C ujFn9yOHUzsF9v0yjiw== X-Proofpoint-ORIG-GUID: PZrlqmiBcRtZAGYGA0ANnoAe-dgjRAWl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 malwarescore=0 suspectscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210189 Add the core driver for the Qualcomm crypto engine. Its task is to bind to the qce DT node, set up runtime PM for interconnect down-scaling and register the auxiliary device using the crypto offloader driver. Signed-off-by: Bartosz Golaszewski --- drivers/soc/qcom/Kconfig | 11 ++++++ drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/qce-core.c | 92 +++++++++++++++++++++++++++++++++++++++++= ++++ 3 files changed, 104 insertions(+) diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig index 9f703261d7ac6ccde861b8d29626025bcfdbda8c..81c6634e855be23698591da6d37= 43ef68b516006 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -121,6 +121,17 @@ config QCOM_PMIC_GLINK Say yes here to support USB-C and battery status on modern Qualcomm platforms. =20 +config QCOM_CRYPTO_CORE + tristate "Qualcomm Crypto Engine core driver" + depends on PM + select AUXILIARY_BUS + help + Core driver for the Qualcomm Crypto Engine. Say yes here to enable + the top-level driver that binds to the devicetree node representing + the QCE, registers the sub-devices implementing actual QCE + functionalities and sets up runtime PM allowing the interconnects to + scale down. + config QCOM_RAMP_CTRL tristate "Qualcomm Ramp Controller driver" help diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile index 798643be3590cc8303854658fd483b7807d2230f..33dfef07e7db2c0488b14c78f09= 8afebf689d013 100644 --- a/drivers/soc/qcom/Makefile +++ b/drivers/soc/qcom/Makefile @@ -14,6 +14,7 @@ obj-$(CONFIG_QCOM_PMIC_GLINK) +=3D pmic_glink.o obj-$(CONFIG_QCOM_PMIC_GLINK) +=3D pmic_glink_altmode.o obj-$(CONFIG_QCOM_PMIC_PDCHARGER_ULOG) +=3D pmic_pdcharger_ulog.o CFLAGS_pmic_pdcharger_ulog.o :=3D -I$(src) +obj-$(CONFIG_QCOM_CRYPTO_CORE) +=3D qce-core.o obj-$(CONFIG_QCOM_QMI_HELPERS) +=3D qmi_helpers.o qmi_helpers-y +=3D qmi_encdec.o qmi_interface.o obj-$(CONFIG_QCOM_RAMP_CTRL) +=3D ramp_controller.o diff --git a/drivers/soc/qcom/qce-core.c b/drivers/soc/qcom/qce-core.c new file mode 100644 index 0000000000000000000000000000000000000000..8a9d070935cc87eaf20ae2db25f= 304cf4b2694c0 --- /dev/null +++ b/drivers/soc/qcom/qce-core.c @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define QCE_DEFAULT_MEM_BANDWIDTH 393600 + +static const char *const qce_core_aux_devs[] =3D { "crypto", NULL }; + +static int qce_core_probe(struct platform_device *pdev) +{ + static const char *const *subdev; + struct auxiliary_device *auxdev; + struct device *dev =3D &pdev->dev; + struct icc_path *mem_path; + int ret; + + mem_path =3D devm_of_icc_get(&pdev->dev, "memory"); + if (IS_ERR(mem_path)) + return PTR_ERR(mem_path); + + dev_set_drvdata(dev, mem_path); + + ret =3D devm_pm_runtime_enable(dev); + if (ret) + return ret; + + PM_RUNTIME_ACQUIRE(dev, pm); + ret =3D PM_RUNTIME_ACQUIRE_ERR(&pm); + if (ret) + return ret; + + for (subdev =3D qce_core_aux_devs; *subdev; subdev++) { + auxdev =3D __devm_auxiliary_device_create(dev, "qce", *subdev, NULL, 0); + if (IS_ERR(auxdev)) + return PTR_ERR(auxdev); + } + + return 0; +} + +static int qce_core_runtime_suspend(struct device *dev) +{ + struct icc_path *mem_path =3D dev_get_drvdata(dev); + + return icc_set_bw(mem_path, 0, 0); +} + +static int qce_core_runtime_resume(struct device *dev) +{ + struct icc_path *mem_path =3D dev_get_drvdata(dev); + + return icc_set_bw(mem_path, QCE_DEFAULT_MEM_BANDWIDTH, + QCE_DEFAULT_MEM_BANDWIDTH); +} + +static const struct dev_pm_ops qce_core_pm_ops =3D { + RUNTIME_PM_OPS(qce_core_runtime_suspend, qce_core_runtime_resume, NULL) + SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) +}; + +static const struct of_device_id qce_core_of_match[] =3D { + { .compatible =3D "qcom,crypto-v5.1" }, + { .compatible =3D "qcom,crypto-v5.4" }, + { .compatible =3D "qcom,qce" }, + { } +}; +MODULE_DEVICE_TABLE(of, qce_core_of_match); + +static struct platform_driver qce_core_driver =3D { + .probe =3D qce_core_probe, + .driver =3D { + .name =3D KBUILD_MODNAME, + .of_match_table =3D qce_core_of_match, + .pm =3D pm_ptr(&qce_core_pm_ops), + }, +}; +module_platform_driver(qce_core_driver); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Qualcomm crypto engine core driver"); +MODULE_ALIAS("platform:" KBUILD_MODNAME); +MODULE_AUTHOR("Bartosz Golaszewski "= ); --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ED6A84A0129 for ; Mon, 21 Sep 2026 12:59:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995556; cv=none; b=pXv/K52n4hM+T5JwFhGzpMOhfCq3Ed9JCAuUdlbP5k5R0wn+GIoUjUsLiBPDpxgO7+xvOKH1TO4nUICNitqkrDpou846PKuEMFFyQqFKzf8VFP4Z3PbFZ4AaE8+QKLQOH4XLSz/iCiwjQ+SAZ7qdnIDcey6zTy4lYjIqIK1dxfA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995556; c=relaxed/simple; bh=bCktZJO/8gfDzHepvow51xjIR0hEa32X9sN/sjtpGu4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Bw0wYUo91B8fn4SQkRQ08iR91WZSvWSWGq7WoE6tKplU6Pf5B2CrEt5Ns8zgdT9oPQrycTzDFmHqjOP8X8u+cEP4kSd0Hf4qHQAix1lKJFwGrRU0QvpZRK83xS3VBdiR715wfsz52ME5ewHFqsEL28Ch/xxBFnVjmYJni5x3Yb4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=YIlCNTc9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CpQ3d9wX; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="YIlCNTc9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CpQ3d9wX" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAduH7287294 for ; Mon, 21 Sep 2026 12:59:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= fr7NjoMI1iAMhi71+eGjCtTauKtots8MRIQ3wqCQYTU=; b=YIlCNTc9ZHZ6JPEw 7WVp4mNAxf6tkdMuXBiq1ybVwORfnzkRrWCYQN1fC2Z+JTe0fzTcW/CWlOryoRT0 SFmt2s1xF1pUuK6KuOJtVlPs9IAwE1ESS8QrpUzBpvLVjAlemKQNWd5rC0JemLSo akv342/WG963XfiZnWxDvaTzMRJCd48Wv5IdOc1W4TNHIOHvyx1zv5giRIQg1oGG xis28DH0bx6HVGP8uP4WWBOF5KA0UAyFsHAjUXbYZxc2GcC8tdEh1buKfGVca5H1 /FYq5Xar32WW6l6gXq7BLe6WpYrfgrbgkCOdvduMTRoi57NCmu4BRJThrvxSvtt1 LxLhIw== Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gu0rj154f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:59:13 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-78fb21aaad9so2849212137.0 for ; Mon, 21 Sep 2026 05:59:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995553; x=1790600353; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=fr7NjoMI1iAMhi71+eGjCtTauKtots8MRIQ3wqCQYTU=; b=CpQ3d9wXt/hw7taf5sGlLOARZ+MMoovNhj3SxRM7WxDtI3+S7kGbpVeClGX28Qzt4t R7A6I/8oZRiPfiXB8pWi6mSbLZvcAKbCK9OIbiexDY6AuAVgAVuukgYUa4ONYuRVeZbn eFE/3yVC1HzTimfOO1IgYrWp5g1T5tI2159OWLpfhbtbzJ4iOOvypHRq0mhR+FxasG4T b2Lz2jBrmnkypUuPXlfFLBRXXJ4ZMDsZdQlNeZPvBRAmNN8RSsaQvrPtSDDKMCvrnruz 3SmR5lax9wJ84p5vgCq/iTtse+XmXJ+LK3onKMxyreQ3rNuSsq4dzg65QP4/FBT7RoTV bcBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995553; x=1790600353; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=fr7NjoMI1iAMhi71+eGjCtTauKtots8MRIQ3wqCQYTU=; b=jdt2ux9BXyblyDBAH39bXKYSJhHS4iMfAI9eYbqGB+PpIeE6Q9x85iCRthzDD6e2bs a+0NfOhmtegs4wJQTiQTwMtzTAqXVkaapMiViM5vdJzrngvZ8o1bf1NrnfGyvn1Pu0Bs uVC8nN9R8fvIzVnHSLQXX0DPqObprXxbzGmwju28ayA9G8DsISwqclLk+AN8o87/sfOr TRqIxkjXwmF3ono45jQMwN6VRnGZvWI1PjZSzwXmJc8AxhU1NdwcX16EpHKOvjsZmgkN pCExTtci6Ye65F8k7AIUorPB/1ce/WPScRNZ9S5f4nU5zeADJTxhwxmfnysXhzUDaFRu wBvA== X-Forwarded-Encrypted: i=1; AKwUvBxd/WCYvxlj/HuuWFCVw6rb7OynL1hs2xc/c3IkXRCMflUlOpOfNzDzyt4tbHtRs6ytpCZrIJfz6FRXvuA=@vger.kernel.org X-Gm-Message-State: AFuF++m53cbdcR+SjjkT5pw/6gDQlrUMO+t2dR7VBKaZQS6iVDXAgM+D SVCEcIrvJNOhfJ1bkHbICtCM4tDbs+895aTLNkkkf4dj8gc6xpruISr74/xVW7fKCl6xfZfl/Za w+yi7mRzgL2VoJ3YF7N3gTVnpzlUjqx6YPfxnXFlNccf+TZbTr+dD2W5lR+Jum36OQK4= X-Gm-Gg: AYBFou35+ezzPMYCtIF6R3EE+fhjnD1EWz5hMZz4ETV3P3eemNpgHaHs2X7D62KfTZc fESZCxnz3gvjh5wE5sqlAKFEvg98LXMgIkb4Q1Xds64jtLXSwBmt6T5+AQ7tMP+p8e9yltRQRNJ xdFlssM/iAMrTS1iXd8cByp+kXKGsRCh7+OjEFc09NoUVmyoGnSdd8f3ZVDJ+DnnmNcgkKEaHGQ PxuD8JF96lIfgta5VBjNEh7a32Bvm2OzQRb6ANAfjmASKioJAUNjq5QZU2op5sGz9CNRu16e1BM Ij8Rc0g0bnemwQ5gfu2jIy2Pj9iA5tzkNz8bf8zmv7G2NfWqNnUDBjxMiU3E0Y9R7/y0oYa7Leh k3Vz3QTsRdVOkb06JyDL7UyVU0bE= X-Received: by 2002:a05:6102:5089:b0:7a9:3b76:61ff with SMTP id ada2fe7eead31-7a93b766357mr830001137.1.1789995553214; Mon, 21 Sep 2026 05:59:13 -0700 (PDT) X-Received: by 2002:a05:6102:5089:b0:7a9:3b76:61ff with SMTP id ada2fe7eead31-7a93b766357mr829989137.1.1789995552881; Mon, 21 Sep 2026 05:59:12 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.59.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:59:10 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:22 +0200 Subject: [PATCH v8 13/14] arm64: defconfig: enable the Qualcomm Crypto Engine core driver Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-13-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1162; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=bCktZJO/8gfDzHepvow51xjIR0hEa32X9sN/sjtpGu4=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSn07cNNi8xasmcFS8fkVlOEvKupnwcDN7voH 2lwurq97d2JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp9AAKCRAFnS7L/zaE w9BeEACwNMbLajj2JtvYEF8mbMU1mEIIcPSFF+0/wUMsW/0tRO661SvDjdjed7qGZWxuAV7X47l ExsQ8lo3YsGYrmVSORxshTz+LPppkAaeFJRedUrZxGXnnzlPr+ZKOnKXH2vkdzDbgUQPTzAldO0 oJG/P/1LUpLofDDeBWGN1ZiwiEOwnpvB6c3Nrt5XGM0tiq8STJHWL4HxCDQsjOJlP7Fhn0JH7Dw 5pZ9G/GTnSe+o4fmzsyfFk1WKQgNapClgDv8kefAIRJXDGHriTsiVxsXt171955S5agxjx6kbAY 2oKGSltyMKOkItJPKnHWkW5qrt5sqAtNg2kRFiD8HEcmBqbWNGz8BZhKpgXy3ML8jLdQy2yphBY iiGC+Vqfk+SXVifz7WJOT65up4oJ6f17o7wtO5/eUDsZar5de8+ZoxO3X0y5yVGAe16rekitTQH khIOXnud93SABrJapqTwahU25PamwkQhG1iFTDD0UrEyV1AW+a/aZb8/9tj8GCsTEr94xULOQoV tSLu+VrG5e7BJE27X0tiBVzH6HxuSaXam03/89m0Nb57ZPXCBS6bzJDEC4Nqjd0wISIpA+pFnkc ZREkzh7gayZ77pqlubs+dPG8d5Q+/f4oV2j/01hv0PqpDlhxSS34gVgvZ/PRm5I/ITjWcxe1bmq BzkHeGc4I6mTrtg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4OSBTYWx0ZWRfXzEywi9RxBDk4 ZacDajcO+pzlzL8rcmkSxkC4Hqzz4ceiDWs72QmrAO773LS8+C95qktE9hQEOPFXMa7LFBVamgu wC7StC612ZMRo6IHEpgGNm3YcJKEaQU= X-Authority-Analysis: v=2.4 cv=AsR7T+9P c=1 sm=1 tr=0 ts=6ab12a21 cx=c_pps a=P2rfLEam3zuxRRdjJWA2cw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=QftN5WpXeUmWSfsFEiEA:9 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-GUID: 7Wf5FNb5kYPWIhhu6I5ij81VFWZw_99v X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4OSBTYWx0ZWRfX5qWohsZJXwGE SniWr4f8LQjqvFiaqt2p3u8Q9xadZhUkeXYys63VGmzoWgtPHDqVKNH4dTy/xvylT62p/ZTzRmL dI05yGZE+owokKHlYJTAH0fEtwVY+sy8hQaLTt+psju2kyDpJXNDIZlh1743cXPMl9fc7K/OZhV oWomPxkqOX9J+SdiQRpiQP5DpbisAakx6mgdQsQk6l5aWGHX2g8Pak8wfZWJitBuxhMYle7LuT/ sb8TRqPt7tbyE81+7Ubpey5iZ7YufHcmRagFxxvrOAH1lMqFvO+JEMVYDiQlv0HojMuRK8lAXPc q1ZxP43Ccw+qeYEuzCrhkjBUbZjRhrflu5FCpoxR0eNpErQicW/4BAE3tAGcv77lOhhx7mL84qu 1l7Z8VJwHcyWFmZ7HIobQVE4QhlTpXjDDGAjRzw/UdrgTJ4METV0EuYRwuRmnrNzoxKvDUKwLVN GnGsdla4ApcpyGsl7HA== X-Proofpoint-ORIG-GUID: 7Wf5FNb5kYPWIhhu6I5ij81VFWZw_99v X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 malwarescore=0 suspectscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210189 The QCE core driver should be enabled by default as it binds to the qce device node and scales down the interconnects if no child auxiliary driver is using the IP. Add it to the arm64 defconfig. Disable the crypto part of the driver by default. Signed-off-by: Bartosz Golaszewski --- arch/arm64/configs/defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 55a2e8c3ae3522630df8c31cb2b7c7663e973aed..360d07bfa39a824d13e463912ae= c15f6fc58e5f2 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1671,6 +1671,7 @@ CONFIG_QCOM_SMD_RPM=3Dy CONFIG_QCOM_SMP2P=3Dy CONFIG_QCOM_SMSM=3Dy CONFIG_QCOM_SOCINFO=3Dm +CONFIG_QCOM_CRYPTO_CORE=3Dm CONFIG_QCOM_SPM=3Dm CONFIG_QCOM_STATS=3Dm CONFIG_QCOM_WCNSS_CTRL=3Dm @@ -1957,7 +1958,6 @@ CONFIG_CRYPTO_AES_ARM64_CE_CCM=3Dy CONFIG_CRYPTO_DEV_SUN8I_CE=3Dm CONFIG_CRYPTO_DEV_FSL_CAAM=3Dm CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=3Dm -CONFIG_CRYPTO_DEV_QCE=3Dm CONFIG_CRYPTO_DEV_TEGRA=3Dm CONFIG_CRYPTO_DEV_ZYNQMP_AES=3Dm CONFIG_CRYPTO_DEV_ZYNQMP_SHA3=3Dm --=20 2.47.3 From nobody Fri Sep 25 14:08:44 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1205B49DBBC for ; Mon, 21 Sep 2026 12:59:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995558; cv=none; b=dXo5QQIKnQBrGVPEktbS86PGv6vsKxi6Ad/2ckFVKh6t672cTdLZ/GHFgT9+HTtA/ve1hqz++AWVY0YqCXReFxVSWTh0wDzYC1njIWV8r2AR4zWs9PPyhlWMHaeUsoV6jK2sFcS05bFHCi77ckJtcN+Zvfo99xo/yPR4gSLLMFI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789995558; c=relaxed/simple; bh=QSpKCyM8sZRrkH8iCybVhH+lwRqWiSeaHHG1sXtFQNM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gzNuyRw2yJEOswPtRA2huBwCJp3b7Vxa8F3jVeiqEoY2a+xYBhc+zTbkmQG/3hCnmlQ3Zy2kGZhGHOHS7x4PSHBJR5B5I4hTi5wpf6N+aBhC+71wm8EOERZ22OJlderdpN+6ESXKKA8bvvppd2148a3suwsK9maFAYfB2OXewvQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=bV7wF6vD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cKx26hCc; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="bV7wF6vD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cKx26hCc" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LAeCW4838004 for ; Mon, 21 Sep 2026 12:59:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= nBjYFzsEvpA7J7qMIXXY1VKcNjLps3zJt5nU9OdLkCQ=; b=bV7wF6vDiIYe+4kD +pvPl0xQg5uJfQetk5ooKP0jfnO/ne4/B5IwPJXfiUltdTRIiN1Xn/aDvZOy5ORY v3LMK33fSckoRHq41Pmqc9j4C5XpuPZIIrIrfvtSX4ejImX8ffWk9alyXijDZYlj EZPKu0Bq23bDCB0nM6D5/jYh79+d13iO86WLzBEhgins72kvI4n/+6WDzwFVBQPG dTha22GmqaS0hqV/LMnswsN2J461I44CE5OQTqpLTfsNWekkGbOhzrcZPKjOFWpc yHgId5i1cHqshYz7bwZsqPt12XNedVRD64jR/e7r/UA27xLwaWf2xh4cGUqjZsFd EhXjog== Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gtwf5hwkm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 12:59:15 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-78350646d7eso3203916137.1 for ; Mon, 21 Sep 2026 05:59:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789995555; x=1790600355; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=nBjYFzsEvpA7J7qMIXXY1VKcNjLps3zJt5nU9OdLkCQ=; b=cKx26hCcgv2VTw6hWQWr6T/NfFnQeloM1cuIRT183D+NVLXARoB4gOp6Cjxz4bW+f7 hnws36J0IQDbPsLn/Z/qDmF7gvykhOTixYy4QRPnqyZu+cwpth7A4wyU2Ll2Sm9B3azO PaPvP1XcXXtKNFBhfHrRj2k+hZnxEJzO46uEcRPXOw2Fsx4Q6/3tG1lqSeJWzPJnUWad 4WtVMAtR0iaRXRkxpxwBAvvFDiHwrnF/Vr1Eb085L8uxJSJoqGC1l45SP5ylYdgsaSIz x1dshSP0JbNjFwzJ+CMUG7c9J9DQclesddEq+rI0/eKg/028Az9XiVamJdUBhmFqt/uc vSNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789995555; x=1790600355; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=nBjYFzsEvpA7J7qMIXXY1VKcNjLps3zJt5nU9OdLkCQ=; b=MngnXmzWFmFrMXc5FYWC00oh4c/xvxudQ9p7i84ZnIQnWRM6cR1mbs3LCaWILquC3R v+wcoLbL7tkpI0R3W/RaL3Ew9PBSTUAA+5EFzX9x0CXmfPZzis2rF5aLaNWt+THjKM5D GAU3EuHeCK8IHGSj7J0S2hJdo/aXu8e7SfOYbb/TMcky0i1oJ9xCl5TeWZK13dFgaPRv 1mxIBx4dwqNTeelOz31ek+ymFzE0IGlhjfL6aY8mGtuGJsqOnyutCUJDMywA8QufqSo/ ajCnIsDGFScrPds8SUf7E/oe/BORcKXLjJEBlHEXvn2ormfAHckfMq2qwdmTVhpIJNSp YZCg== X-Forwarded-Encrypted: i=1; AKwUvBy7lNhBcJoM+F1OejGXa+gdcsC5qWd8wUz7jGqFPDmeeQOC0n4Cy1EtkC1MZvh2gXvBSadV11t5HkfERN8=@vger.kernel.org X-Gm-Message-State: AFuF++lnHQdsYX6SVdXm7BMXvrgpdJQLbmcYYE6nP0LzBBiZXhXSWsed sVvbQljFeCI8nqcZNWaO+ClfSRkUlfnMwnePlGtWW9DCJCunKoXCMFceCKtYot9opRfRR0TlRu/ zw3AVg2kdYrv+lB8ojo4blTp9u9NSgUoGthFNM9PeAHp7u90jnfFUPbFm9X/lLA6t4xg= X-Gm-Gg: AYBFou3uk5Y7b3RY4+V/pxwEX+Q9ZkHOAEdi/5ijSRg23zlo95MrejRqIJEKwPj8BlU 63dNS9t/Rasez6NGPKltWyRtmsQgd5rKEOpGpA8MdRSNDXrPTHCPPJKiVK3K8Byo4hgGdWPdHmP Cls9Mg2B4dteV7csmDj166svinn86jU5S6DF47VBxDWTJEbSujURd7XU9g0O3BtJcKKE2dsJYLO OZq/1dohmV0RzHse2tYEdHAiIdMl9PFXqI7g+AsBF/qPOLVSlyQZnVHmvGanLwVBKyx1Fq5lvon AtW+16a0LQXVRJNVFxx2glR4P41o3I06GMI0eU1Y3jB/mFuJkZh4+EMeITwm8vUC9y9MUWGmzXk 4ZWul4g608Sn/o0DjRrtFDm8dv6Q= X-Received: by 2002:a67:e9d6:0:b0:7a9:e680:efd5 with SMTP id ada2fe7eead31-7a9e68119b3mr420321137.28.1789995555157; Mon, 21 Sep 2026 05:59:15 -0700 (PDT) X-Received: by 2002:a67:e9d6:0:b0:7a9:e680:efd5 with SMTP id ada2fe7eead31-7a9e68119b3mr420303137.28.1789995554810; Mon, 21 Sep 2026 05:59:14 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:d04:d483:faad:1e4e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2a359037aasm320278766b.63.2026.09.21.05.59.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 05:59:14 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 21 Sep 2026 14:58:23 +0200 Subject: [PATCH v8 14/14] arm: multi_v7_defconfig: enable the Qualcomm Crypto Engine core driver Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260921-qce-fix-self-tests-v8-14-107537869a72@oss.qualcomm.com> References: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> In-Reply-To: <20260921-qce-fix-self-tests-v8-0-107537869a72@oss.qualcomm.com> To: Thara Gopinath , Herbert Xu , "David S. Miller" , Stanimir Varbanov , Eneas U de Queiroz , Kuldeep Singh , Eric Biggers , Demi Marie Obenour , Bjorn Andersson , Konrad Dybcio , Russell King , Abel Vesa Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, linux-arm-kernel@lists.infradead.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1209; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=QSpKCyM8sZRrkH8iCybVhH+lwRqWiSeaHHG1sXtFQNM=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqsSn1lcJ3rdfljJxEad/UDO/DxiFyNO4ZMK2Jv VLsS+uPsKCJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarEp9QAKCRAFnS7L/zaE w8Y2EACRLm5tVJGsdU7wHq7uz5JVixX78aLj3rfMQCXd4kW/b0p9kP3eDeDlGTJnQsUCtPXIXMA y2/EiDWvq600Fm/uQ/LI5K+1UpwXl/bt5f+fnx9vo4v2oArTemL0dibH5JnYhmThpdzSH19drVP qMB+8xybF0IONLKO+pJw9GgKmwsjjLZxCteYfICNGza7czGTRJgSVAG2UKLxNffTci6zBsFwffb mD1WQMzj36dQckB+pW18UJw+opwEPwHZcZpdn8sWBC5WjODrMXVqp0EU0QnpLStmDhUUC6EPNn2 WhCYVxqWMXF2ExPaOhGhY6YOXn6dJ98GP1p1JArCDu5bNeSJkXkIKEKPD3OmVwp4ML1irMLN4K1 PGT7WV66l/33kw0Ffle1SuQWAcbAx09pVH82isAfn01nLpmFxIgv7At9AZ5W0QLdmMQwOo9cVDk 3Trf/zhcHuDH4FKTV4K/f+R5OWcj1yps4XFD/x9ChGkwCv0jGZSMZnP84abqWb+AWOg5uT3wy1S YPNst0ftsiuA5iQyA0uYerx2gojteeg3NK/aNXhHPkha6yfqgdwOo5kjPIkpXAfjaM3zfCcFk2C apa19Seh8cGC5LyXarhhZ6BHRXEFG5LqsSKB36qsRakdGows/AwFyD2FDnv0uwIgUtAv6nC+nOj BFnDgptCV6+I+mQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=SJLXx+vH c=1 sm=1 tr=0 ts=6ab12a23 cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=QftN5WpXeUmWSfsFEiEA:9 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 X-Proofpoint-GUID: rY4Y2pxVNXGK70rUnd6Ddnbi2ihYkMj9 X-Proofpoint-ORIG-GUID: rY4Y2pxVNXGK70rUnd6Ddnbi2ihYkMj9 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX20QqJX7LFONw IAz+Sng5Skm/cTqNaUvS0HAJzHxm9T34fUsVj6ufuFRAOURdkFBtY/Wz7djbriRUOvfP4oZ+S5a oAuzkYMduILtgc+QIuqbhNkkUGPjSUw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDE4NyBTYWx0ZWRfX92feIguaiWNB 30IU2DEOoktIzloaL334PdO/akGajPwfSSD7moFhouQhn/SHj7a3DPnG/Gv7bWscpB5xyPm8nlo OT3S5O0eBjh/325nDYONCqDUkdjqNWC+OnsPuVtLFIADw5U/THpKTKRwisC3bzRWfKKYqN/FPfw t+a6f2P55ala5yqHMhm0friufHAsedCiSbz1JEQrbmy29pJyoy0Jp/2zgihnaf5yCZsFBWxL5mS 9lbzYfvFBdQaL4WkCG25hgJiWUrON9Nz+lkiVAJe/fCTWErae8HHbkcSAJe/zy30/GyxNb6HVJy a+Yuqfef8bn3EXs8MCFDVyURrseBAWHKOzkPQDKVqq8FbkkG6MkyvNpZz2ZzEj3o1FZscJWiD6V oA5qyCAu2fjUwi/sYM+O4pr+J4GdyvN6bR+MBS/YVRa6RqdDRiX9VvkL667OnzBSSeAsZZkox8J k2ksMD9xDG0u2txlv0Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 adultscore=0 clxscore=1015 bulkscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210187 The QCE core driver should be enabled by default as it binds to the qce device node and scales down the interconnects if no child auxiliary driver is using the IP. Add it to the multi_v7_defconfig. Disable the crypto part of the driver by default. Signed-off-by: Bartosz Golaszewski --- arch/arm/configs/multi_v7_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v= 7_defconfig index 2d6292f8cab39596b540084fbd8b30f4c25cd4ff..7750b11f80312bf6a6f0fb27631= 5f32f8714b4dd 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -1150,6 +1150,7 @@ CONFIG_QCOM_SMD_RPM=3Dy CONFIG_QCOM_SMP2P=3Dy CONFIG_QCOM_SMSM=3Dy CONFIG_QCOM_SOCINFO=3Dm +CONFIG_QCOM_CRYPTO_CORE=3Dm CONFIG_QCOM_STATS=3Dm CONFIG_QCOM_WCNSS_CTRL=3Dm CONFIG_ROCKCHIP_IODOMAIN=3Dy @@ -1323,7 +1324,6 @@ CONFIG_CRYPTO_DEV_ATMEL_AES=3Dm CONFIG_CRYPTO_DEV_ATMEL_TDES=3Dm CONFIG_CRYPTO_DEV_ATMEL_SHA=3Dm CONFIG_CRYPTO_DEV_MARVELL_CESA=3Dm -CONFIG_CRYPTO_DEV_QCE=3Dm CONFIG_CRYPTO_DEV_ROCKCHIP=3Dm CONFIG_CRYPTO_DEV_STM32_HASH=3Dm CONFIG_CRYPTO_DEV_STM32_CRYP=3Dm --=20 2.47.3