From nobody Fri Sep 25 16:51:46 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 79A2C48EC63 for ; Thu, 10 Sep 2026 13:01:41 +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=1789045303; cv=none; b=lJK5bIUcHJKW5xxEtLPAKZZpp0YutFEW1jgWDr3P2Pw1z05TeYXr1QbkR2UNRCK29apUDlY2nphriOEwOmeVEqfXrFRtrdsjNiB+jj3UNlLVgivvgVdLE5RI2VIzKi4xhszSR28kw9+fddxNq4ySVU1VzxGszZJ4I3PNfpG/wPs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045303; c=relaxed/simple; bh=jX9qpTLTDR3AaV4kn5vvkCsyHxUfD9CKGQiGMuz5O1k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=onD6hXFPepI+FOB8sCrTnfgFKjZ2OMjFz2iOKi9mb+Qs68C4kaxtLd/Q+vqO67ggj0I+sZWAFSWnMFVrW+Qgkhcr1fsy/f/iB/gLGENH0gHko0T+R8n6bEWrbjYb+qR61UFDJJ4UxcPQV1QuiY1U9wGRoMQ+6Mue5l2zKX7Sq3Y= 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=oRC6i9BV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=S7R468NS; 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="oRC6i9BV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="S7R468NS" 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 68AC7h7r244656 for ; Thu, 10 Sep 2026 13:01:40 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=oRC6i9BVWBHapb39 gtHHkqihreFDxI2Z7J8RUkiFhjBOBeV5KT2n3VbTlMJNxed2leY2MzGI2NWQaE4R MKkHKwIH/voOfXwb7ZoxneH9yAEMttc6POED5z84qOrIhhm43R0LC4J5eG5j3tjY JSi2/VI6WHiKCRCXBf6nzyoVEMuGDvDyltI8LfjxiS/rYn2lrAuP+s3UN99IrLZI ViCDMeo1vkbC2bbuspKMgrd/1vwrx1rvJH3TVxxgfXvJ7R5JmjGPlW5Q0vRuCGXC zE9S+gSSdvbS0KiRTPCeCb8XDi2oq6QC7+O5yPuXG78uPiYpGvGSH8oaSjCVkuPE 2iN6ZQ== Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gkcyfkyyx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:01:39 +0000 (GMT) Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-5c82ad4977dso2131846e0c.2 for ; Thu, 10 Sep 2026 06:01:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045299; x=1789650099; 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=S7R468NS7xmh74kMuBHiqCZHzjjPSzXGitVOX7gkerp3UMsWS3nt+e+imz5Xa9n+Ti SMhdYBCWifP6TOWc1VJAdg8RebLWgYK4D23dEdXbMRIKI4RKgICQz3xpV/syw3J5nfyE XHi4362irPiEDIIXIyTzq9B2zokuWrs5IF60iUqbxypOr/FRj9PPKryGFi8V4BMpZ+sh wlxnJn01Yb/vmbniDDRpB8Hp+iuX4cq0Sg08ToLiffvO8QMFYMuQnYl8dqUmGciv7GKC oqzqSeAzPTR8x7+P4SCaTjzoD3o6VM7rOdXK0t1pyuaxja4IMWqOi9joA6xwWooKD9Q7 hOlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045299; x=1789650099; 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=VasUGUV3h15p8Fz0Ifnyjalh3oAwh0IhQstuz3swMimrA7+aPZ0fGjhqCfzCfuY5Bo MlzU6QLZ/33NDh/ZPYp+BOT0ZmEazcu8/TVLIYEvFU10kAPd+iGVqtEETPKQSrSQu1ln E8oiba4d8Whgir0x9e4qxE03sqVw8SeD3KOJdkww83KwMj+KDH6pjkj2reKUkjj0fkgL 6Iohk2zMNNfVsC1rYWsScLE3ruc85E5evg6jJD2KGuW8uU6iZKHgKlSHp4Nt26a4AHN4 XQxwxyupDYPwPqGCd71sPNPNe/fnURga1fWfrNQSjLdAHXEdNZTMOjfU+Ial11l5NbN8 ef2g== X-Forwarded-Encrypted: i=1; AKwUvBw2B8gAWmXApvsx5FZ9WvXCIcfhW1NG2pTsJq1+N+VlrvBcsLnBR6KQzncqV+eFVoXPLf+WfN3LzKTYcKc=@vger.kernel.org X-Gm-Message-State: AFuF++lwLD8nknIhItJIUSXM4dAWI/xOJciWtMdVZRQOpQVNj4qEYdbc qqZx+qdLlN/97wOor3rn9HV/7ZQ/wW0s7IBzfB2YS0puDiRglFjYVz0DZqujxwrp8zxvZ1jHLUQ wnrod+tHKSd8R2A8oi/lsOVPOCZ2W4eg6yUsrNKYYcFA30K+lRRtJrwBu381oPYKcZZM= X-Gm-Gg: AYBFou0FYk/1AvrgWmaDfyMctK+X0mQ0rH6X5Dvbou+RfE2VHjLwvvKaK2pwAHceXCX 9Jj4w+Mzq4TtTGfFsRrikY1v7+XzuOoIFJze/U0/0bUNBcXiGhsxRw/UyiLeyGyiTFYzjAHv4qd 4jgap+LkoHOOaSzEIEQLCUYmBogFCoFJnLShxYAOKdUZUMStxkBMT8aq8LXdN8akt8AshxJfXS6 j0MZabiK47KYnPPq0dyQNRW3eYcZDUqrNiF4xM6t1bHBCrwXvaP7EZzGR4vCgTV0KRIrDG5bTWR C1WTxhhofw3uT5rmerbdL7wRkNnvsrGRzq1i8OepAOUvRdSs0nBkKB1ibn4vBolbkR9yWGmeExQ +Dgn2siUUPJPW7KRWE57/+rct2n+V X-Received: by 2002:a05:6122:21a4:b0:5c8:3a2f:a497 with SMTP id 71dfb90a1353d-5c83a2fa886mr2862810e0c.0.1789045282469; Thu, 10 Sep 2026 06:01:22 -0700 (PDT) X-Received: by 2002:a05:6122:21a4:b0:5c8:3a2f:a497 with SMTP id 71dfb90a1353d-5c83a2fa886mr2860320e0c.0.1789045273518; Thu, 10 Sep 2026 06:01:13 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:12 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:42 +0200 Subject: [PATCH v7 01/12] 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: <20260910-qce-fix-self-tests-v7-1-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.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/NoTDAcsmYgBqoqoJZIWIXW+j0hk5IgiX33WrCjHTt7/ixBGq2 +/qS7cn5jWJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqCQAKCRAFnS7L/zaE w9tBD/48irHDb7sH9v/HqkpxveTDaGlk06v6VDQaPN9nBIWEiQvigDJ61F+iY8ErzOyzbFJQBRq kutA4DsjJPSmajJTAHvJPdBNVCEZ8YyCbuWK0GYP9GhjthzjDXHltJaVBrJkQYWVZcX75s8PG0V CW30tpXYJbDpC6p3z6ibjAjtODfGTXKEBfZaAS1cZNbp9CMI9jVqb/s/2M1qnrL7+mpPgx8C7Av CybJfJB3UENNhFoyV5JabQACN6N5SAGYsjZWooT5BrFk4G69yD0vSApqqQM3SCbq6r6KMBrLiji qneqkQdfPVjOch5DraXSyeer+dAg7k21iq703C1nooqzNPh+B5xy78xekO6jbsjrefVnk3gbHqw sLPRcXs4UXi4tMn4v2qhupZ+GHZ45Z4C8aQYxBNTvVC8+VZ0gvwDHpOvBgY17/lqTAHGfj9tgef W4dVb+olsJmgp7aRINxwItU4sJdzXdBdjxVTauO7RP0eM2fqxsEDzmXZ5RnLhRZEgOuDjYJ3Qa4 CiCwcRS0ayl4x4SuUm+VIIl/hZN9XvEh5D1YjdWn4AQ5KIBav077XTIyalwNwiqiNVzaMxAWooT 8H6jNo7C0Iq3eL4xF/OjVT6oaSFSWRfqWF0e8ilPvKdhnOHdcSE3Qc20kmQ6phc1CtXLVyhpEFs vFD5P95mdPuvD7w== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX8AxbR30Jzt3K +fRl0I1v3j9yJkHlsVVZ6QGS7LzqPMbMoH0NUZZV44LYGM9JFbs/JlmAmLr6uQEEz/h6V7JAZea DGRw6cTDHfOzIdlC/LM738XthqNMVU0= X-Proofpoint-ORIG-GUID: tcbELyngMuck_6EMaYyPhpLn6sLeqXsD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX8tG6U6EYz5O7 iAFhqapfYpmvMCXAzw5goHFHclpijNgeXZhVF/XsXdTRuGcuHEh7Em78KKVoysZzRoLXzt2kQHw C8GJgnDDnZ4DaDfRam4qgJej5yBN8eRaHWk5BGRbUVBVILkHLeITk72SH2xZMPlnLo/Pu1DTNCN z4Y7YBEVnQhylpdbK1bFUB1szord2YHqmvIZl875/Hn+XfRZkTYfxDYTV6NFw2N4xj7jraxYYw5 qfq/0gj9sWIP5t09zQx1xKZ2SWfh7kISjk6XHzlfkm6uvOkD3Y5h8u1t0Qf4JcqhXLMGxpXNBqt PFRIvZsCcHI9uDTnxeiLBHLMuxEv3ki+jHvqXGLfbJLlYQGUyXPiY0nqEnxBhAz9FM0YC2oOv7+ BbpxMEjoRgyvK5MiGmzzyTNKjlQFH4LhHU8p0Rafa6nuOroa/6IrKNwUzYgTBvXkQo8606ntFjP Fgfkep/aHBMyYiIFYDg== X-Authority-Analysis: v=2.4 cv=H5pOUOYi c=1 sm=1 tr=0 ts=6aa2aa33 cx=c_pps a=+D9SDfe9YZWTjADjLiQY5g==: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=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=7HxpRQPu5N1oW2hdKb0A:9 a=QEXdDO2ut3YA:10 a=vmgOmaN-Xu0dpDh8OwbV:22 X-Proofpoint-GUID: tcbELyngMuck_6EMaYyPhpLn6sLeqXsD 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609100156 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 16:51:46 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 EF26E48D89A for ; Thu, 10 Sep 2026 13:01:21 +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=1789045283; cv=none; b=BCoawAmuMA3umO8U1YuSDqVWhp3TYryNGtRsMduZlC8Rgs5bhUnle8QsfcyiJJhYVT0yh8K9+mZJ9yJQ38Oge9Va6mjJRQMxYISZcxG5FxLnhmH0tNOJtUqweoxyYcbbn9nFnwM7Em+jBi/+/QOm8JigFl0x/lGilYXzWAbRXso= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045283; c=relaxed/simple; bh=fiubGOpznSBlWjS81EhUbY8+Jvg8mdIEbz8sZifJeJk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kXi46YUQVFWJluM6UfiN56fAqLPLeJtxIJozy1JuLNcwtUv5TSy4eO/c1JtXPESWcPJUgygZOn10mu7+r8naqVHRRPbzxm5lWlkkrQKU9YysNHWQiLXPSsKE8x8a0fhOJT27ooKdlTDDmy675YjE5Tr3u33YcKQZz1mK3TWJzm0= 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=HjDllPDm; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IbMS/l5W; 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="HjDllPDm"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IbMS/l5W" 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 68AC7prX1087050 for ; Thu, 10 Sep 2026 13:01:20 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=HjDllPDmBNjrJIYe PCoW0BPGw4s5pa5PUZRjEHfunhly70NromYsN6NVcF50TxSaDUgnVbBFVC/FlkDz RAD0qXM2FEKgshz+fwo9kd+z1aiI5TLWdYJoed7fth2bJRpUi1LNFYXs4TC+JIci TIXU7YVXvQqUeXULKbvcXCqkikS5tz5feAt9hfcpQu5P3lodTWYg+QYlDSJO3a3T REq073oR8EpdP5+4fK+gwFgpQoPF4Vczvsm3YWC96UburMReAVCDEa2fppED0IZ/ EjaaThXAvDAtJ/r6C4wqGRlpEIyb/a6idBxqdv8E10LXkkadeWYJhobMAx/9zDAe BCQqQw== Received: from mail-vk1-f200.google.com (mail-vk1-f200.google.com [209.85.221.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gkcyg3ytm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:01:20 +0000 (GMT) Received: by mail-vk1-f200.google.com with SMTP id 71dfb90a1353d-5c7a3b3c06bso2183651e0c.2 for ; Thu, 10 Sep 2026 06:01:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045280; x=1789650080; 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=IbMS/l5Wy7IFd/wNioYO+mtEU8JiDEUgyYsAR81fzpvfJC188e7Wkn4fMLlGxNaq3e aLgcwMUQ2LXRj+Jee+XiMB2LnRp2I37PylIcB9ZFkx8CmATb5Z3MrBf940nYNz1H3HSr qVgBLoGNMhkzJXsIMGbX1xV5lPdseCnU3xZVzLQSE42p9GdM0lCqIu6+Qo9as5CuKlab IN1reJmJSARkOHF7vZDMavnzxxaH6zEUdJAJ3SQwv0G7nAoHAvjRb+QAcjmCMlJOM5Zq 7xbSLwm1Z6K+W6hgUk0vEk2yFHGn5PQUiz9VgPGtPAyk94JJTgzwC3eksvRlUzZSpXYN gw0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045280; x=1789650080; 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=tXAqXua5EEzTSXFqahYpqvej2oA2zhP3PvqE37LpMUH6S45E9YzZlw1KUeSjKtSXv3 eoyOfjFbPQrO+q7/Ze7JvizvBxUNsylruLyilemjGQiExBcWtuAKMNo3P7MdBgfusCYw L+FglrB4dSk8h/NdBr1Ffzv2ln52eprFgAYUDAC9mkDJjQnjZHW2r7lnYgn+tPYtCl/Z mqSu1aGkgZVQws0dAjCABnAej97+TC3JV1Jk21y97H4L+LMD34F1Jd9Ue2V/lXwFGQLk 05oRLTXK+9S4wl1A/6LwAYaClD/8+tYRcjs1FCzSzoeneVzJM0ekZOMQG1rFL9D4f44g lDZg== X-Forwarded-Encrypted: i=1; AKwUvBzH+lY4kbKBUjblq1EJHxkAxZ4N9YNkO5CIOrdvipPmp8GNCSsh+adE3O6Hxg4GfJMVgYoc2I4WIYlxPXc=@vger.kernel.org X-Gm-Message-State: AFuF++l/13N8/rZ828EwsZwg9nH9jYtaDbMHxjQlakn6wGfGFEaOslZI kDWnOZ8tKIG7tUCmMtDl/G6XmxL4a7v8UOYadmZsZaUYt/9tZzRXMXdtawVTWL4xzCzimCyznXs OKU+IpiSTK74QVenKlD4nKDUJjwqknVRW90557GQSU0HUnWteqQrBkWHyw3li4yz0OW8= X-Gm-Gg: AYBFou0qHGhbps22vfzHlouHl7bLSxpSsdRuEMKV7UM8+0G+7Ymzzb5fZ9StsjystUa QvRxRMHHzCmBjVrC2cEJeLmcOb9YBvSQoHoNcH4feKWvePHWJaImWk+nwBR2I+vbJkqwST6E6Eg y+m+OvjtXVS+0Z3XtwA9bjahOxyC/f/L5wNczRHR/qwciugeAR1xcENI3lYaOsdEBTmidglt1qY 9goybAX7LEcK6D5mFarLNVzVIpfaj7U8eQO3rL9+bbZfUy2B7kjSqxklvIhghszEyXjSLIReuze zsbGrSQvHcq1BCPwvP93vmbetRF7q74IXSsiH+fanv9XA/0gnquOvsWV1RURmVapOBsjwuVPyAb SoYYJL3t5lTMyANllX1LtgV/jUYqE X-Received: by 2002:a05:6122:f18:b0:5c7:a814:b987 with SMTP id 71dfb90a1353d-5c7ed298f6cmr2448666e0c.2.1789045279817; Thu, 10 Sep 2026 06:01:19 -0700 (PDT) X-Received: by 2002:a05:6122:f18:b0:5c7:a814:b987 with SMTP id 71dfb90a1353d-5c7ed298f6cmr2447218e0c.2.1789045275485; Thu, 10 Sep 2026 06:01:15 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:14 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:43 +0200 Subject: [PATCH v7 02/12] 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: <20260910-qce-fix-self-tests-v7-2-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.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/NoTDAcsmYgBqoqoKcY6VeoV7uAaQfnvTc+CvguzwaEw7NG/Cu 8SLkUH96GuJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqCgAKCRAFnS7L/zaE w9+tD/4qzI8NshC9kwQ3NuRh/YcmU37MwUDDOclQjTz38ZU+o2+KCUP9p/TGSWazcK3zGYqD1+e +XnoG5b7OAvUhlgWmxZpCJHdm4rcxsX8BNpFbaF7Dw7VE2rgIoT3lF8FpwGv+XilOEb/doc4N+V VlwYDiwqFgsO/fW0Xu+Zve/BbPDA3amixlqiD1386ijpScbGs+mmJ9gsyeprV1RBS6XuGfzhLHP +EOLCUgRBgjW59Wr5A8hvNSN288iz2Xf/VRWvbI8tzqweRefG+qxbHA+bUjg+5atscpqQRf85d3 jzAr8mIQ/6YZHglJJg1CmhYDZXHLQWYDmpFORVPdUyReWKLa+IoSEV7GmH5VWFOMasDzKdwzX9k ZLW7afyjyAMgtwGrHKoMR01nuC80rYzRmRyc/fivWDbiR0R5urhxfsBLoai/tluyhRp7vXAP7kZ 7jnRr6Swty2XIkRdvQlBtWLKRW4QJ23ygkSPn+hzMFBD4r+Nm6DfFXzcz6CFwa0rRL/Z/BtLzrm PDxT1u6tq32+OiianYYqDeanLAu5qAsv0vCmHdiGvzAbHGF2CV2tAYCvE5Fdk7gUuvewEKu9J0e 5nlWL7/Z7Av76DKee/jCxCEC7vqJasO6C9e5LQI/hHqPwQ+pKdXbAN3X0+7YcuBDXiVUlWci/Sk Rk00/MmhPKktKTQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=Vu62kO2n c=1 sm=1 tr=0 ts=6aa2aa20 cx=c_pps a=wuOIiItHwq1biOnFUQQHKA==: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=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=kiYxeA6Iecqc4QeK3QQA:9 a=QEXdDO2ut3YA:10 a=XD7yVLdPMpWraOa8Un9W:22 X-Proofpoint-GUID: DCG2CpSmHDMGzYoxhKH9st1dtHj6Uhng X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX+FbRpL7K0+mz Jt6Qm/h2hO7Uml1RTvuMXRzlJSlPm+lnGR3T5shz/UjjMPoEAPFNieDNfsP3iKZbZiImZbfXMGq xv0VHK/W8/NFu5QDU/qHPRDB4gft+0hMhZF2Qm9vKMXyok13KRrt0/kxBI8FqkPL9ompsSIXec+ quplYw6sYdw+wqIzdvMOFVxKciCcJjh6fCG3mflZFgljo5JvR1yX4Lyq+yBt/z22ZWxZH93lkNA Oopj1V2NKfqzHueY4EEL1jwUu1rL1vyOXCyknhqWMrbsD9OR05ipO/lpFDhsRMiLnU75+V8bR20 Q0KTMY1fN3bvrOO4Jjr/zkXBFncAyEc5dO1ewNedco0SdO0zRTKxAQMw7eHiJ//L/SEdM8hd/Qc ZAkO8GnLzSD1Kc8TuMsmuWdHnydKWzGxlKIvXsCmBTKik3WY8pwMRZt8PWaozNu+POTzaEzdmms UZ9iKXbfZr4P9MdrSUQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX+xUgb+t+bAPA g5vO/jduh3bSfZPWVRbLWz7ctUjH4hHBwC4erUkCd0XEjkMVY6pS3Z58ji3p40hNHDRxj2MW983 FYYZUXL2Egn8o2TtOj7WtxOa/AMscbw= X-Proofpoint-ORIG-GUID: DCG2CpSmHDMGzYoxhKH9st1dtHj6Uhng 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 suspectscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609100156 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 16:51:46 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 52CCC4BFE81 for ; Thu, 10 Sep 2026 13:01:28 +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=1789045289; cv=none; b=EnWUVP9Rtu0x4/JUbz2UuVMeLTIt2yrBHwLB27nLMM8YwiJfq8jYqS9x8x7MllQvL3I4TnTnaCFxKOXS1kkgrxk75JrMutXhKH9/Bjnn6LxJk2E0Sg8ihlxnQNvXsYen21hA4NKJjrDyTfLQIS7gub++nngD0IkbVxMkOUtTC/E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045289; c=relaxed/simple; bh=eJoYIGrknQwfb1zrIzM2gHnxaMtp5z2Pvd8SEbnN70U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mYeljw2DrDtvuVtgBKNqOy3qvBrJq+EcVFDlwYJnL+/7AH9WCYSfW0Mx0pTNuTGNFJ34+QCEbv9c/p0EAqP5og+F1aKBOq4Yv75S6L6oviqmeqKzhXJzA7YowE1A2vbeQdbzsuALipLlJPW+NIWh6fbXXlTXcxPr3WujRjRtPsk= 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=FOr3Iuv9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CH1dY8PF; 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="FOr3Iuv9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CH1dY8PF" 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 68AC86c8782205 for ; Thu, 10 Sep 2026 13:01:27 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=FOr3Iuv93pP2rlA9 WFjcmgajEDkSzsOHkPMLUj65QWvXII/2NglCyCKuti664aXwFRLGqMuqGpaGuVXu MeSIBwN2si2QqiRat4oTTTQNOjc6h5a9qW94nLbwPQid7nCCmosjNS9ZnCGkDLp0 Dt7RMCCwlSsCL5DIQqmAMu6QasaFfP0gKM8IXcFDo+nymmFU2dGp1XXZem8Sh/DY EP6znhbMk4NcucSDuk3bV4A7ZNVTm1DuKUXDFpW7bvVDe59CMAj1MZqwcoqG8ZFJ MSBgrBrtbYG/HuaLA4piw05g8u8rBHt1BM+BPG+cVu+on54SWfXGjO2lRoOshC05 YEVdOg== 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 4gkrak972b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:01:26 +0000 (GMT) Received: by mail-ua1-f69.google.com with SMTP id a1e0cc1a2514c-97cb0a317c4so1047141241.1 for ; Thu, 10 Sep 2026 06:01:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045286; x=1789650086; 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=CH1dY8PFxeJwM1O0ZYNQr3VW8oS4yNAAU1HoFxt1d71aIDHe6NUqoCxM5uytFQgoy7 r36x3ZbYZtiSJN0mdlTqWQLmxq1HW00tMQ+qsWN6PLblfU2JvpTPbae0jBk0W3VniLwq RHE3LaOUGvE8IU5u8a8ny99x+qQdq6zApHezyiPYvq/mfU+pDsv3GUS2wr80616afogT jsBecIPTb/tIXdgffmA0qZBxOkoOTOASs+jtuaPpqGm6PCoi17p4lPostnQGqlexfFtv 1358sSktt0i5VbM1RmrM2zQHLnbD7Bs5qiyCzAbIoNpGTQ7qEmUKhxXAHuMfsdhHaSO7 pRXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045286; x=1789650086; 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=qV9NNcEPxS4sE55V/G53Oj2BNMsBebryf0J28hwbhG2pWMoLTKgJq+BUBIQA4Ixldv VITXy5AdIhsqxqrRRCUP3neAbfXZ6LPMmZNW8vgl0xWut0F9SqVE0ySMZiuN/038/Z3S ChnvE9tCTdpdMgsOHK/BdrJEkJPCNEkg1s66++PCA5WaHQaupx/PrM0zGMPRm1tdq+Qn AkHfsu1rNLaX+vsqV7Xw+HGUsAlPx4VOcww4YTXVnHXI7R23nuVZ4GyMg1QdrgrAwTg5 CVBzV6+z7MGfRl58TqbLOtAku8KY/jqd+ms3drxhc33S+5FI5uOUfGP98/UN9g7jH4Zu 4mQQ== X-Forwarded-Encrypted: i=1; AKwUvBxSsZIH8ESsbmNFcwlmJhf8UuxFHkcWxGQnsmUgzxhLHdwW48jVErfXSG3+2GG+18ETvB0m9ScNo9UsiFc=@vger.kernel.org X-Gm-Message-State: AFuF++mJiX+CB4i2sQ/YhG/CDH+lUeFvSbSjvpzkCwpooF7yVF/Yus/C YF6WQYiQjgyewVxhIAfwOlQo6Y3str1Kt/BE55nfZlBQk8w5tS9jat+yzmOziLw0chIdR40zFeg rsW2v8/zrjeOH2p50/fRXyCWT8/nYHOxmyjOtEtdkNxhkR02MYVKUe+C5ucNb4F2UDu0= X-Gm-Gg: AYBFou0nlASOLmN3rR61BziHLe4ca822+TtQBlxz9bLAY9Lg63qEbKvjwWsjCSlVM9B k4yImdXBxvNjoi7BWJzIrd6kNqNAcVFm2ZxG6D+wPBCEAhqAS1BGS3DZmga0Du1uq/WX5QGEqDl OZV6FDTpdtzhyWsOhOWkDi9zy1bd8d/slk6oh/LEFD8b++9UMp+g4NY2KG7xJqZtAx3mnNEP2Ab tx9JvzwWZc7qxFEJCRLeY76BZKbU3byHOxHSs5y6SXwkmEwwGv275FGvYvenCmldb8xKzOKiKtP NKfOxg9ulptCR0+mWzJopv6GWgC+wGuly4Xss7rxz+mEuP5eEMWyeqTCv0QRLlg/0EJTNgmlzwj bHXMiZ0V/Z3Iad936yJ5WVLy/w/BX X-Received: by 2002:a05:6122:1d46:b0:5bf:7f98:9657 with SMTP id 71dfb90a1353d-5c7ed479b6bmr22347334e0c.6.1789045282140; Thu, 10 Sep 2026 06:01:22 -0700 (PDT) X-Received: by 2002:a05:6122:1d46:b0:5bf:7f98:9657 with SMTP id 71dfb90a1353d-5c7ed479b6bmr22346732e0c.6.1789045280252; Thu, 10 Sep 2026 06:01:20 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:19 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:44 +0200 Subject: [PATCH v7 03/12] 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: <20260910-qce-fix-self-tests-v7-3-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.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/NoTDAcsmYgBqoqoLpLD2EF/ksiKP9l0t3wjTUdPHHRLF3zWsN DjQ0+7zQ7eJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqCwAKCRAFnS7L/zaE w0bgD/90Nn3TDTUxe0jHt+bG1PXGCwc6ZEqxqciJ86kJozQxzzsEEvSetqsuFjXpNJsbiNk1VW7 VaXFsqFNuG/ZKgbOpxklfUjXjohQD5gViTof1aCkQYoh16l/hD02i3X8xF28+So3nX1+yznf0P+ +oS9EGNeprgaJ9/IMv+Wed/z99lITe/uYqBk71zqfRAel3yCOwmN9OjvhIrVOXsq9efo/zGCRJ6 zSyOB9WEIHfLCjZseP0AHwmRxaqjdfpuEYX5D9msHlT1jwdgmwLYZek/F8P4g/GYADmu4KSIyLh yDEQdvZZYlQ6KM/NM0OzkhLvGaAnO0aPH0Ws7jmW+m6GYyQDlruEOzpDYg5NMWveAruNlN45Wrm JkKDkLhCLQKLvURnc109Xw8lcBv8tTrEsazybUvTQm+T4am/9Azu7zzxBSndm+G8N+Ic59LXhvd d+UnAc1fvd+bd1s3cxlUd9zBpYJQDB1omwMTOZ9XfRW08NN+PhQyyUB8m5Cnc1iOchrIAXRBZrv TuHs0fSUsoresRICz5ZY8mJGW0H45sLVjMBAaUjeKAXiM4t4CLhZjNflZd2vU7HxoksO2ZTXoi/ eBfXbTjVRURbGaZKifPs5HwCYXsS7jtv7Xu/uXGx5assapGkhkiWeZ5ZCiyHZ9/IsdEjmlvr6qY xM3Pmrqq1K7yy6w== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX0kAXyo3TYY2a QGn8gYNmEPTfi1hNE9mYC80gyYe+tE+7VD+IDWGoxNPaKtaoZVmKJZeK+SH/puFn37MC/IwRiJU vGqSdl6BaY9JXm8+c/pz4wmn2UZ+REk= X-Proofpoint-GUID: KHMqr096jbx1yAzbNPqVxVNgGLvpb5zP X-Proofpoint-ORIG-GUID: KHMqr096jbx1yAzbNPqVxVNgGLvpb5zP X-Authority-Analysis: v=2.4 cv=EspHPicA c=1 sm=1 tr=0 ts=6aa2aa27 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=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=Y2NcAOke46LZopEJyX0A:9 a=QEXdDO2ut3YA:10 a=TOPH6uDL9cOC6tEoww4z:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX4ZzLcmVx5Oki AphFwi3+qTmFoSTmxnu5Dpp1sO5RsqK8LwcFCUn0c3DcN8HCxwMg8Imgd1xWBkrqNY3FzI0r/7Y BZYBtJg4HttxsvgyDYVd5dyeNx0Hf6/NSKX/wkkMwQjxr7YLFlRcbMe9jXxEWLLEZgFeGhZy4E+ OOGgc35ngGj0lfietUl87LVSQG79VSmBpEQgBgHcgjlWWPxBjZqppr/OCYwreX5vWDj6lOk5zeN g0Iw2EPuael9n1n/yZPf6ETe2wrQA65Mor3UlZ9ytB7B6HhinBlUo8eZKEz3cUVEKFUIFnODcmC K1TypVveCnFOrkBuIy006EBysuLKFTkTE7C1H3HbfAeYvbKK48evosEspoll232Aw+2QQik5Du5 kE2uYb/CjjFbb6Cajf30glFBjRxjaHcrpoTA4NQoCVzjXMCm3njkTNcqkCubvbF5lW7adKXGx9b sQ8gETvI+i4oZxwWqnw== 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 spamscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 malwarescore=0 adultscore=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-2609100156 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 16:51:46 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 1B65048F024 for ; Thu, 10 Sep 2026 13:01: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=1789045306; cv=none; b=OULvOMLiXYPo70ckrtQDPVA/Ahw8lmux3jep89mozoqFv1fC7KmDdQybxeX1i5hDq0EGOM2cXjYHZSaZps/n3entdWoGPXcqyLisxk7sP6G+QyVL6f29/8H/yGK11t33SVVZCUL8ymleWVjX+ICn9c5RdbF3A+Mx7a9UGWc/eW4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045306; c=relaxed/simple; bh=tX3TRtZACxaWj28Vd3tV97Cdc6/vFpH99oExqmgwzeU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BOumdkyz0oqBWH547PPIlQKb2kscUlgriPB3b68kBHTz68af+9qfIo2BfAEz2QYJBsydw97mo9U3+PhLbCsC4qnBmtYHZ2e0QZIJlZzXSSfqsRQ/0wpxuOP6dVOXx7h5jgdBJjNrZ9h+HldetgQkdMm/AfpL8PHEFoa7Qrnm/sQ= 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=izw17Hbe; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZVBH1SDh; 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="izw17Hbe"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZVBH1SDh" 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 68AC7jB71241983 for ; Thu, 10 Sep 2026 13:01: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= XpAwiJrGurnLU7swiLYwHwGFQJ26CvgKoaprZ+5NHTo=; b=izw17HbeX/LIWuew ez8d3p5bVpW5JjGeoho24IeygCL+WiVIb24PY244bZ3XluycwT9gvuCbxMro6Ftb cOCAQjkSuN1TNnnN06BfdKyOoCTZk2HhwuDGQFoc4yxwxe4qUWVmW2q0qwA6eR59 u9R1UpN8jSYmqro9ZR/KUxMGJu1PLGt9F7Zxo0nO4lIE5kWH89aPSuYgesTuNMuP Q+XlONIW0ljrLQoej4/seVMYcwOW4KqE1d23jzScl+Iy+KojTQ2i2iRTE3BjM43R V8Gjm2Y+gnUNGQ0I8AttEKSuwtmTm6ky4z1yURTCmSllTYL2zM98J9pK65mBkdic yAFfSw== Received: from mail-oo1-f69.google.com (mail-oo1-f69.google.com [209.85.161.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gkrcjs7ea-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:01:42 +0000 (GMT) Received: by mail-oo1-f69.google.com with SMTP id 006d021491bc7-6bf68c1c11fso904243eaf.0 for ; Thu, 10 Sep 2026 06:01:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045302; x=1789650102; 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=ZVBH1SDh82VlUjdAPqaxuz3Y8M+OLjxHk5rI0FcJu2bPlLKXpwBlqq39fxx2qeGKmV SvmPrkOkyHEJ66HSS8wHtRb1S7TNYCgs0wO3fiLCfY2E0SjxFfvg14dL1EWsDLOHdciU oxGYP4jf06mDRSZ7XRh3uc5VWva7MJX+fwNEdP0Mv4tMQ0zovDg88l5DVkA7TLLWkLBw +gsCQeF6DX0e/gpnhRemHdGtcPZfTpFlQf1/UAlNo0hRn6rIP7zWqz8LRMIqoiZ8+syE ZFkLrob5emnJ6xUyIvRim5HbCtfVvmejDuQs0OZMASMRlbRPPZy6yGoBvYM9UtJBehfR 6R8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045302; x=1789650102; 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=iXzCX9J5062I6p39YlHzhdsjMis7iOnP6g2cfFyTLv35XfihigYm9zYcE7qEIlGe8D lhvrZblfdJd9gNyX/BmlNQDQE+tPuZgAy1uF1vEk13FV6HpV9aAkdpL1eRuBvRvIE1oP GokikEpd0VfkCjFXbj9ImuA3fAaoGeg8lTIdg7HevydGsTCMA21HbJdD/aPw2ZTVGsKf Zjy5QpTz+/mNoS7ngt4O69RMoKZnuf2x5UKsyEvDIkWgpYNYTABIFvaqK+uxOh9ty8lJ rJY2UOTNGZprBK1Yz7e/ejkWajvtvBtpqYJWe2+f2MOk/WBVn2oXnaYporU7l3/4ayeE picA== X-Forwarded-Encrypted: i=1; AKwUvBwNkyEUJ8XjRh0SvCjNHtE3hQAVPCEn+yOuxwzgQtKYO3zidUzv9INcJ0CRHjPiNtlH/JQD1n22jeSU46E=@vger.kernel.org X-Gm-Message-State: AFuF++k9hDtPloocsglvJge7lJbbbNhCA9R6ftx9Q9mPi5Ad6CPvzeBu qykcYkKSQz3Ghh9QSOQ/yxDfj/MQS08TycLsgTEII8rEh+DUxir1jMin2UAqNtMf0VigSh1NZEk eU8Ib3o/yT5ySYdfh7Mf2n9JjZTyDb0Ja1TqdbSMlH4eLU/wM4jaJhiXQLKXIOlQ0Kkc= X-Gm-Gg: AYBFou03sZIMmyvvorRAyCWcifyrD6ddS2VLJmTQrQU0cMEQC6yTu5m7DVnZSqMpkfI Yv97dKenKDIYm5ycDTLF5t8T2aoBNIh5LQ7xyqdmGSz/O2YWZpM0euJtcm7/KJFPMEGWS8VcmzY HQyPs4czgdsMnBotBuwbf1Y7mLix03qNCjte1TSqB91Qf2P+MQkaX/a9QBlFGqHLAPj4H54gD69 T6iEnDlSWOkaRHKHIP0EoUfFwjc8o2DzUbngTdZQvu3CAnGe9vMtStjx8Y5qSBz5zab1d+NvDAf bgsElk00wKO7SyrN0B9AavpL5bGiAYws5WBsIwagdX+3OVnHH/5rnR26SQaCqHaI9bB8Q540J/c 1CfL2cf+NyEmuToJh/M0bLq+kfnO/ X-Received: by 2002:a05:6122:490e:b0:5c2:c0b2:9880 with SMTP id 71dfb90a1353d-5c7ed478a49mr26857234e0c.1.1789045290868; Thu, 10 Sep 2026 06:01:30 -0700 (PDT) X-Received: by 2002:a05:6122:490e:b0:5c2:c0b2:9880 with SMTP id 71dfb90a1353d-5c7ed478a49mr26853962e0c.1.1789045282599; Thu, 10 Sep 2026 06:01:22 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:21 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:45 +0200 Subject: [PATCH v7 04/12] 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: <20260910-qce-fix-self-tests-v7-4-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.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/NoTDAcsmYgBqoqoNxRtwkAolAz49O7BFo35y6dlM5H7PtpM0H UCYJgUd+ZiJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqDQAKCRAFnS7L/zaE w7OEEACx2OmTFHwHBMdYiM46jjJfnDB8QinT0zeL5ug9AvvELNZNFb/PQiO/QznG/MI5WQVfmx5 zDIqeM3GUL9j3yheB5Y42QGiG+U4+iYtcYOOiVblTvr36W24isO37L48/BdIW7w9nO+0APskpyC ziXVRFyihsQ6hXWsZjYaKd+y24MY4jJmYxUfqHlOfwBHOG7JVChF1jm5J1arqDZMDyC4kv4JrT9 QpZ7y/tO8DUEwXhcbui02S1CtUlJx2St9ZQnTI0ljA4FVni47ykIzjqdj98mrcjYGVfO2az8xTS E+Ji/vBh9QpsD+p2UMxydfyzJeAso1S3pP4w8lW9tX+TrGEuD6yBetNzhtSkOf6Uvngezk8mvbX mnMO7k1TeLqWid1/jhPTIRS9TOmeByIF0QSKljIPVYeVnatomIXiaWpLmZKV3hNuOWqzooJdfM1 9sTMlClLUH3D1sLAQmiQ1ttcejB9Ej6E9IuIzTerajRRBLeMemstXeY/iwryG1mae51GVWpK2zX jLWmuoCMnzgqQYd8e2NoaWMy9Tzg/Fnkw10uk4TwSxFPJqA31pc691ERTxSRHQ02bZUelr8aSiR 7SASGDgPrdIxZTyF/CxH6ddAWvE2SPHAph1h1JNad2ibDsVWWAaNUud2fs+XqaqFCMkBrUOpngY iRdWRP9aAcmF+Sg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX2FuHNj8QZ/6n dp6CYvxEbnDTvnjZ4Z2Jjyb5ZP2+QMS/bk9rcj2oGvXtpG5JGv0fw16qEYlU2+Q+eS+JOr7OC73 qjYJgsEHE/O2xD5X9atbda0+UY/4gqo= X-Proofpoint-GUID: kPcCqb5pIFkh6vlgsVDvIRnahOqAXSy5 X-Authority-Analysis: v=2.4 cv=aef0Dhot c=1 sm=1 tr=0 ts=6aa2aa36 cx=c_pps a=lVi5GcDxkcJcfCmEjVJoaw==: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=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=vUpbTSJP45I4i0_vGVUA:9 a=QEXdDO2ut3YA:10 a=rBiNkAWo9uy_4UTK5NWh:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX7h8KhFoODMLW utynbmHJjyyB40KpRQCDhFcdmoiWWWiJHwaqLLF+IWZ5Kumt1JHRK8UntL/+otpVO3uF5YC7aX3 3aI1c6H/wtYCiIVPNYIrdUHUM6nkhQb+Ve6nTAaf4mCNj8jdW1IlbT1mj0ZD5Ja6MfewKNUZtJW OdIYt1L5t5qPIhvt9CmRGjbGrRB7DcQ8Dlrd1IjeKTWtMN30y1FVIWUsmlnv7Pj13rW56K2hAdh j8kZJgqzehlwkJjigorvfuMcxQeFhKiW7r9h0W/Co5qX65BK2CvtrOFjKXL5Kk3epCn3e3BDkOb FtSfl26ofSddcGxXPsG5hOzvuPfy0ps+YZ5neEhaIsjayRc6WffBHAfXhBXYPecjqB0tKFkKt// CmF+HNi6L7Ovdxdx6cYjYC+ghQIFECchmv4FHJGduM8gWohPL9rNAfahVd4v/VoaQ5X6XPhUCzt 8WO1FpQdyyKf0D1TBCg== X-Proofpoint-ORIG-GUID: kPcCqb5pIFkh6vlgsVDvIRnahOqAXSy5 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 phishscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609100156 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 16:51:46 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 1EEFB4825D7 for ; Thu, 10 Sep 2026 13:07:11 +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=1789045634; cv=none; b=ebPQpaZkdQQspM0j2prvBsPL+dVlo9l7JD36FCaMImdqydXrE4dOW1uNuBXn0Lwl9R2eWO+cQFnrYiCUqVgoPkeMAgOS+Dc5EYE75Jk/XmBzWhRX2ZuBJUD6vlN9xj/DwLFebF3mPUWPAx7xWhda2Z1x54sssGaoS8GLvTcFeNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045634; c=relaxed/simple; bh=+q94hW+kiltzd6oZ8H14oSSW0osx3J/1PTA4e8Zi7ro=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UqdI41EUr9cwIcQWX/zYCzQjVs3aBG5HWkWq1+GrY3mAEKWHoQPj0r6KdIvaF4zgIr5cyThbCJWp7fbZoCyybnhGWUCIih90Zah3GP7gav+AcFO2GQWdWuapnGmNc5Qe2DvbkxfDtbRetcelk0hRdZVhvsQfBbxwXWreLczc3AY= 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=P+Sm01bS; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=bo116O0T; 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="P+Sm01bS"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="bo116O0T" 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 68AC7l1i245046 for ; Thu, 10 Sep 2026 13:07:08 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=P+Sm01bSkMAvGkup dVKFfucx9enT6NmWax115NJ25NxPUw0H4GqTMoA1ZJR9L/4Dn+o+9TJhgS2Lyvbf uzEbB1K9Bj9KVRMs48a/LlPLyvyDNFJjmP397VgzzcnTDvk0HXWcKrEfxeQn7oy+ y53XvphpRVGHb902oAohk2Q2IzYmvPLeXoKIQzjh6+2UKvMxCCwhMBVxf/faeg09 o0cviNhrIg8LzlyK+Bac9ReJzLo2ai4n1OycTAzgfS6mRG+IZhmAQ2rDCAkOtXbx yR45jy1hFCjmkSdhW2wg/moM2dbWWHWnS1VPQulwhCfh1U0XrZoXQkT/gxwolt/t +exAtw== Received: from mail-yw1-f200.google.com (mail-yw1-f200.google.com [209.85.128.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gkcyfm0sy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:07:08 +0000 (GMT) Received: by mail-yw1-f200.google.com with SMTP id 00721157ae682-81eddfe28b4so148807977b3.3 for ; Thu, 10 Sep 2026 06:07:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045628; x=1789650428; 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=bo116O0T5EN+v86MN84JWXltYaoYJQRkNRqckwEjhFfEKuEunI9NzuvvK5AlFElgH1 4usbrYy85WjInpk/ZtR1lFcWOvQWEfOY9vuL103HlSBLlnt2Xy2t8Fg0Qacj/fwA7Jly oo+rC1eP3iF4alIcA+kT7sw9NxM7LLGLHDH7keJjXHFO4WBnd3lMaC5s9dXBdbXY6JY2 RK7fXqJvC3h/JU3GmRHVoD05IhvCFnUnMkKryEzXnHX0lt1bppxIyy4PUnG76h3NkelN V9x8OW76kklU5NMP9dBcdmh5h5s/9jrIu+hhj9zPSB20iWy+yTIFlMXJAnYVBIRe3pxp HIiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045628; x=1789650428; 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=i4yFRxYisZKLr9M8GvU4F+Ll/5pzjTkFW8/+8s0jAjIM9c3P3F6wDq4GosltSx2C7c lhyhTt8j/AxYHRhYTZFtbykweONA5xkXZ2MQ2zr/UgMAobLmIrBSp+Fytao5HWLfpUfE lkOL88Iw9zSph0HZpX8+WgtBojayCYSxsvuwZiHeHHhj6FIpXqMMRQMOcGYkAUotA+IT cmA3uwMfWKD73DxPPiX3cP5wgqeIhZk+KgX98r2Y3Ydrh9JBKHDSmF/GAPWLSJGscdHu PpwZU6v120l86fkeJCEBTH1SH3YyBd5l1CkXGogd5xvG9LZ4Nj4c7X0uJqWJKPu6a7xF e0Hw== X-Forwarded-Encrypted: i=1; AKwUvBzLNLhTjU2DLsgety8WSWPLA8crSowBD3iWeIf1VgIiAG4C9TP/R8dSIuSABhbAwd79Yyaum8EJVdhgA3k=@vger.kernel.org X-Gm-Message-State: AFuF++nEmvvzLKY31ASJaV5LHoH7owivlm9R0KTl471KqkTgju9G7ZaT 60B+iENaOIGywTfIfRZs2PSLq3n3T16t3xraZ+9NH6fOkv+zdNNgXH26VUhfGXArefQWqJVlpaG P3UNSAQQFDADI/UbafR2s9xRRG8vGQp+hCGLhiY3MFRVF5G70A1SNF00vePoYmYsoP/Yi81c12Y s= X-Gm-Gg: AYBFou2dgqXviaLgt8srY0s/uclDQ5ZzH4r0lKVYyIUJKPKkykhGlCGyMzrIo9M35pk O/LfagNY4UdhXKSxUbY4aCdu4Jln5SQNoH+HWQjK7b1oYpSn/31cZXxMfik3DWBG4aKo8Ibva/C WDKfYaquBFlic/uL+bTbPKSO5K2jSKUfS3CGNH+DuM4ykDUpwa+h9GbvfWU2zC9D7d7JIkTMqFf m1dEUIZiGqquym01mu0nh+HZpInh6duB0SVZ1Uxz8NkBVp0UYovshmWqZHjdUSvKZZC3mvO0bnd 3sq/pSZB4xcxXuiTjf7v8SZe6L632eebtxwjyYWKuSiQQtfUerPQWqEqsj4aEHqwSP8yV3WgMRf Ipv2KKvKpU1aT5GDS0Ns/AKtDAlpf X-Received: by 2002:a05:690e:bcc:b0:66f:c1bc:402e with SMTP id 956f58d0204a3-66fc1bc499fmr11508279d50.91.1789045627975; Thu, 10 Sep 2026 06:07:07 -0700 (PDT) X-Received: by 2002:a05:6102:5e91:b0:784:b882:9567 with SMTP id ada2fe7eead31-78a4a9d9306mr22259771137.6.1789045285030; Thu, 10 Sep 2026 06:01:25 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:23 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:46 +0200 Subject: [PATCH v7 05/12] 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: <20260910-qce-fix-self-tests-v7-5-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.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/NoTDAcsmYgBqoqoOYC9y0PnnwCtT9kBv8b0ovnRcrryw4KSyj wGEI5TzlV+JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqDgAKCRAFnS7L/zaE wxskEACFOaBj8VCu5B2daTrv5BL1EJdlpaGjPEAc0+autgVw4uDpHrgV+3wQF3YrzSRkh/fJvpA hbD1xtYeBJiSF2Ufat0CflOkswP9FSXfiQRPHThyNoRWSS33fwoflUiKMJgGcQqFwtb3fbb0Ntw kdthQfMGge4Cbc2g5veN43m/7MpABusDQfWkoWy+RPYyJX1Xc4q/VZwNoVPzUEViD23Bjtp7oV/ QORX0mTsV9En+Ac5bpj98aM4C1zgYbyF29uemcDC6NwAUEuL2NzpmLjY3OcCPJl83pGNOx+ND8g GKAEHiaSouMnH5Gz7P1md81OLNWq65D0nSThs67VRqOaX3q47TSr5BBRvWY9FniDfWR0eMjth4L L/Q5u6sVi2IfDxrN+e3LhTOF2L/Du6mTR3yxafNhyke3I1IhBn3cq8IGk2BfQsKpnqiyQ7h4xEd gNWzwFH3+IXb1b/vclTk2sIPE41p1kkNcdGqzrjbjp7pLHNu1odQAdJeyMs3iqQsbuMgJqApxWV dSH9x53GNGoylA2PkFmmDmhU4FqUowB9r6DzPK+gPWwx+hpo+IX/n1mxV5XVyKhwNEaCdfjy+aE Yw4Td64K0jdXuxvTWoL4F7Vk9KReUSLCyLGByeDUmJIr0HsLDJFsfwNnedw1YkSk/VdP7Ii6kaG JLQ/08FYJW5Z0VA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NyBTYWx0ZWRfX/D7sYw2qX8/Z qE9JloYFBxTrI5AyBQMtBJX9hdeRv40K1GDo5jHmp26DBDrQlEoIz9a7ys3iuQ9YZONh4wTKG5/ Mrc1QG2wewRhia04Ei6/Z+f1D75W/NQ= X-Proofpoint-ORIG-GUID: tnxMQ7QslBmSOyXcTDgQ_Pzx7KBPjuLu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NyBTYWx0ZWRfX3tvLl2TzNGFH PjWPnJCHQjGradrJRPomaGdL2pyX7sJTKaPvSHfXiLIndz/4cwVdf96rNSV9H1yfwKom7aChu9G DUtDPiFUg5RZZYQSvZfmvZH5mC3cPklBYFODVTAEtdJJLIdGY9GuOU2RfJPYbtD9EdrCbe0itxx ZpjrPm0oLv5lHPmQLVW2wDHJzewGUGbpoxRGucBJ97zuL8tO2Ac4CJyNIg6yqOAvF/aaXUNYPNU nyRd0BEqNWoBaPovSfjVngobd+9/74hwr60wjkwWExpB89vuIQMERAtLeYLqqHF4dgz1m/rWdXX DjCSSzMKe45ecm/pbIvnavBojU0NJ0l4ygk56TJSudNsoGCKFzMN6iSRTpd6NL9ZMhTKO5dLaOM FKw5PFuGzJJbgOn9n+RN1io6hSHD5klGeHnauhjrCmX7GsbovsqH1+AONx4aUjHjsOY5BKteXVJ 0JRauSRrig4eCDcsReg== X-Authority-Analysis: v=2.4 cv=H5pOUOYi c=1 sm=1 tr=0 ts=6aa2ab7c cx=c_pps a=NMvoxGxYzVyQPkMeJjVPKg==: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=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=2ArJjka39wvl4ErYtigA:9 a=QEXdDO2ut3YA:10 a=kLokIza1BN8a-hAJ3hfR:22 X-Proofpoint-GUID: tnxMQ7QslBmSOyXcTDgQ_Pzx7KBPjuLu 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609100157 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 16:51:46 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 02A7B498920 for ; Thu, 10 Sep 2026 13:02:02 +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=1789045325; cv=none; b=lapD1edB1tGOaiNGfmwHQWlBfC25lbVHr5XNhjehWMXarCItF9Vxcn1uOd1hL24SOY9S1burZVSmQp26fARGs27JXUnstm5/t96iMW/fywIdHMIUk9mMVclmBRbiaQxqfHRiKzjcZ+RapJ2LhQkBtWhx7blIz1Tg7iztt60o+8k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045325; c=relaxed/simple; bh=KW1xboFDIw7GUw5/K1L/QGR8hCZPAPAXS2iVODYVr6I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R+/81NZXYUlRccU4IlhhouEnwaOZ3SLuRbtiJne6mv/sTtrS1WPRA8PT0gk5aYzhztLG+fP3kSNmFX7LDmeC7/zOjdNHokgIG5gn9vSp3xMnixGkuxpftV8A80VvAQZkVSbvKEN1LjoBs1XWnhPFKzU4iHN1vGDHsg+q5UYknr8= 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=PhSy16JG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FVU6q5Am; 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="PhSy16JG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FVU6q5Am" 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 68AC7ntu1242074 for ; Thu, 10 Sep 2026 13:02:01 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=PhSy16JGud3aN7Ip AajNj3x+7TjwIXShzDgfhQFg/k2CkB/mpnV/gXBBxNPwU6i35orUQxTdOjbuqQYO w2kvHD+jsePLgSvADwNNRAenyh7SQxPCv5ghlsnuG3c+cDNWArWvPqiR3LExXItd 5KAOkwYjjbQ6juGcQ/FmkVgJkdeYgD3WX5Y+/prmmgX5t3fNkFdE+ho8sax3dkIY x2YHFC+KIYzKuIyVLiroEluZN/20z8dtm9MGdVll8A4hZ1GAxena8bMcvMoTKK/t md7ZyLhd0BMrUfqqdUEQswhY+k/KchyKzgVk5J2OulkZgUC5UG7U5NcBGw/QaSdW cMRvPg== Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gkrcjs7fk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:02:01 +0000 (GMT) Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-5c7b0f8e40bso7496473e0c.1 for ; Thu, 10 Sep 2026 06:02:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045320; x=1789650120; 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=FVU6q5Ami1CDAU5fWd74g3Uil08ir/1RlOHgOEO4/5APeU9/iJGu4sp5jFUsFkVdjL tLa5wM1XwnK+dcn5/+HoQSKXe4nCW7t+XB2MnpvbTjiFWxeUJEa83gqomthyX+QoSju+ loPzjtXs1d9ON2SsZhwftuT5ylhd9KYhYvP/E+khvUUqdPjWLX0hhU5PYjzH3XXg1MG6 eMyM3t3IDwNSk8QWlzfSxUjxk7y+lyjVnOJ+0zQdMtQ67itQSR2GSzxjr3K+mlTcfJaz tYukVaSKHAexM4REFFFKptrwHdYzKOaA3KWQTGOe/U8hMeL+7H4OrV5TuXj6ntCgwzwC 1Ftw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045320; x=1789650120; 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=sYdTLr8lIOd4E/k8t/j/fnEMBIHhZcLWUQK5fmQNfxiw4RE+GfBSUvYCnpI36m7cq4 o+POImAXocJy8wlyK0QlyUlh2j9OQFUbeLnshS6VgfL7ww3qOwBk5QWMF0XUsK/P4y/v VFrMdjh5+m8d6Bxl1roe5ZxuLw/26DyxSB4MlzgBJ4BdQqs0Sdz6ZpmeVZGG5JkwCAHO 6UDoLEWLp0uLVv5BWnIC5Yr3Kq3RXORLBOfoGMikrzzL+vaNsLRC1beNrJ3yier+tauF AiHbyk9f+yzeVT9vJdFTlrP7qp29wgwpeP3TUB5Nm4bZ6dfIGMOTlVGRZSRZ0yw1ppdQ jR7A== X-Forwarded-Encrypted: i=1; AKwUvBz7qKWA9yLPVABT8QhQntfvs491Uu/EfjqFESE3Zfmo0o9ahNjD0/WjSQXIEC/7/7o63TyYmuI8TaJCjOc=@vger.kernel.org X-Gm-Message-State: AFuF++lgfKULxOGg27C0Azax2NNIZFH3JiXnIIjgbp22DOfLR622LbAv vS7vaSG1WKDpcuZoNlnUdniiMOdQBr9yIPhu/l1bOsrwSHthxAx5Ykc3s75cY+ZPp3IAD9Gt+Em lAUrJ08NQRvaOychTHEEMr8biRPTcOFOIEb7vQ8palVdPKx5PqKVrkV+pTxkJFEZR11g= X-Gm-Gg: AYBFou2usbfa1cnBtRtw5L391AvwXGyYrq+IqN0h7tgpMUPZLfYeAm2Nd1G4vqn1zwq UyDNA+8hPV90a1Gawq8UZuf90ri4ul13fUB5rj6wZpjsEDthK82+rwGfq6JgqBx6IS8LGGWuaHY VteRX095qkgVvHP/TmhdQNbqwULTBQ9VWtvSWbNx5IDl9vJIXmkjSMOUDcJXvEN6rTMPLSw3ydn UMgzQQfnTA6T5XGCqg8/Jj46OhxpBhsKcl/oKP6z8CwudP/26KmG3HJGSh+x5po5mMDTY00OCF/ ZfXW7RilqZPnAg5VycjLvnm/ZA3sC4kD5yqb/RVWC74ofg7Hi413MfIoWp4Z4u/sWAflSCjxJKo ec9vwmDe0M/LwJw4lQbqyal8Jy8/5 X-Received: by 2002:a05:6122:881:b0:5c5:db2b:5baa with SMTP id 71dfb90a1353d-5c7ed7cba16mr23879210e0c.6.1789045295749; Thu, 10 Sep 2026 06:01:35 -0700 (PDT) X-Received: by 2002:a05:6122:881:b0:5c5:db2b:5baa with SMTP id 71dfb90a1353d-5c7ed7cba16mr23876494e0c.6.1789045286926; Thu, 10 Sep 2026 06:01:26 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:26 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:47 +0200 Subject: [PATCH v7 06/12] 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: <20260910-qce-fix-self-tests-v7-6-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.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/NoTDAcsmYgBqoqoPgcYYNiS9bUT7TKZOvXgiycY+xCV/pgRGj 9yf2ltWAsKJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqDwAKCRAFnS7L/zaE w1sIEACsCiS++eDUogxIPE2LIXSNpcedycPtCM2m5ypQYo0berGKN7DnBkEt62W0a6zrMGKwx7w ifuQwMzYrEJHbkcA6siFI8kgNIn1ogCka5vvbHmLRmj7TCo4MGVaIJz2t7CE6rcBtH3lShR2mLQ EgD0VWSw0wEQcuAKBB8/MU28JXRDirKeIcuyqzmAt/Vv5JWnc0ETq9MwKs79e9VntK9D+XTgCCW Y0xNniIyWz2CC611h8tHPylhx2lNGJlMMhxZ/7sHQbqbgO9mXcUoWKnu180tse4Mv0HMXb+XkLJ c5+AK6dsKpMKMtSyL3cTjGiusL1HOzvpWdrDDOg4vQE3vX7wcgWffRjgTeJrTi8m3unLgVMYwA+ HMB1urFNmPRWzzB4buwpHiPOyH1mpOBIa5aP5WXPI3YOUOOO2MiEeF2zM4x6Y1JCXs0v24VMkQU ao1dCjmNLy1ymqSwHt6Z+L38iGCQkoq5/3dbdRYA1jciT3jlfYcy7BGsv3iQqi7CXcqb0aFFxzj CO4F1om6lfNtEQ4WrLuOrxe4QKVbPC//oQwpHwnTfOLF5O8zrccrHxyY3AO3QuR9IQ60rwEN8Rx 84UbgCqSTSNMy3/AQ7bFSz0poa6gU2aSqLEQRhg0zdu1DshnJIoCWUtNwTE90yKsA6POk5BqnSl QfT5+JYR3phTK9w== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX+UO1usMlQowj OwefjXWBpqFi+RoobEwuMmXv/Iy3yMv5zXd2LiAYaajqLz2ntK/YEC+0wdwsrQkTkGLgaYi/WAc EgyppcWd374GFQ3rIHPtFVUPHVKNQTs= X-Proofpoint-GUID: dJXlvMax6eKKetup6QBKfvjm9mQlTxN4 X-Authority-Analysis: v=2.4 cv=aef0Dhot c=1 sm=1 tr=0 ts=6aa2aa49 cx=c_pps a=+D9SDfe9YZWTjADjLiQY5g==: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=tpKvEUOkdOp8HkJiz7sA:9 a=QEXdDO2ut3YA:10 a=vmgOmaN-Xu0dpDh8OwbV:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX08gnZ9vr65Ru T7mGdV15yqKYlmj96XM1optFleozoWBKRUTPvE2LNe705jcCanlLCMNvLZTLvifgwP/RbQKP0jE j5w8NCCGy3iTwQ6MDtrJjJsbDW/bRUh8XouJek93jri8ILQ2Dx6QzlciBLO/f9mSbuJ+iFW5mUF CRmJedFrLkKUv6kd4gomdzJSKWtuva2bfXPlOKqPIfjd7rB1V5dFtBZ1AFwPM9sNkjR2d4mQ2RP rpAZSnhJTs5YjrhfiDc8JyKFqJQgWQtPCqIF6LxpFdATJ+gBdKI3rpuwfYYDSOiyNfkYsRVu6O8 7S1jA0NLZIyXf3opNTsFegGZRJPSkWp+x/M/GzM3IgbALhlniePMIxNb4GRxTT1V+p4O/U4JII+ IoxES1wD+cE+WneJLRK62C9w2xI4BkoB1ZxEcS9QAgaW929frRpDcyTLpvJc1R/EaK5y5BVspFy LbxwhHkO3oBhi2NsnEw== X-Proofpoint-ORIG-GUID: dJXlvMax6eKKetup6QBKfvjm9mQlTxN4 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 phishscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609100156 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 16:51:46 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 323ED4915AC for ; Thu, 10 Sep 2026 13:08:33 +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=1789045715; cv=none; b=R/AgtrkhDf9EeZt1Nwe1eAg6yfk0s0ay0LY8fuIBdUC05ikn4yQTMz0oBMP2CCKJHHQihK7h+N2v/4pTVYZWj/Yq6rDKCN8hXKmtGSov8cQcUfg2BKDnRKCaHuoEU9CEqRzX+N1kNTCbDSHP9klpLqtEsmHdegiWnR89a4Wida0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045715; c=relaxed/simple; bh=Uma3r3Qc44Y0Xz31JrEvI/Rw746qZICX+o0Zsz4ItL8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FI6rqYvbKD56I7GiUPZqlEWU+5Kb8Zn8Xb+ZmDeCt1hJRxGBEt6qCT9Wb4IXlrTEkXM98jsJ6B7KNKDWu8hLM7zYXxJCSH9FRiqEJ/Qn3flE3vhq++pADKfKCMaqqN35uz+WaYXvJghcnt9LaTwiBf5RLpdQadLwcRgyc4uMei4= 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=GadzsUIg; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ekp1j7Vg; 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="GadzsUIg"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ekp1j7Vg" 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 68AC7vPb1440988 for ; Thu, 10 Sep 2026 13:08:33 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= /AX/Kem1ZM8Esmp/0yLI0NjEShE6PnXQcN8z1bGeCo4=; b=GadzsUIg2YzBBr0D XAFgVM1jy6rl7/SVGpPBAHcFAUPphOJFD9RTi3dEQzk/rymaMtlE884OdBid3NKz C23UA2mhV90HOmldiRUW4bJqiFbybB6JhSc05KyBIeJfAk3ymXQ7+C3/uPCQRH5X soysu5yYaOMTR0YF3IW/H8CAmBrDXCb9i0r+AlDYUE4ELnUmShccEzxImWU/38QS 8gloyOD/WKhi4LdFIi/uXDU/QVZS4XfyFUnf+ngHi5Fz4/WKqNHMcbq5JG5hySXh fOhCQBM0t36sqCLk63TmfA2dbEmdTxuy3GJENDbkR2LdMAONwkKHVmsy0zWnAoFS n/wpXA== Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gkqsvscgr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:08:32 +0000 (GMT) Received: by mail-oo1-f70.google.com with SMTP id 006d021491bc7-6bcff1b9fafso2796269eaf.2 for ; Thu, 10 Sep 2026 06:08:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045712; x=1789650512; 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=/AX/Kem1ZM8Esmp/0yLI0NjEShE6PnXQcN8z1bGeCo4=; b=ekp1j7VgsU+1uCzhZwf8mvgB0KoWlrqco3wzwpq+VTBEn6xepQUYttlPBajNJP4n4U eME+gAHXalZcB7I6/92MUCG+BydK5yxRMFyCHu+Xi9qD25b3ZLzZFMeC0LdCxSYXYyfc FELgFd5MyUatnvd423S6LImPq4Pukw+IBrrPx8CxQR/s9PUR9+pL8Esj0SmJGtfaV9vQ pWwjlLDgwn/ygax3MLdkXRN/Qc91YzyQS8ku6mG3fmUTbxmKH8iAUduML9DYwRENTTq6 G9r2x/xhf/gr5dD0uVHeqxAKTzH+aLA0HvMXyMG85hnSUCJvc7s9KeHXDfQCXpWqlU1G 1juA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045712; x=1789650512; 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=/AX/Kem1ZM8Esmp/0yLI0NjEShE6PnXQcN8z1bGeCo4=; b=sDMlz9YGRpOo4UufKmP5KJygAt4kVY0vdr+6iTJVQvHj8nlowaPB7Pdh0RjVfv9RFh LoFhxkIQjHpxh8a5C/nN9hVT/H1Qy2xb29NHbkA3D+Ky6oEtYqWAbSRh+luU8MAQVtpb CCqmncse+285GKR236ml7fTw7AF6aa5BMdthek+6BvlYo6MKik5YuKD/fnwpq9CBM/u2 6j3lSdfKggVh/SVKXFTNW62NRQZYFgqRL0pLzrWXijh4lNsq4w5VLqu3lGwgn/3ehKyd gVhl0MOc7UPKVrUQV/gMFhlVqjlDj/kx/bKTCHXs4pYsIXu60hhBVWZ5VZEfg2cK8ezp UKUQ== X-Forwarded-Encrypted: i=1; AKwUvBxED0gKy4BInLtI5RVh6/fbFTXwmamxt8fwt1wy63BrGl0urNmP/jOrYTszQvvW8Q4mcM8zbAisqnshEfQ=@vger.kernel.org X-Gm-Message-State: AFuF++kF9uQcqvTl7afSqbswXISMlFL3qsqMO6z1rJXLlGPocJ2AWOmh zDaVtmCnwjx0WbQwyTZNwdTcOhVyoLTIPYe7mfva9+wvtleHop2ImRIpzvd8EBTxsPOXqqbuUwt x+7o2iJkoTu1uTa9HjwqLyrFSWjlS05DhjySQtZFp34VGacCTp5mW8Ik1a3LGH5LE47z/k2mEsb 8= X-Gm-Gg: AYBFou0oxA7PHCGuGmmOblGNgvVo+A/Wi9xiRKqlTjtIQfU+RjU3w5mMchmuhVtBuV2 NRjfErJM1TdcoC3iEZ5gP51i2dqtfAkBB1NLSbfla/D1Y8y2WEf7N0SY1rlEaGowlW3wVvCxwXV 0uKjxF1SDpvPwF/Ix3ptf6rR3+0HUx3uHUvME6OnWAc5tUv3/3jDXyUyemn4KS9MCMcZCfzPwRP RQmYFF7mG0OqZrRJwMeaFVnLHOkkJ/UcGFtN8Qxpp7J+ma8ZSx9aa8czOuM47gsA46UQQ65XuRc ZHI1Sc8oxsTRdjMUUEXIRoVMVj0UaveZvqPRX2x7XRHSz9t25oxdU+m+xbcwFq9fdARpktS+To4 E6ZA5Yc5v443T1P7cM8YCHM0Sl33r X-Received: by 2002:a05:6820:a0b:b0:6bd:f333:7b83 with SMTP id 006d021491bc7-6bee53a5566mr3889418eaf.16.1789045712345; Thu, 10 Sep 2026 06:08:32 -0700 (PDT) X-Received: by 2002:a05:6122:6c1b:b0:5c8:4409:602a with SMTP id 71dfb90a1353d-5c844096071mr109779e0c.8.1789045289387; Thu, 10 Sep 2026 06:01:29 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:28 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:48 +0200 Subject: [PATCH v7 07/12] 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: <20260910-qce-fix-self-tests-v7-7-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.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=Uma3r3Qc44Y0Xz31JrEvI/Rw746qZICX+o0Zsz4ItL8=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqoqoQWFinvRcFAnUPd4tcM/rD2YmCQ7Yz02TzF kzcr8WKelaJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqEAAKCRAFnS7L/zaE w/1OD/48D1BIRVEjmOTkZ1OTGEWgwaQ/dwyRiP644llwbqISK4/pqV/Inlwv5tE4QpyEdtpTxdA Df7w5Bz12wbRguaAd02lo31r61KrjHVTbBVXqoEo80ceuMRk1J+8LfrSYx0NnQ8KtBD2OnSdXZH UGbX4HI7FbSjGSOgUMaE6I2wDWVrAPcia/yWFtyS816NpAytkqKHoND3dlHmXNPA17Tet/FO80U WeuX5kRPrxp+jcnU9H8af1GuR2T1lV0SwqZ8nsxqjuVoH92nKd24o5UTxcMA0Qpf5WwIAJYcn5p P4oN3MJphGRyLvnQ9KS4KHsfejsoGDl13uRKAclEI6TcwUGYooiVrzgqbjcZExh21imLVS2iOO/ rA7log+daqucMzjZxtW/xMGCdazuGXKL9w5ujt8z5GdSJDNuzpX1OModWvWo4izz+Q0XPrnOFXV HBQ1QHPrmlkk9Jnaf2v49MSx1C+9Mvb1GtnID+H73kSN9k9qYSF0uf+z86TYeGJCfuG0OXm03OP VQ03TzoyOKAVkTZuN1IDFsd+peHkQ4/H09el9UHpYI8nJgNUdk73/rAFud+y8pGSNzRK7/x39P3 dXgJX7c19T+RD5BCxZtuFOUU+WoXtnwrcCPWhVg+DY9179m6Ut9dWqgHupDiSryMW3ja44w8yyd r8Nz89K4h5eKNUw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=DdOCOftW c=1 sm=1 tr=0 ts=6aa2abd1 cx=c_pps a=lkkFf9KBb43tY3aOjL++dA==: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=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=dx2SfONCXZg6tt9xEGkA:9 a=QEXdDO2ut3YA:10 a=k4UEASGLJojhI9HsvVT1:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NyBTYWx0ZWRfX/EPHWBcavDqC 9U6OCQn1/wXJdmKzhBIXx1GZYx0ChdwIC70BVv/23WmO05/vpqkkPNpd6PsdgHrrtfH4uB4nPwV y0N/CKiSnctyCrFVsOAiUUmUvV0SRaUCWla4S8fJVKIxTSZ0cfJzq0pgZzUHWxiU2OfVtPHzlLT mhsFCYOUUvuOJmqlp3a7wPZ/hI7M5UpVIjC3AZI4y8tZ8pfIrEhBXV3J9cfFvWTUfQhxaWsABc+ Ji43Jfy77vuYdI0K0VoT9Z4N+/wFEX611cs86C7yu0NpU4g5IkyaiHkotcrUwg8gOe2ByRdqJdl WPmDXY8yxoSuiZXb20l1LzDXP/rhpkm2xnDmuIqBJSFgQkHHiA8k/f96g6n/2AcvpLFy6pJK/GS Isl4XdiBK8N2lfdN/rACGraFwTW5M+8Aivd21Bsq9xSIUhbDdz7PAjk3ypAJFhtfUW7WqrSw85k ViZfY2C0aojPcTIHlRQ== X-Proofpoint-ORIG-GUID: i53JKAbJ4Nk_Hi6As2UCQPA5XqCDCFv2 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NyBTYWx0ZWRfX90aX6hgqZYL7 pKLBcQTJQoAeubf2uHHFU7EBE2nw7vpxE6ZNA/wavYxteOgbuyRWIl54lDtY46tG3B3R6I2pjOF HFVt8SAg4O6EuOCmxjPLpQDKwCDEm60= X-Proofpoint-GUID: i53JKAbJ4Nk_Hi6As2UCQPA5XqCDCFv2 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 phishscore=0 malwarescore=0 adultscore=0 spamscore=0 bulkscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609100157 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 0453b806408c96db9d67e8f1fcfab83f145ffb26..ddae743903229f248d1dc7037c4= ae78537476563 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 16:51:46 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 8D42747A87A for ; Thu, 10 Sep 2026 13:06: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=1789045603; cv=none; b=O8Jz9igtpja/ghB29Cp/LnNjLHgAGg5Tlatv4BFC2GexvWq9gStxOlV7ticcDdcJDuG2ZBLmYcB+LhnyoD0ng8VXOG1za0HeKwql9dhIhIHe0STTHnVxfunHdXwVDlBug4Oc08u0Fmrjs1qBCVqUrKlyBqEK4R0lNp9cgIqqSaM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045603; c=relaxed/simple; bh=c+p6s9yVI0Yq+ycRUv6lRoOCSIgxZ5LCLv0Aqa3oIhA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eBoz772zKJ38GUo+M6s7fd/NqEdTVenS4ikeKacFs3SOkWWcMbpNGBo7GSNBGaHNCxk2EFFO+E1TDWlygPyRPjoIen8czmd7TwfGbYj8FLa4zAXjLRR+zkUJ9tMMIMKriUAYjpNYbB0rb47isf17couTbaWWi7NhJihbJ93ZHJg= 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=j/zu8NBD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=TiiYIbR9; 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="j/zu8NBD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="TiiYIbR9" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68AC7ad33893069 for ; Thu, 10 Sep 2026 13:06:39 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= relBmYOFO1X/TjoPGlxLYddWYAexqzPnTlPv4wKY+6A=; b=j/zu8NBDplKfFUpL TAoC/Ri+PfVEgkZSNvUVQSYHBe//57LS89YpLcbJYj5Q3SsmciFDRFZKW1dYnMpe mzDm2dniDmHzSxklPb5WOVIWpOJYCxWR6V28eotCG1a+xSR6x3xSo/dDCG5dsRdQ ZC4O1pz2wZYoM1u7F7yuVT0z15A45LPO7WRAArZav6olBOSRbxYU2ecyoAzXaBcn qmxtYUzDNIp+iMYDamrPIWRGi5Xf7SCXTzTFM4EZR9APzhC2MCnXTN9VK55VTsjW sa18zBg4ew+NMOw2tillchvH3zHX3kUOzZWKQnnIsZ3bXE6trjuKRvVut5iT8VP9 B/NugA== 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 4gksh8rxje-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:06:38 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-93918756165so1229629185a.0 for ; Thu, 10 Sep 2026 06:06:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045598; x=1789650398; 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=relBmYOFO1X/TjoPGlxLYddWYAexqzPnTlPv4wKY+6A=; b=TiiYIbR9+DKjvYDtcvQDljneonXeB4ylryd3sEz6i4G/CHDy8FdNkW+9q6rG0qTQWg YZkkIXLDU7EU6jZN0JkQ8FM7goWj+RJvIIRs/IWx4XgcmQiqxVTH2zjwkxZN2NKJSfXe eawT2XiP8Wmuy9jy8H4Ss3oeWOGsX0PMZw7BBtom/1xDI4pETg7OsfZVxg9nYdoqz0QX LJfS8XSz+gJknA2K1oI4VUejcVLPy1pKrq/C/74WZ7zn13hn2X3El50lPpU2NMVj6oow S3TZslW51IY7b31lulPI9AXMorix3bUnb8tthv5ccsJy9oLLT042kx1SzMjxETjDDIz+ W2xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045598; x=1789650398; 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=relBmYOFO1X/TjoPGlxLYddWYAexqzPnTlPv4wKY+6A=; b=a3mCGD9WSm3J6Eiu6ib/Rh13fc8tDkOcS+6FKNOzmywaKLHck5D8A5togT0h5mERbP Ffr/6fxnXhXWYNfnYn5WRyhPE0j994DtfQSR3mmN5yKLmocAkWr5Sanm/WuZ1PlS49J+ raGz//VNYGKuUOD8rAVKv1ybB8XNfWwc9WjXw1Qs+RP3Tm+Oqnw0mEVEGR3nTct9UX+i IIW1j4G6Dpk2tLeeDfI1cBatiCLzS6mSITxwcOBgHntZNsl4Fxcn/PA+nYSz/CAa/7Pm nloHrtkCYsxCgoEy6M3zdzVne91OD5bDWnpTx0l3EgMreDtrMlyRzfNRctks7BOpoE+X SMqQ== X-Forwarded-Encrypted: i=1; AKwUvBwpiQzIi878wYsTooyd0CcXplT8lxVblInkRSF0syw2LXBtOoCOohjuA2LSTgmtX6zXf/gNlv0Jvm3+E3M=@vger.kernel.org X-Gm-Message-State: AFuF++mauMMnrVF0yVSKD8jjybEZF/vAO874EceLx/otHuNXb2Sm2eaf Zs9GijagJMzPjE1ctOmccwnkf/sUbwiohDrBZGQsK1IEYACfGar/U6H9CxO8Q2VWdHpKXL7Sn8S J4i6LArXMHk8XH7BgNNSkVCg0OowovSW3uSmCLeY/rQTA43Kqfqa1mjOm9bfFItdTivm8S2nJm4 I= X-Gm-Gg: AYBFou3u+FWzoTeqqoSN5KlbD5RRdJCK0h92rDQzJLqcqG9REMbK47k7YDQhDnrSQFn lNP6ZpvP9NcNm0+Myk53mfSw9KnuGkK9iiiOL8Nkks299PGOq0zMmqCD4PCtgAg+/O6gbNVghCp fStXabfqjK3KWmh17wvg34zIeaIo6oNRhz7qx/kn9Etjnlt1pE0CpJjFMDWnScRhNOVh+l86ab0 cm0lcGF7nwx8phkj+FzveLQTowzx+N38ZLjM7YZ6eQgt19sgwL7vn3cQu4v682ncNcNlY9ZyzZd NqRMkg6aisLzCiEen3byAzJ0upt/VdK+0Bq4gnwfNdgeW1s5Qowi7RbnA9SwQG/D77ZXEO2KHVA PSQXz0m6VmCsidx+tC+zyFsavxgYM X-Received: by 2002:a05:620a:1a19:b0:939:8856:d8d2 with SMTP id af79cd13be357-939d4a464c3mr916072985a.25.1789045597768; Thu, 10 Sep 2026 06:06:37 -0700 (PDT) X-Received: by 2002:a05:6102:508a:b0:785:d308:cc2e with SMTP id ada2fe7eead31-790782135b2mr3092851137.9.1789045291582; Thu, 10 Sep 2026 06:01:31 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:30 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:49 +0200 Subject: [PATCH v7 08/12] 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: <20260910-qce-fix-self-tests-v7-8-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.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=c+p6s9yVI0Yq+ycRUv6lRoOCSIgxZ5LCLv0Aqa3oIhA=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqoqoRbRuzkoShNdtafGIAgnA0xnyF+lEcp06+H kgD2ZQkLDeJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqEQAKCRAFnS7L/zaE wzP2D/9hGuL67BDBK626TexNAQhxhQOnt3xU/y99CgCzBWmniHe1EDoxiWB76ijWDYnK747FI+k IO7qzuXvb1Foj5AIuSK0Pz2SG5PNBUJbYcYH5zdcDAwUSM14bvjp09Fl5ptswMbH26GRlsODQzc Su56Ayh8sTqVIQa0s6VQM0ZDBthULVt8Bssv35qIElmbr1apZH5yjuoG3Jdw2gyEreNflamLF7C t1fHgRXt/gHEXtO8hqnMbfDrWGaVImdamkDEUkIZSgfVcFn9bMlV77uOv2QbcAUjb7tmWFrx/3N c47YTXni1YPv7E+oFfB38W6UPS6NnS0kL/9yIuimyojopjkeI7baUu+8KydaWvEH7fDmEcO/YWz c7liyBbY1tZWuFuy71GQSh+fWLaYigze1Mqh78IsJPqrRadfxpmj0ue77sMo5madqR+DuSw8M69 jEuWER8BOOlkLqZ3abvl6YZT1iLMnwN+M+OqBIvxVixvh7b7SSl183xvqzPDMflyOA5yu9CJ8jp dVgHnbwgDIrfTume4n6SAyuMWR76VpQkgZiNlD5cT4TL7jrIWoukQ2V5sJnWtcGM6kZTyvHn0gs cg3eqiTPQ+XBnQyHziymbJTSsj9NhfWeX2lVRpQuOFFGyYMqpWyQnJe06kwD88ytRq8fKcUEyPv bKJTCYgwQmUxP6w== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: 8fvXEUm5fHFXdB6yza6f0ftCvSI7D7dH X-Proofpoint-ORIG-GUID: 8fvXEUm5fHFXdB6yza6f0ftCvSI7D7dH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NyBTYWx0ZWRfX4XoQ6D5lzgeB WeG3kF2tM8o3yzoHMhO4E/MW/zh/dQC+1iFrLEuzEkoMENHWAlGmC/Mzx7mSDVWoqnJFVlTKt8b 0v60QbfrC5U82Esdcp9ckOUH9KrZbAkOWfgN2CkbYMw/535okNZtGRlUnWCC9kk7qZgLcN5e+eh h3cma75UjsF8wiJvR8WE1x8t53tTA12U046ot3R6n52tAHbYWIUE+iN+SX3xcV4kM7J3TKJwIzR IpB1rjbURyKi+uZaIoSApCtGDao4keCWpf19XRNoxvfAb9ecUJgWUj7ZKP+H+CIMVC01m61kO3F QQ02UsGgSJ+etnyec5jBtdpj80HVgdT1X0Ps+WQhQqnCtytmzIpiCWGtC/CrN34x2/bBmn2+WUE TVjoDjvRYhy/iOigfbeEuqZf658r/hTwPbably5LzfA7l6zoCGMkzBv3PbNaK3EmwybhpiHhscv JTgSPX3KDi1+RgZY7KA== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NyBTYWx0ZWRfX4ehSYflVeANX KkFWdYbF3iwuCHtzUlZm9s+q3twE0o91v8Q3gMDpnA4olgXudWf1WoxTZGz+uAT1cKod2tbSFDD 5uIZ/iiHDXPD86anamYs+DDBlP4U60s= X-Authority-Analysis: v=2.4 cv=a56lZkSF c=1 sm=1 tr=0 ts=6aa2ab5f 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=DJpcGTmdVt4CTyJn9g5Z:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=phyxH6jkQibGXiXynFEA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O: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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 spamscore=0 adultscore=0 malwarescore=0 phishscore=0 bulkscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609100157 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 ddae743903229f248d1dc7037c4ae78537476563..bcd505579556c4d54b793d280a6= a7f819ba573c9 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 16:51:46 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 85F0D48EC96 for ; Thu, 10 Sep 2026 13:01:37 +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=1789045298; cv=none; b=nyh/JPWTbucflmGv8lJnJ36AQEKnOB1FfRvXRewDUpzo+fH2pWErZdM8smYt0F3gc55aV0oQo14Lp+VJc+EUHQvKt1sXNZlvokxaDIp7bc5JCrrJ7K+XDpsVX3Ux+gMOUCVs9st8TymRHs/iVhbZ1pPDCtbpaOhEnUKcgb3PiII= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045298; c=relaxed/simple; bh=BresRinsDjLU7I8KbFnNfeg2un9NXgFjbMY4oSk9178=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZvNZdN6gHIefqmnJKn2LT1F9mg7TdxZTk3bdBuL0ClaZG44KGpXGMsGz4XgjlIjHRb4ir20PWYTUWptYPuu7Yq81cL5mqFqTN7ajgaKX90DnXP/0vd4eBaTDu/tAbRKPLAYC/+aB1dRUTAs1BKkMLKWFsxemIg7QzOlGSIPsjSw= 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=V97PFYxE; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SFVwVzJY; 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="V97PFYxE"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SFVwVzJY" 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 68AC7k9K1242016 for ; Thu, 10 Sep 2026 13:01:36 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= QaTek2Onfxdx39SUxr29UbGVlfItIqvvpD+sFEVufXI=; b=V97PFYxEKxj6ZhxF TBiIuFDJZl7WlCReqGQXXYA4oUoOLZnYRg7zejNzW/+sUD/Cvr0enXMqWo1WXe3p r63elQSI+NOympo564Om9QI5QyBFMz+w+jYsW7/FQmmtbQjH3GmKBhS6WIQ/LX9T 05/g/g62Xupzc4VkRKw4E9VUlaK+sbC0AP4d9sehl/tNmnK7V+VOAlrejqcXLLGN VkQv0FrxUou9e1mmzlHREYaV+j6uSXRkxatiKNMN7HlR7wN5jjZ2RN3GxPd5CgtJ AatbE12bm1FG0JHsdmeI/2cYFUwC75caNK0gAYW/jvZCltqqPpFlJeKUNXNZ+OYf 8HOUoA== 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 4gkrcjs7dv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:01:36 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-79013d05471so363210137.1 for ; Thu, 10 Sep 2026 06:01:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045295; x=1789650095; 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=QaTek2Onfxdx39SUxr29UbGVlfItIqvvpD+sFEVufXI=; b=SFVwVzJYq0flZE4jFi5g7Qb4H/986d4rzI+7W/gGHLA3lAm83Xtnn2JmQ+nmXbtKVh vdpSppKzB3l3r/4kHpS6qb/cyRiuveiGP7wIhiOVL4UY5+hZNwmEsQgQtEosksEDFwo7 eruOD7r7JswHQvPwAQnzZaziW+4TomQ6EGcnHquzHF+boHb0kstokaBN165+/Z7f80y3 eh+rOWy0yuVBVZL5z3ab1U8dj+lbLI7CGj6FEVbDepZXnRso9BB9ZqfnX47NP3oD2hOx MF1oaxPtrcA2ay+W6TRfP98ejlTmpTj2+S9YYq4Lg/1cqfsATeutR6SsxLCj+7jAWG46 ReNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045295; x=1789650095; 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=QaTek2Onfxdx39SUxr29UbGVlfItIqvvpD+sFEVufXI=; b=KXJBZIOAC9SSM+rFT5AIUxtvsitWU35D9cedXgNH6MSmRbDP/2Y/LXJS6unxku7UGv Z249KReVJmO/rTLoX6zIb6XxJEo1r+JVorNSh9/98SG5A/OYXer/LKDgHCVTF3XzUSCk sAiLCdyLZWsb/cfXI6sp59xEHSj81SAvKJanuO+KkE7u5VYqZb1cWmszHFLsYfCe3TyG QaUv9QoVrs2x2JoQhWqiE4fPRer6zPil64ZwYL35vcg7RYM5uibfhTEAVHgwesSTDxRd nHc/FBqC/RvUEF4Aj+2W42/5frwZorkGGjImBJmPXgnDw8yEE2/t4UOohGRIzlQr1f7x 3mNg== X-Forwarded-Encrypted: i=1; AKwUvByreU7Eh8MJtvImVxoujxzuVtRDeZrb8jdI1wA0ibfZAfzJdEGpHT2HIq8rSqxPZeHWAhABoRDsiGpNNFk=@vger.kernel.org X-Gm-Message-State: AFuF++nNqEaD1qliMCQDgmhKJNk9pqP0nAI/8t9JgSGp+zBBwXYSGWyy qTsgorZlZNZwBYHgdA5gR8jCm0TsOp81KqqGjnPWwZzsfvtuo2M1VP49haF1ROI+nIlcxndtRqT WDwZcHimAQCatGUVlnKWsxgmMdK+nZNBuNr/IhNIgg5HCoREfwXuxQinoFqORI3Lgjh4= X-Gm-Gg: AYBFou0w/bu5KpT3GlNp9CyZDzhlzmFU2y4ivnZRbzK5SJ+461M76+X38O8QIs0joAE QrofZ5zukfIG2+wnhpm0ksEagT4e+9VNya3d0GjMzqT2DzBUoQ3ap8sJRzH5s9xEIaPP7vYFmXj ngpEbfdj6iJ8mAVwtyCJkPOt4VvKwkr1h/8yEFFbzluwvuRjv6xfgRzHE+U4K83Scx08IEJCIpm nZqtxC67eNzTlvU9rfQIHoDlDN0z+rHGrfXEY9TJiY53jv+7TF5J+5U4OMowAGc5xldpESDjGlB IrfVasumBnwcDGJ02hfMnMSY2Zw8XKVXHhwItgn52+BoPCAcnVDDGesB0oD5OHXYJO/QzcIRchi 5DQ8JUdgpv+crhK0WTLIw5FJdTbeP X-Received: by 2002:a05:6102:e08:b0:789:100e:3d1b with SMTP id ada2fe7eead31-78f70e265acmr4187696137.0.1789045295573; Thu, 10 Sep 2026 06:01:35 -0700 (PDT) X-Received: by 2002:a05:6102:e08:b0:789:100e:3d1b with SMTP id ada2fe7eead31-78f70e265acmr4187645137.0.1789045295027; Thu, 10 Sep 2026 06:01:35 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:34 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:50 +0200 Subject: [PATCH v7 09/12] crypto: qce - remove the BROKEN label 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: <20260910-qce-fix-self-tests-v7-9-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=785; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=BresRinsDjLU7I8KbFnNfeg2un9NXgFjbMY4oSk9178=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqoqoSw1zAVU0Ymhsj/oLmPX2Tqm9nj03vEbH+x E0E+2e+i1mJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqEgAKCRAFnS7L/zaE w5QUD/4nPFFJn8rB+N4iV2FEfnliZc9W5qwW0KgaNwSEMeAmJnO4aUdqU42tR3YLXFrE7N3yWvi MfVZWprgceNoYtNxA/fSStmocMDGmD8SvhBgbw94ag5uhcAmu/IAg5ev6VTLyiGzN/Fks3Q8cYc jJwYX7tDOrBFYsIi0RlXHZfAQvkIgCCMnfKdWmHaJ0F5J8em6x+DMp2Dis8pqpjUCNCCrS563sz PaIOMO/NX10m2VOw/biB7uEPSSf4NIrA5r2smwm7g9xoiU6zCXtIqgT1rc8bj7lJLPDiTdZCgm0 RKbSB9mFEP/K67rU9NwTLLdUPAYUYfhSxVxs++Ss6Vs49KHoeScZZse2fjq9ZDXL8irvwXU+EAu BFUb+s0akyKaJ/GVkGO2TJc2OoH3Rfmi8tY++3FmEbK73QyQNVSG7+GgQRLCiIPLf+B/Hp2jhbf 0/G3gI1M2DV2amI3DcdFo/PP1bYYMIdVzngGE6+zGr/fpJayrfz6Q8jDf9tpOfES3hRcbTNFr05 Fmb+CsgD13D67I8XZO8zMJ5gsvNgGt0Rs+Pki+VB5lvmmr0bwzXW64eSjIW9O/7UbejhJf2Lgm2 IItUmBbEH5UT2HhXyabC8Nho18PJIUXU/Sxi2QYhspU4Sgh4o5xld9mszudQcwu1AiW6fL4kyVT 1Ct+ijsjfIEcrDw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX1zveCkr9oL42 mlXpXe5FfXJ3rNC59K7V6a8kO4e4FpKHyc1u3lS8ZxCVxKRHeRYFP53XV8h6Bp7xMNaWgJooIGz Q3XV0bya4PRImEu5M9es+/UhrTAli9g= X-Proofpoint-GUID: bhbkpFhHP4cjZojXzlTe6sXv8RtNt2hH X-Authority-Analysis: v=2.4 cv=aef0Dhot c=1 sm=1 tr=0 ts=6aa2aa30 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=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=0MPpsrD0zQiP_6dgn8YA:9 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfXxmhmBjwyW58X PgL3zV1JjS061KBuSMX5+8eIAxlhTlp8PtzN+vKMREphYqAOoRqi2ZYdy7DzTCKr5RQi9kXRL6o nfinzLdv8i/g/KDZdJLVE0NS7cklz6ztWqZ6y7UpAguu7Tv+tJ6lF8kmFCoYvIVwVXAcng7GAAf dm+Dr9mRRk+Z+Souj0iufVX6L06rYc43V2alaBNdN9JlryZyWBY9uuJxFHuwezZLqdiJmJJ1e56 hYHxiXaKGcufdt0ioJPZ8tkjuOk+xQhyZvgP9Fam49AAvDTxUpI0sPZbJB8x0FRZXZAu1HGDZOI NsBkVk1pYa030rkAtZq6PUYVbU56BGZ6MOZ1oO+sAdfqpMdmtyx66IMCz1wMRxTxIbrNwe4KkmW KXl0Hx8vVm4r8gG2lx/mCiPZPWy7jeOpZdla6asYdf4qCcx/Jg2neFGtN2PZ9HNzImRokipA9R/ U9w0FiijjCQnBCDZcIg== X-Proofpoint-ORIG-GUID: bhbkpFhHP4cjZojXzlTe6sXv8RtNt2hH 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 phishscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609100156 All self-tests now pass. Remove the BROKEN label from the driver. Signed-off-by: Bartosz Golaszewski --- drivers/crypto/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index 0189dfdcbbe11098ead0ea194293422a31d8fe65..9f6aa82301a5101d57b3651c9b2= ba33213e41d3c 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -528,7 +528,7 @@ source "drivers/crypto/intel/Kconfig" =20 config CRYPTO_DEV_QCE tristate "Qualcomm crypto engine accelerator" - depends on (BROKEN && ARCH_QCOM) || COMPILE_TEST + depends on ARCH_QCOM || COMPILE_TEST depends on HAS_IOMEM help This driver supports Qualcomm crypto engine accelerator --=20 2.47.3 From nobody Fri Sep 25 16:51:46 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 8BFB448F015 for ; Thu, 10 Sep 2026 13:01:45 +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=1789045307; cv=none; b=Fn2iGlXbnP3UlFEqfJfoKcffX/Y5sOiMLTUwVLEWaajtih8Lm2Cy2NDNfMw/Y/IGFulGsqHAhZeAd58RVjMgl5cnA4HlH7tk5aBziIVRzCnmG/YbY5Q9bBEmr0Y3lofcmnkE2dSW27FJ4y84cB1dmLXesvwFcz2TPmdROg0Mh7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045307; c=relaxed/simple; bh=E2wHQtiVoEOtyeV2kwwXesDs3cSE2G8p1gcny20/03c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DJPdS20IzOYKCd4awK2YbtT1EtpZvcV0969ltnUb1OnopX1Fs4z3tVnT7F20hf5/dDObTZOGGe608jfwTy8Jx1i4SHp8ke4gOg421tJ6oMuDDVkRQrRNQ85Naus5Z8rUsl1tgl4FRDgJnFXjfiCzQ2Nu4XBIVdAaBEPJtk9kmZY= 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=jl3rFYzq; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QceP3+Qr; 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="jl3rFYzq"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QceP3+Qr" 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 68AC7owi781276 for ; Thu, 10 Sep 2026 13:01:44 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= wL5jD6SlU+kaOcmF6Rqp6+yBGT41rSIopo7Vn0N+o3U=; b=jl3rFYzq78m2U9uN v3oq/6S1qWqW2PePqkIpyR+9QSTgqVQdAuopwSx7tbECRvnk4+crgq0q9Ya6NTsW iPKKUlHWOWhpiaN8DhQAbVZUPa1Hdov/KBtM3LVitGw8TWY2VLC5kwW5OnVnKb9Q 9Avi74hVEKth1aiWlb8tnX9MhCKXfaobtg0fYamU0O8VZKh0J2feOxd8BF/Jcgwj /+5k611R6yR1WY+1NlfjonhdGXUL9iUAEIQPCzoABjOHeS1TzpO19won+wK4vBix mxMwESADP0Iqsu1HmMUN8dODyVwZ5g3xQvhGa9grEdNdZHrQZMq0MqiE7RocidCS WBjaaQ== 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 4gkrak9740-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:01:44 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-78bb7517525so1059726137.3 for ; Thu, 10 Sep 2026 06:01:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045303; x=1789650103; 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=wL5jD6SlU+kaOcmF6Rqp6+yBGT41rSIopo7Vn0N+o3U=; b=QceP3+Qre/qldy+FyRY8jW5SRHA0gOYblYt0tjDhA3/fXn4eg6PTI3ujTv87jC2IpT S8wjv8WIVQrpIoVL5y1AVADKaSzP24S4ygjWOinslO+5UtHhyaKRT/frn/eoaBLSU/h5 ywUyJidI1YC+cX021Q6gLlSaaLhHNCeZZDtE+TT+Jqm7luzjaMg+SMGy3UKYyB+HscST oVpIug+CaMKgSCKglMVaYyZOPCOAM2mv5F1lBNs0Nu6TWWvEZVKmxNSiGbGddDyw82xZ nNVBIdCSAMBk2dN/r4V0vei4h+ma4d7CThMpO9ToT5A9/tBD0CqjFgmTSROQrZsHDvmz SEsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045303; x=1789650103; 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=wL5jD6SlU+kaOcmF6Rqp6+yBGT41rSIopo7Vn0N+o3U=; b=msCJUWsRHp5brtohmk1hwR+egFA4IzLZlvvWpt+hun4ItCvNBsaRs8nNLAl7qKTub5 3ZpOSFjHIxFXueISkrBhYZGX+JdcEb3JyAo69zvT86VKWtBS7tFCT7Op1n+Db+jmoCKo pTfrrsUHgaTVY6oHRY5BrADutT/F8qkwS7AoPzjdRQKRlejIDYPFmNF4Btg8W66JWN1A jWjgAs8xVTmRn1TFQBYERH69yf0UNQCEKwP8QMXCE9Br4K98FC86ym7RhQfeQSdziChg tm0cx9aAiyKE8Apz8a2kG5AzVFAFQkCgyKbrWL9mFACXAvL9SsBuDxIOkHEPUzpxw5zN md2g== X-Forwarded-Encrypted: i=1; AKwUvBzkmqZ1lEG7KCS404GIp02qw5mGO8a1aKlVLxt2xEGr59SIKDomRhvZXSP38GgviGWcS8ecuvWXlNwZdUE=@vger.kernel.org X-Gm-Message-State: AFuF++lYuZ/M6yDn119+XsUSSvvcs0Q/wwLIA/HZ+AT6IzJklp2Nec7C oDr7PDGH+PwUZtBf3mLsA2a5mqEWoAPQYha/6jdeHdQiicMc7bT0748vt0SuBbMZMnJ7B/LCPnB 0+X6Ko+l5+MmlhmgIgIvoArsbiXarw3Rd+z30zYoKK5SG//gbyiHZhc2nxdvTfqxUc24= X-Gm-Gg: AYBFou1JkzHLj67kpCYFLZEyH9yaNJBa8wn2zrm+WctL7MRbO17KUlSeMAj84sX2zpY s7jyr0tt3xVQYSd7be6dPDctbEahxqRxKxZgSufy9RVqYAuVVUz9CJLZRvmddW1jsA8VebQD6zp ngbnOL3WZ3r8WVWF42FXFrlvtJt4p5onL/WSUMETlzsEBrIdhO0iH2Oa+lrnAPj4EWPqfgfaVUR GOVE+0lCyuz6yY/CO4f++uuINXxtp8N5C8VOWjoI3JDsjStun6gNHtRRfUq/VLQsOW/0LDhJcWO Ab01NS47EVU8UEB16AZQH/eF9uO0KeqWPDKLwgoNFmuzz420QI8WU8KgKa4NmuwG7mJJBxGulHj 5Eu8y8tC7WTkHdBwSv3XEgf/R8l4f X-Received: by 2002:a05:6102:e0d:b0:785:d308:cc0a with SMTP id ada2fe7eead31-78a4a91077bmr18009969137.9.1789045302325; Thu, 10 Sep 2026 06:01:42 -0700 (PDT) X-Received: by 2002:a05:6102:e0d:b0:785:d308:cc0a with SMTP id ada2fe7eead31-78a4a91077bmr18008362137.9.1789045297116; Thu, 10 Sep 2026 06:01:37 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:36 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:51 +0200 Subject: [PATCH v7 10/12] 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: <20260910-qce-fix-self-tests-v7-10-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=14576; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=E2wHQtiVoEOtyeV2kwwXesDs3cSE2G8p1gcny20/03c=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqoqoS4es40Iak/7RWcdhKa4lhYyEp2kMOlzn82 IQz8sds8dWJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqEgAKCRAFnS7L/zaE w2CzD/97AEgsNO/Cg6mjKLvHjq5lozEZZY+mwSkDaQVTX+HoYQHVhWQpjXYxWBJ/YGdMt5nlPtZ 4L8MCWR0ga8q6GSijeycVy6QB5GIEbcmxQ/ufVhyyKPrXFN6RGefNnDm3L0PTdjEwPqFucdeRd0 Sq7xeUAid4r2XvXQnoHRLbRnJD3uYfYo83xx0wpVt7T1BvvtsmuuSBCfYDNUwObqeM9WKvYBrEG 1cZj33MCH8BwzjfBViBeHfQr+8Z0vktwTU6HUC4ezt6Z05s8JQvUeCQdp7AFhomkBlWyUv5d7Yq MjNSmm+NlWBKmVW4g2KJJks+jca2vR5V879pa0J5UiGGPpafSiumI+S/WhAFTK5IFoZYC3T/sel p3wlyzNqtseSd7zjYVgLmuxi3lM/lwR/E/U0OYwWSE2Fh6Qhlc+mcCW6MDp22ptoBZ7WR2jzY7E czptpVH5QlLIuien2Vg+bKIAdOlMCiNL7NISasGBYzfrSxw2PtedUbppzMLPkOgEXjagp/qON/i GvCdNxejBCMXNq1elQ/d6dfuNpYK7JGcP1b5+vE6P5WouYryuff23qRMfMB2S4HuNaZOTutQKs0 m06t5kFBUt2PRjP6ynBuqT2WErZLKZ2oCUrgdViR7oPh70//UN+RreYm80aG9tb7iu7EtAPWvSG nPbN4Za2Q6kUeWA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX8mnERH1HJ/1T o26AQvPFj3b8jJ0pI5VErSXFKuH22+0/Kv57eGxyyaof4vo1iesZs0P9duLxTp+7mfbf0udLNXU VqkIhIQmy1vCnLfegiOdUV29e+HEPIQ= X-Proofpoint-GUID: A_6vRLb4BY3OivUQby4EtZmRz4Ar64XW X-Proofpoint-ORIG-GUID: A_6vRLb4BY3OivUQby4EtZmRz4Ar64XW X-Authority-Analysis: v=2.4 cv=EspHPicA c=1 sm=1 tr=0 ts=6aa2aa38 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=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=WPyFHUJR_z9Wl-EIX7EA:9 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX0RXqiVf+3DIo roRpUbm6s5S2u9xmFcLEhSjntvSq2auHW3lGVlWquDX5lZa4Bnejjt9L8HmxFcRcxPx3A4R+Dr9 6FfGW3M67J63vI34+d0AXZjrQRH3OHGI9as81ogkDtoDGXV0FXpE9ovrGq9ceZF5A1cjUTNZ1MK gEbZbv7BBNlmQUYdRfVRwkhVDDWFSEF7hbd+ylLvri7B4XVprCwbwtP1QOk/fBM1UPI9u+9s57P GM59FL/WiamhYxQUcJhzrHFjs6QlM09CUcqgFezhlj8UdNcP6Z1wR9SadjsMK13uxSZZJahX401 oHXxLShFvzu0Kdx6tx7r9PVqfQbXCQSyM5ytZ75Ux87a21wHHF/uySJsiwy7y6F5xQTJcMsC48W ppxvRFhKOy765jAkOsBpopI/6q/eUL8xQI2nBh8dE3onmNcinsQZWcD8G8kRJZ7ioVv6CHcWaCz keTmzCg/RDwrCacH6Yg== 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 spamscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 malwarescore=0 adultscore=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-2609100156 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 9f6aa82301a5101d57b3651c9b2ba33213e41d3c..1f44648880be59ef5461834773b= 14a9a0084acd4 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -530,6 +530,8 @@ config CRYPTO_DEV_QCE tristate "Qualcomm crypto engine accelerator" depends on ARCH_QCOM || COMPILE_TEST depends on HAS_IOMEM + depends on PM + select AUXILIARY_BUS help This driver supports Qualcomm crypto engine accelerator hardware. To compile this driver as a module, choose M here. The diff --git a/drivers/crypto/qce/aead.c b/drivers/crypto/qce/aead.c index bcd505579556c4d54b793d280a6a7f819ba573c9..833866b947eb6d14808d49e0f8e= 3a2a5fcda432d 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 bf3c1bc3ba7bde5e5d08e06071c67ba77af95695..b76ed136802d1ce1200a413ede8= eb0f792d7bb78 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -3,14 +3,15 @@ * 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 @@ -24,8 +25,6 @@ =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, @@ -89,11 +88,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); @@ -116,8 +110,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); } @@ -150,6 +157,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); } @@ -190,10 +198,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); @@ -201,13 +211,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 @@ -223,10 +238,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 @@ -236,7 +247,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; @@ -263,31 +277,17 @@ static int qce_crypto_probe(struct platform_device *p= dev) if (ret) 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 @@ -296,14 +296,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) @@ -319,8 +314,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 @@ -329,25 +323,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 16:51:46 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 E35F04908CA for ; Thu, 10 Sep 2026 13:01:45 +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=1789045308; cv=none; b=RKDQI6Jj6t8XR1OZgus15pupy03dMxwrxMKV2/AoaW9FGkKQpgDLz3Lu74/EixHB7jnlvec8/BLhUyoBEFGj38h4d6fzaDj9tc80O1+Z0caIxZq8BzqbZXTqw/EoUt2JbsWekw9QrTMnUsgurfCqRzRKlY2+tzZhRGA5uFm1I5Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045308; c=relaxed/simple; bh=vd5H/xImeYjTu+utvQUws4xVG15wDIeOJYRAn2MwOYc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pE/Pug/4avh91QqbNViGXN8GNJKXvh8yCy2YHUQaVtYvzNQTMlQulotXsYTi+I1mViDkP24d/8oMHCIpb8bXKTfjEpYMIHtYr4KZHhGR/EgLDIwsSnQH0ZRHN35vZZKrNPyiGsB27d+lZQxBbFtCsB23Yzzk03hAyS80G/bq0ts= 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=L0QILee/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=klVZa0gT; 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="L0QILee/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="klVZa0gT" 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 68AC7ehm1440462 for ; Thu, 10 Sep 2026 13:01:45 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= GDqvvL/QEdH2j6dVRoAeWH/JNTn7jK0fTxmvAeyTbL8=; b=L0QILee/qYEroYHm UD5gCIyOR8HuSKn8QM+OCwI+ccQ6/H4lchBi1Y3UnTv4DHe1+X1gppkuf4Xlao/B xW/+f0EGwlwxtgB9VxAlHTLj+SBZlAMfQGWOlnGsgzlxQAtCknTJc+bBQs9ovI3b qaQldVOrHb9u/FSLDypTbY2GC215M74e3/kLEclrnErMR+xdoLLStd6lD6f4UYIv b0ILllt0YqPpCdc6Jhc5KFQ3ygGklIA+bjrO2FO/JDApQlzXqxwSy33hSJbuwwD0 97vdfg2NXG7ogNZMhMVW6jqXNbfcVRHHqGxXFUlm/DrJCMMIIhRGJth0XOdAJZw4 mNDnzA== 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 4gkqsvsbay-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:01:44 +0000 (GMT) Received: by mail-ua1-f69.google.com with SMTP id a1e0cc1a2514c-97e9e2deaa4so5181830241.1 for ; Thu, 10 Sep 2026 06:01:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045304; x=1789650104; 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=GDqvvL/QEdH2j6dVRoAeWH/JNTn7jK0fTxmvAeyTbL8=; b=klVZa0gTzmlQatxV3ZjOnA2XZboX1cvrNoq050/FGBCs7ly514Pj/ha8dO0gwW1OHH S/dT3/QHrCf4CQ8LSUJ0zdDI0OVPAEWv+Tc0yYO3Zp3u3zMV0Yi7WmBTYL904lneMHUa 9pOIM4ypmlYzfJoT2kzHxlE1RUiXImrI5WajGEceBsbXCb9vwkBJWhLFwZ8HvLkEFmuW x7nLSmTcTm1KSCZ9CJYf1XbUT1N5CxSjhWMKo6NNSMAo+Pv8Usq9uhFVAaP2KhXfrtDl EtuNCvp8By5eoX+MWb5A7MybqL5AovhN8Db8o23K0YSnMcV83/jlC5DPZQYDDHZfIS0i jWhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045304; x=1789650104; 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=GDqvvL/QEdH2j6dVRoAeWH/JNTn7jK0fTxmvAeyTbL8=; b=aFWeeTJa88lyuu8zrgHXtIIAMmcP3ilpRhstpoE1XSBcZzF03qTl9EH9KWBwXIBMJa gVD7ScBvEYVru0Up2MYGAu483Pm9ziZVQ/B8IYaqy4MlT4Y4OnhqBjYBKnlivSiEzlrk m3PErv76CwPrqNPFTo4MDSzz5ndgF5/2B2l0SSCtMpZk2KHufDMlBCcsfhQ4l0z+cOCB 5g9dstNeDgjH54ZHtUMarsIEBerPGoVN32KSZH+JlCEniSh/z2urk3OKedZZzhsw66J3 5OpXwjMhaE9U1y1+sxM1OuXsJhIKtSf4V5kYRazYCG/gSPgR5NDAo8XwJY1s1MkQhp5O xeHA== X-Forwarded-Encrypted: i=1; AKwUvBy1Eo9eQh0pb1ltESfgeUzD9Rqlf6T+ai3CJaP80kV0rT/kY5xNPlhNszGh+QOsa36Q1FAwBOzMc/dfTDU=@vger.kernel.org X-Gm-Message-State: AFuF++kZUp0KQryi0d3VFuwxd1JRxlTWvAUvbI0+0LF7rHflRYUKB6rz RUPzyAppghx0NF0WJfv3kVa//BVpzxx0lAE/yo5KpcJPBDMeTAmkL+FCV9MDsF38uwImwdRgDWF pSWIgBICSO3l9zt9OfHdU0qc8Uu8RQCHdiJ8VtA4a4JgVqcAbqlnr1lmdrl9zG3yh22Q= X-Gm-Gg: AYBFou20deXhUlPk6LEiC6Ko/H8TMGCS6fBWIjKsX9+Nb1avC2w749zclRmT+SEbOcD RuWJ/04m5E7cg7B8vD/+ln9nh/WYlQgJFpi6VR4eWiiQOuCaUNlasB7eu5rxdSZFe62sAmPQ98Z rqcA0xfxNWw9BQEPig3g9GY5bbJRmETEFq/eSqB2NUIojrAbSDHqdIsangYTCw3cHXgIeJrDkvA P6776JIZU0D7WvBQxLgF6puhW/R/sAfLKoQDJSRNFERYbYhFc+TYQOZSq5ftEIZUzxIDacWSBPk S63hkyE7vg1VZ5+fahRxz98yNbt0IpoQltj8adXDaM6r9D3NRFVs+KbxL4r/y2GxkzUVrjgPyqf pzG/40TjDKmh2ISfuon65TvaeATu/ X-Received: by 2002:a05:6102:3749:b0:785:eb33:87aa with SMTP id ada2fe7eead31-78a4a8b86a5mr21080232137.5.1789045303894; Thu, 10 Sep 2026 06:01:43 -0700 (PDT) X-Received: by 2002:a05:6102:3749:b0:785:eb33:87aa with SMTP id ada2fe7eead31-78a4a8b86a5mr21080083137.5.1789045303344; Thu, 10 Sep 2026 06:01:43 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:42 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:52 +0200 Subject: [PATCH v7 11/12] 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: <20260910-qce-fix-self-tests-v7-11-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4666; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=vd5H/xImeYjTu+utvQUws4xVG15wDIeOJYRAn2MwOYc=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqoqoT35CZ4eehx49YjHnh/6a082Rh7gDPBnbUL 1umZuNkNRWJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqEwAKCRAFnS7L/zaE w444EACvnPRKkbmYvqi8DeAM+zuAchJXGVFB521fQLC5pFWwpg7gr4ciV7x3lje/lsUQqtly2vH BPN989WtEVDOeAdd+pKqgV6dE3CYrPqHIyTsQ6P2EPkKt04mQLF/lHPd7HWIrC9aI5sFJhmZaSC J425A0H1U0dSFSP+xbKCueu9+ZMp5+pcArM19D8rDV8MboVYCwxHzY14X+fgVKeFBPwXG5xvCyJ iSzyrQbo9eMZdLi3zKz0GSw40fPRBOrshO+bzBP8Oz2NdRyXLXWmw0hnXjESxCN0xMkXjCYQVk9 5VpzCCpAz5HIx0l3VqToA6J29oMdLPVcbD5HzCiSuXEr+ynfODimjMZOnOzUBNN1HEMYJoB+CrD Nj9HgO8oaOk4fnafcx5CtCKm8sa+FXcPPAyQaFzeyBuVN4amkH6BTrLpSqxHwCiztvOJDBlVoUu P9nrAzOWHPJQT1wUkc7/fqcV0TcTesQDDp6rnTxtLkLyYYsetJ3oil+Kr4Wy/YqbDD4I5TVKG8v k13NhaGBauv7L0N6xRA6z8wRpGRxBZiu1BApo6Z3OEunnGbpfaIUWZ0wKHpI2xChpQDAPKuYk+P dbG0DxluvhpVaDmIZuZeJ31yWXdT/xv0YVTVZNhmOB4nXEKZjfH70cgG3Hj5UO+v7KeFqtx3hAy JlsB4wrGPA6d63A== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=DdOCOftW c=1 sm=1 tr=0 ts=6aa2aa38 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=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=jMd-nSem81Ez8mwE2NwA:9 a=QEXdDO2ut3YA:10 a=TOPH6uDL9cOC6tEoww4z:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX6MrI2o1eTSDQ XpLgbXYjMUiGzdYzXuNAQ3PVVwIKDVYwk33h5Bf+NTd27qRLcdXZAd4gfYUgGYMpDaiXr/7r+oV Ney1JvB0YrruQdu+vJ/32JoAln7M9NygD9X3zgOmltYNAHrYMKg4h5pTKWX0K4aQvjJxrDmvM9z bHEaS7jZZbX0KQg37N+8YVCOXjGo3pyB+6+SBfJXlQx4MKrxwzlBmuycUer6ur6vpL+hdYQVLGA 6YFhSWPn93+djTL+TVfvkW77dck4S0ON4vLuuButJ63BJElPU4V0za+hqll70VSXILieJ/J0bt3 U8xRcgGXWZeVPFnSSioONKCu00dw5gGs3USUgK68JQWyH8LDzmUxWE2h2lYYLRZ4O0OzcFxKLLv xW8pneVDZmMEyV82wY1ETVFJCEYwgjKFzT/5J553M71ktQ9RLtrIrAB7zksmoM0cBldkwBrcmqq CiI860hUhIWtsrq0ffQ== X-Proofpoint-ORIG-GUID: AR5HSoaVwhMshAvDFDluUAJXQ8ukhOS8 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfXxtrsDZXpIntY R9pOfiD4AlZy9NL110jnwhGM/HQsPj0GZpy4Ydv0f26oqOr2bGRNerMa8qsWz8QAMBZkWYh/aqV PdC71+Hm5tGY51iTX45EvhlFmsZXC0E= X-Proofpoint-GUID: AR5HSoaVwhMshAvDFDluUAJXQ8ukhOS8 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 phishscore=0 malwarescore=0 adultscore=0 spamscore=0 bulkscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609100156 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 accelerator driver. Signed-off-by: Bartosz Golaszewski --- drivers/soc/qcom/Kconfig | 11 ++++++ drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/qce-core.c | 87 +++++++++++++++++++++++++++++++++++++++++= ++++ 3 files changed, 99 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..a7f8acb606cdd6645e0bf1b3352= 798e439209d57 --- /dev/null +++ b/drivers/soc/qcom/qce-core.c @@ -0,0 +1,87 @@ +// 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 int qce_core_probe(struct platform_device *pdev) +{ + 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; + + auxdev =3D __devm_auxiliary_device_create(dev, "qce", "crypto", 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 16:51:46 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 1A1D5492E4A for ; Thu, 10 Sep 2026 13:01:49 +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=1789045310; cv=none; b=j8+6jQX/o2vFmBXSqdDSeFPpUJtNB5VjyNr/p7gClwDG/PxvDUMkrekWUoY/Llxficx0tGqZQyB3Kd2NmZTvL40e4Ny4x3Q8c7QZ0iElC/kiSu6mbJtPp5hjIqgfCIUNk6acnN3kleI8pD67xqkHfSDV9/Fn4Y/wY3MGpJfOMr0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789045310; c=relaxed/simple; bh=XytiMa5fLcLcaPGL3M1duTpYUfhHG3JelygOKP6fjNU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=J0JPsnxRYNKikEz7MI2Z+ZN5K8bRMgXSBaRiuAE0M4WGmEvkwsizvcEcE/N1ERyikGzmsO7AyDPyYJai2i5Y19LYhTMLOy89oZ8Xf9t8IsvbpN+u9CmoMtLbc4Mtzp8Eu6gh8PagHsqRVIMeouLgjm2XS0mlbJEx4UXRm5l/tzY= 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=MRR5mWrk; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=GWxfqUnd; 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="MRR5mWrk"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="GWxfqUnd" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68AC7hVm869072 for ; Thu, 10 Sep 2026 13:01:48 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= 9y+j0WrhcaTeosIVoQO4AEPtqrqZ1qq4THTfq6/CiPI=; b=MRR5mWrkw7sp8mrb +st2fTWlOsLe8lbB9suYJkmM+1KixoDyRS9GRUgWRKcFJmLZbi7zIxyxM7/ob7Y7 qzhr/dzvcDBwNWNNusGWVTv5uC/NV29LDNxqDnf0O84tTobDYCFIxFyffL7VM/cJ QvF5t6qtA/BVh5hSQS2tmRhbkUrfgTVyTBknzDS1O6UPggTc0BbBDzHWRJC+87oQ aZTEYOTCRXFRk6cjObUtEFYKQv1D921HO1acxRGOlc/+CZbIda2yMsjqut4sbDmi aqjlj26YIQWnaERXcJ3r54sJGbqiextkb2g1ndRqTvMmAvmWheKhrT3xi9MhkjD4 D41pEA== 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 4gkcyd3vp4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 10 Sep 2026 13:01:47 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-790e3ca4c85so217659137.2 for ; Thu, 10 Sep 2026 06:01:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789045307; x=1789650107; 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=9y+j0WrhcaTeosIVoQO4AEPtqrqZ1qq4THTfq6/CiPI=; b=GWxfqUnds3KR+FqMPD4jH3GDb6FjBlscfr84EiNXphKcaLWjINQSSC6zYzRpp4MOvA aEAZjo+3ubCO1QYOX5ZvEEJTzacFd8jKdiz3AXsDmbuZqQHVxYQhQN+PGKmzDFm9oGl+ KoW0/GWpsQ+dsJo8un31CcI0l3FfVYHhvIKBp2mg/DVaGW/m5LAjMAUy+n0VtQuyfz7p hycWQqMo60vXhvpW7AIh01yOsDVeleGGuOe0U5GSrYrOLPzKlCupbSLwFzeMFLB7aVBI m5DXs5cYKZMmk+GQWbcWwarTFOIynjU3hFC57aeHxTz7LGbRL24Pp+J5ozadscHWvrI7 Rf+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789045307; x=1789650107; 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=9y+j0WrhcaTeosIVoQO4AEPtqrqZ1qq4THTfq6/CiPI=; b=NlpFjY9W3p13g/tqpj122K0XgTQ5yYrOoInAruMfy3SYy5zTq9yQeWOt/ocnchqrsS JkwHbChOb92M58lAM2g/lF02s47X3bhh8QUh+Bc7NvOu+tuLKtqTcZJ3UKxo1XDg9Jj5 ICu0c2jYVFC89j3Acp6GGV5X4UeYyCUdlqva9rE/+4XrTODSy9mGVLE2zyyB0hX+UOn9 Wx3Fx9sbr0JyP1KV2Ni51lEDmtsrHfvx0Qntmx6Pp6E03uCiALjFx8/jyR8FI9OGXcJg XcQTYICOJ48EA+wqqaBE1nTvC0qcd4RVXdH7roOym4CPtmcDDamm0CMuqTBUp1YyxxeH fFPQ== X-Forwarded-Encrypted: i=1; AKwUvBxzEULPE45LYbX1HB7wM4fLvfX9kF5XThZO8vCGm0aDOjUCUTtY2ZXiUKhLgj6+951YqTZKRTG1bmBggOA=@vger.kernel.org X-Gm-Message-State: AFuF++nYAVtJTbkJYnW8yCI+PI8xWeW+fZbaQipa1V1G3ugBp2Hol7Ig 7bstacsgHBRc8JFc1bAPpVxaoMlQ9e4Tfod5pGbA1x8Yj4BzjDsL/vOfE+myWaqu2BvOd9D9dOX PW4KvQQeL0brI6/leaT2l1vwrDIou7ZfJRBRidXo/EyGQ4ZN8pJnhHZXUHpruiyo9iuE= X-Gm-Gg: AYBFou0Urrft8MuNIVWex8gCEVwNikplHB1GuO9K/7Owa4G7D85SJRFDEfcodExXc/H wIy/CnpPTITadGA7ot3fgtS/SYp45g7ut4oFVY+zXOFagT0lOeKmp7YOLDe31N+r+UY+MgGf7yk d8bMyILdOrFCpeIvqZ4t4pLcNvv4mNhPxJ3mejAf/fFrZUHN7Rw0MQ8zWzPleXzCESYeZjdeR0q W2QblcV4rHF1/q6+1sem2voaK6ff8VZpt8xaitc3406dU9mjb4Jr8vtlws6ESCW+rjAufIzQ8+l aQwyJwRnFzEyfJV2pNOqB8p9y+RFxj3yW/Dp7qPpwEy8xoW/OACWfNQ+W5MAPVKGmNuvLieADXL VGLYd/653nJTa0mTYJnXmZSBzU5sa X-Received: by 2002:a05:6102:3f87:b0:780:7e65:f0ab with SMTP id ada2fe7eead31-78f7380daa6mr4474225137.1.1789045307038; Thu, 10 Sep 2026 06:01:47 -0700 (PDT) X-Received: by 2002:a05:6102:3f87:b0:780:7e65:f0ab with SMTP id ada2fe7eead31-78f7380daa6mr4474097137.1.1789045305373; Thu, 10 Sep 2026 06:01:45 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:c9b1:abfb:f300:5e98]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c26204ecdbcsm831849866b.25.2026.09.10.06.01.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Sep 2026 06:01:44 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 10 Sep 2026 15:00:53 +0200 Subject: [PATCH v7 12/12] 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: <20260910-qce-fix-self-tests-v7-12-cdbd2718af14@oss.qualcomm.com> References: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@oss.qualcomm.com> In-Reply-To: <20260910-qce-fix-self-tests-v7-0-cdbd2718af14@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 Cc: linux-crypto@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, brgl@kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=819; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=XytiMa5fLcLcaPGL3M1duTpYUfhHG3JelygOKP6fjNU=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqoqoUrCFfw/iAqEZLzK2v3C4rvF8NfOJ9iaf7c 3KA62RFrlWJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaqKqFAAKCRAFnS7L/zaE wz0nEACPCIp3sLsj4aRZlzCbLYit9IwxonmbBkqcEq760f8h60L9eE9t0yHHjUfOil4qhUE8p15 Bw5i1QId33cfrfJZbIbp9zS3xgC7x6nxUuYyjsFbWeRncWyDLrQZ//NLPYwhi73zfj/RySl1Dlk cLMFeRghi+VmOSQNX/goJ0vuvxK8XXoITqDH0rJ84eiuUT6uBvnBqxd7/3B+Q9+qtX+0lCYaDjA GlkvgwPl3tC7MqM73SPNI2vMgfg1BXRi1WwDQxBdxx8V1MiFTri6SwOXty2dmgqFCeiohT3jAul +bzh1leY9oWFv3zBvW3Q6RJkQY5m+s442XUYWpfI+skPkZA0N/J6d/VdjvBjqSCVAf03XvjnHWo gqQSBPzqUVUfv2r25ZSC/XMjgbkZbUSAqbQj/3tpPZBQPUb7OxLGnwf0qlaOpjNuFxM3L8hhz7A utibAbZQd0vQcrdwlsNAVNO+xGjm/01UJCuEP0Nipk1/VOyQjaBpKvy6eX19lAq14mO6r+Ryona JG1IkXWLcarVeFY5unAZr2YeRU1SZLwXoh1bUiOU8tjWw/+J7UCyr6QH1rs08osvlowFfkb3Ym4 bsAEDli70AhlR4FUw77XGUDrWrRGxJkW9wMabWVOCAPv0DA0s0SFLNoTSiA5nqeaK4ChyBzl12a nd/sknNMqkdANkA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: 6GXx_esfwzT-6RxzDk07YCgITZRSyCYS X-Authority-Analysis: v=2.4 cv=ef+o7LEH c=1 sm=1 tr=0 ts=6aa2aa3b 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=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=talSHFZyAPOHLlyXONgA:9 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-ORIG-GUID: 6GXx_esfwzT-6RxzDk07YCgITZRSyCYS X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX8o2vyB6zxB7N /hSt3xEUP3tvyiGk+MhuN9iY4GDlv+yEPCWXBQd1cXxHLoS8z5DzKR0Dl0misCaFBgMkb93bLAL jRjrKsU0KJ5Cs7U9Zn5lfg9aH0MezIk= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEwMDE1NiBTYWx0ZWRfX3ASgcP8UaKQm pQglYVtwP7mX6SG58EGrRtV+o6LEFS/FOMBGSdwxI68TiicJ6s8YKndOe+gGdRri8h80MgfX4zZ Q5xeXaVkJgUm2sc65fmQf6iZx8wg3godkTxCBGrvT7uHndAnc9ejsfehPRL3ksoeNoy424FUWM+ XcVOD4IOQ3YyTZw2nh/a1uypJCYdkjCx+h9MVhlbMNebhbuYoyuPL5WJwF62yRRXE+h7fPNm+iS c2FtsLjW/E0/L+D1wWI1Fq8C97uW/LsgmX1QGAZzsxFMUOv/FRKAPXPghp0f2uYSkCZX6dvIgMx T4S9YFkTt7PjlA8VeCz8KHFtlgVlnjq+HjF+63OQVNuayc+eBqMZ4Lt8UxRtrOqnHJEwYCxd4WU DBq6wVk6lT2QqcC1JffrCHkTPNSHR7kTyHhhYmi+60XjaH/IJI9S+0ahHoIairM2CPAt656KS/a uPCtLQ4DCxzKEUOj/8g== 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-10_04,2026-09-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 adultscore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1015 phishscore=0 impostorscore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609100156 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. Signed-off-by: Bartosz Golaszewski --- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index f0947c8176a16b2f0c80b17ce8820e4820c77b3b..ba9450d3bf024475a92d13ecb8e= 21d3faf4f63fb 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1666,6 +1666,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 --=20 2.47.3