From patchwork Sun Aug 3 19:10:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ovidiu Panait X-Patchwork-Id: 1283 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE5D11DE896 for ; Sun, 3 Aug 2025 19:11:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248266; cv=none; b=kS15vCcfiSUVC2xDHoZnMt0CtFkNq6JwSlM0VUnNQM1/eWLqUC/Lw0xAElZNze3uGWwSzQ0UIjC3W83z4utVGiMTmMnLCzlSy8TNC/Z7AphD+cCEY7yfZuj6vP/7P78cCTqSxDaPmNVUAuK4AAF0oN+idoO2ykKhkNYGwg0nBJI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248266; c=relaxed/simple; bh=JhryCQPIHZMBHN4Dh3iGOODDbabwR0S+i4gukSM6ud0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iWL0ECy5WUyF7A7Dy0R6R1y4XpSD3HGqehJ6tYCu+H7LXR+icbET2PFpEAS9wGPi0LNSVBw23Dy69Q4TOhCMCchR9O+LmRJXSq7g/a3eDsdehGp6vCJQlSsxzhtovotB3jMVzNSBgGNlxopnGi/YPQeDniB/vXbZVtmvnFbjBpQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=nNLB9oT8; arc=none smtp.client-ip=209.85.221.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nNLB9oT8" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-3b7848df30cso2916627f8f.0 for ; Sun, 03 Aug 2025 12:11:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754248263; x=1754853063; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yzXOYoDcw0s4gQ4w74V4qvU2nwkX5U7En2+CKV1FmvU=; b=nNLB9oT8dDcCEir7KjOzYmuugqWDM1ipxshnGk1UWqwdwyJARzfKkfjbrVwF+OEPMm mtJX8ro33Rnn7RD9Vh/s/L/oOGnGEUhsW+IpGNFLZSje6/z6M3xqzB8HlevDTTVN3FrU VFIkH6VgZOB+nV+7bKJVgw1grlanwM8NnWdaFzrfGP2ncsBP+OkGvob3aaBIGVA1bmx5 1/f5RlJ4sml/qJBuLhFk3tjArsoEGfn7uowzm6tequEIj8bBiNIFRKphT7XWobf+/r5m u0y2vjO/koJvD8T9JTfhoj7TKp/WpoQT3dvbNDcw1CYl1/n0xzx78h4gbBIzmbqKYnnm evYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754248263; x=1754853063; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yzXOYoDcw0s4gQ4w74V4qvU2nwkX5U7En2+CKV1FmvU=; b=SGi8WAXFLnwTeg6lSW6hq71QVfUBMu93FN4XXTtCPtWcpjNmFYTBYvTe/QcRNi4Spz P/LhGchYnbTE9KxeyrInXiLB7nw7uzewH9DyGeg4X1g/NLL86Y5yDX4kQbxG8P3qN5Y9 wZPq3fwnNLhmo5MTXVsaI/cOGFqqBBcmTLTEs6UlcQ1jurFVFxCAqb0/wLvYlcel08YS UesgDQ9vnOT5sny7iID/W2G33jZYNDESn0fgZYa5wJY7qmWkyu2VT6Fp6iZPKpdon9qu 39/rFUPD51ONeUHUnWO4bGnWIhTydxlDLKqW9OXOrypaYWNhmYGRsVtZ9OHL76yhAIcP IewA== X-Forwarded-Encrypted: i=1; AJvYcCVU+QxOuxBpk+S5JNKOZG5q/5YHru746aaAolfCNzLBPkOeby+XZ8F9QMG8IMGbaZR/Y03Dyd58JiLtvQ==@lists.linux.dev X-Gm-Message-State: AOJu0YyZ1oJAwCw7FyNu2DhSeGi5agRdmHe3zRM/bODflEu6Cvbqa8BU PIjr+T0iTsJFu1yi1DMPL4nsg//IkW/W5U8xJKUBCBu+2PcoieC7M+jS X-Gm-Gg: ASbGnctYaEdIoW+rqQa1LFmLUfzVPamv3ufz1bw+Qd1smCpb5/3SBGjgSJDEf8FUVUB WFKOQ2tnipW44j5rDkX/Nv9BmtUfIcDFvQgnHma56dbh2P63OmkIfFd67v+fuEo0Qvel4ht9pOb jhZbUser8t2mFexDMlyutqDNB9SU+RODPaOQRHjBRgLXMA7MbDqUyt8YjGX3Pyz7JsD9F5n/8hY HExDqvl/ypsL4kN7QnTYTxn3GCLkzCEgQo0SouRhVShCYUGhX1fBLEZuABUaYiZSfo6qYa9tkIF BGzB+F5SSzCW8l3nb8GaWdDm0e+teuaz7zioaEAUtgLc2Faj0U5c76eqMEC+yfW4BFSdEJQM+iC ogiHP1v4edb6sEPl+21xN7YshOyaKwUDMNCYlwqdA4VgG X-Google-Smtp-Source: AGHT+IG9wEYs4+lgjHCzhOPCxH3cmlxe163baafRUi6P07GZhQb6rgYttNhQt1qtCDkr7AuXCuEO3g== X-Received: by 2002:a05:6000:420d:b0:3a4:f7dd:6fad with SMTP id ffacd0b85a97d-3b8d959d43cmr5579015f8f.14.1754248262831; Sun, 03 Aug 2025 12:11:02 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:ca0d:f700:1210:b727:adc8:716]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b79c45346asm13099210f8f.39.2025.08.03.12.11.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 12:11:02 -0700 (PDT) From: Ovidiu Panait To: clabbe.montjoie@gmail.com, herbert@gondor.apana.org.au, davem@davemloft.net, linux-crypto@vger.kernel.org Cc: wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Ovidiu Panait Subject: [PATCH v2 1/9] crypto: sun8i-ce - remove channel timeout field Date: Sun, 3 Aug 2025 22:10:21 +0300 Message-ID: <20250803191029.3592987-2-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> References: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Status: O Using the number of bytes in the request as DMA timeout is really inconsistent, as large requests could possibly set a timeout of hundreds of seconds. Remove the per-channel timeout field and use a single, static DMA timeout of 3 seconds for all requests. Signed-off-by: Ovidiu Panait Tested-by: Corentin LABBE Reviewed-by: Corentin LABBE --- drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c | 1 - drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c | 5 ++--- drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 2 -- drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c | 1 - drivers/crypto/allwinner/sun8i-ce/sun8i-ce-trng.c | 1 - drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h | 2 +- 6 files changed, 3 insertions(+), 9 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c index 5663df49dd81..113a1100f2ae 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c @@ -276,7 +276,6 @@ static int sun8i_ce_cipher_prepare(struct crypto_engine *engine, void *async_req goto theend_sgs; } - chan->timeout = areq->cryptlen; rctx->nr_sgs = ns; rctx->nr_sgd = nd; return 0; diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c index 658f520cee0c..79ec172e5c99 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c @@ -210,11 +210,10 @@ int sun8i_ce_run_task(struct sun8i_ce_dev *ce, int flow, const char *name) mutex_unlock(&ce->mlock); wait_for_completion_interruptible_timeout(&ce->chanlist[flow].complete, - msecs_to_jiffies(ce->chanlist[flow].timeout)); + msecs_to_jiffies(CE_DMA_TIMEOUT_MS)); if (ce->chanlist[flow].status == 0) { - dev_err(ce->dev, "DMA timeout for %s (tm=%d) on flow %d\n", name, - ce->chanlist[flow].timeout, flow); + dev_err(ce->dev, "DMA timeout for %s on flow %d\n", name, flow); err = -EFAULT; } /* No need to lock for this read, the channel is locked so diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c index 13bdfb8a2c62..b26f5427c1e0 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c @@ -446,8 +446,6 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) else cet->t_dlen = cpu_to_le32(areq->nbytes / 4 + j); - chan->timeout = areq->nbytes; - err = sun8i_ce_run_task(ce, flow, crypto_ahash_alg_name(tfm)); dma_unmap_single(ce->dev, addr_pad, j * 4, DMA_TO_DEVICE); diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c index 762459867b6c..d0a1ac66738b 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c @@ -137,7 +137,6 @@ int sun8i_ce_prng_generate(struct crypto_rng *tfm, const u8 *src, cet->t_dst[0].addr = desc_addr_val_le32(ce, dma_dst); cet->t_dst[0].len = cpu_to_le32(todo / 4); - ce->chanlist[flow].timeout = 2000; err = sun8i_ce_run_task(ce, 3, "PRNG"); mutex_unlock(&ce->rnglock); diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-trng.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-trng.c index e1e8bc15202e..244529bf0616 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-trng.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-trng.c @@ -79,7 +79,6 @@ static int sun8i_ce_trng_read(struct hwrng *rng, void *data, size_t max, bool wa cet->t_dst[0].addr = desc_addr_val_le32(ce, dma_dst); cet->t_dst[0].len = cpu_to_le32(todo / 4); - ce->chanlist[flow].timeout = todo; err = sun8i_ce_run_task(ce, 3, "TRNG"); mutex_unlock(&ce->rnglock); diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h index 0f9a89067016..f12c32d1843f 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h @@ -106,6 +106,7 @@ #define MAX_SG 8 #define CE_MAX_CLOCKS 4 +#define CE_DMA_TIMEOUT_MS 3000 #define MAXFLOW 4 @@ -196,7 +197,6 @@ struct sun8i_ce_flow { struct completion complete; int status; dma_addr_t t_phy; - int timeout; struct ce_task *tl; void *backup_iv; void *bounce_iv; From patchwork Sun Aug 3 19:10:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ovidiu Panait X-Patchwork-Id: 1282 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DDEBF1EB19B for ; Sun, 3 Aug 2025 19:11:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248267; cv=none; b=YBEPpZRACYY35ovtj34lYslDnzHkFJyogTuKPvknxSUCHdL+Syb0WeJeqflWcgjJxaWfxlogy1V2UcJPMw2zjRMJfnOrcS/uEjTq6VLhmJ54+MSaGbXneA9k1VgA7luq4txXq6BRaNJbTG5yUG/+NMkv8x4aChBpOVs9KGlY7Lc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248267; c=relaxed/simple; bh=kyASvvV0C6502P156s4uvhgiJ2anCkqmkQU+DPnmJLM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PaKQeJNrOytBPll3HuiUDqXAY1HjZZhKIjUUX+uVSQGaXCUAJ2Ggcelcb/K62IugB9rrx1TK4CCu7OamAjlBTT01bQ++bj+i2nXO7MwhtAjJxIOnQVRt70qHn5wEy+DJdPSitE6ZzHnwnFkZHfS43QjzqSakLEekOrMYMjssT9s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MbgY9oPz; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MbgY9oPz" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4563cfac19cso39126625e9.2 for ; Sun, 03 Aug 2025 12:11:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754248264; x=1754853064; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6ElWdGUyg9Q9uvasE/0knQrvGqeT+AHFO5zlC/AHADc=; b=MbgY9oPzTN0EWLbfbxpATIXCAcTn/KKr8IJ5G9MvaaZl/DkHhnfbgcFubZDP94mSXO QP+SytEmIk0Zk4xLdZ3oK45iHcuSsPKHA/9IkFeZO2o7FoseT/zulRDT+D59tGeKR085 45vdNyWIDC0tnOuVEwZWr9DSJa+/jD9RERM6aW1+nAIYyXGRXRezsg3EnCBM6GZzBwNM z4kXdRna3Jo1DCKPVbE+9XBnICDGRppZxZP0br1giROAgwoPpun8aP0iAOGonMd16Mox 1VE588uMsDa79t+1M5gNOMi9jd5VuRtoPzbfEeK+ZraTHYmSdnRK2oPzzTwpfzeK57ud L+Aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754248264; x=1754853064; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6ElWdGUyg9Q9uvasE/0knQrvGqeT+AHFO5zlC/AHADc=; b=d4zmegnavUHg0uWrIm8RH4ryQPAC8li6pkDXGSPjNxu4CTtZMHLl1F45+hFk4PGp/2 yW053usoXiFrhZPmAVIOXYBGlXNBOLYfjOQj0L4r3ieX54n2SZNLAzNrZtN1Tay+8NlN 0fgbQzorbYSYrG0iggwi512U9aEAejTOwviOWkNg/OQNlPN4ws0Sv5PMRX108rgBJQT5 jaYpcuJeGZ8TZSoA70aqrTt7SGfkrEey+JpsHiF7Z7pyvFRkp4ORe2uUPpx9OUO1hi8g JvPT6WruVsIQgqEt6cYCHl/Kat5ojro4/3ceZ7rJt/H2Mahjyr/bGrqPlgx+FlSY8gZP udYQ== X-Forwarded-Encrypted: i=1; AJvYcCUvtLliQC6H0E8wXYa43xFI9FNTq4Vb7540tRSputd7mCYfB54PvKvR5yMW86P8nl4QpP7KCx3wcHx9Kg==@lists.linux.dev X-Gm-Message-State: AOJu0Yzp1Xnayx0tyb0tr74xP97escqVlUGtlBh7eSbVlzMwIhxThvhT 0gpCnQEYTHqwOBaOwBHNx3w/X2+nHAiBgYUt3pH4W2I5Cb9Sjr4XvQQ4mlOgIw== X-Gm-Gg: ASbGnctAmpIZbifX44B6K6es8tpZ/TuLBpBpBagdKp9qt3UHrayZSgJx6yTRlD9ZwCw zhuIVk6YMU5/zv4S4H8ApYcWvfUxMQGdfLDnUfCS1/xnl7s4H9D3S7uZj7n1Xmo6Q/SwKq7fqTQ yRgDDR+ofRPPvb64Lu/gLNbcXFz4z6299eVq0q+cs9etbx/It80JQbYkKMszApqgq5tNdA6IA/Z Ok7rDHzF8Exli5GmNZL/Did3MIFkf0aPyTgeq/Q9jeER5UZ0JEPOQG9vWraH286l7Tv0ixnPMHV oHGLJkGX9+fOf+SzjWgbicn7d0aT4uZHfqKuLzYpWzBTUQsCj3peITaHJxBRlyhl3HkmKpZSx4i maCt5Rj7vNilgX4tFWJ/xK2JGZMQLKgx97w== X-Google-Smtp-Source: AGHT+IEuwtHoQB0DUIyO/0Z1tXMmBf/alEdLn9qmJWqD0USge+nGe1p/Rv0Bwaf6WNGkHFKl9ruVMA== X-Received: by 2002:a05:6000:310c:b0:3b7:93d3:f478 with SMTP id ffacd0b85a97d-3b8d94ce4a7mr4645712f8f.51.1754248264043; Sun, 03 Aug 2025 12:11:04 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:ca0d:f700:1210:b727:adc8:716]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b79c45346asm13099210f8f.39.2025.08.03.12.11.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 12:11:03 -0700 (PDT) From: Ovidiu Panait To: clabbe.montjoie@gmail.com, herbert@gondor.apana.org.au, davem@davemloft.net, linux-crypto@vger.kernel.org Cc: wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Ovidiu Panait Subject: [PATCH v2 2/9] crypto: sun8i-ce - remove boilerplate in sun8i_ce_hash_digest() Date: Sun, 3 Aug 2025 22:10:22 +0300 Message-ID: <20250803191029.3592987-3-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> References: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Status: O Retrieve the dev pointer from tfm context to eliminate some boilerplate code in sun8i_ce_hash_digest(). Signed-off-by: Ovidiu Panait Tested-by: Corentin LABBE Reviewed-by: Corentin LABBE --- drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c index b26f5427c1e0..61e8d968fdcc 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c @@ -238,19 +238,15 @@ static bool sun8i_ce_hash_need_fallback(struct ahash_request *areq) int sun8i_ce_hash_digest(struct ahash_request *areq) { struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); - struct ahash_alg *alg = __crypto_ahash_alg(tfm->base.__crt_alg); + struct sun8i_ce_hash_tfm_ctx *ctx = crypto_ahash_ctx(tfm); struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); - struct sun8i_ce_alg_template *algt; - struct sun8i_ce_dev *ce; + struct sun8i_ce_dev *ce = ctx->ce; struct crypto_engine *engine; int e; if (sun8i_ce_hash_need_fallback(areq)) return sun8i_ce_hash_digest_fb(areq); - algt = container_of(alg, struct sun8i_ce_alg_template, alg.hash.base); - ce = algt->ce; - e = sun8i_ce_get_engine_number(ce); rctx->flow = e; engine = ce->chanlist[e].engine; From patchwork Sun Aug 3 19:10:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ovidiu Panait X-Patchwork-Id: 1281 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 586241F4CB3 for ; Sun, 3 Aug 2025 19:11:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248269; cv=none; b=S4RVWaLItF8bBUoQq7+tM9xZlt7czt92h/3WmNF2t/KyxEOoMAJ7YodArZdndqabWigJQpseXrmegCGFoA8Nzi1FIsa9dWwCgTIcM/6bYNThFdLSu529pVERtONfLRp5J1XOWxq7mrTjokbcBMasDLU12WY0pUO0O1BrQO1nkWE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248269; c=relaxed/simple; bh=bsrtN/UNG9iIkOTFtbf/aBs98lsRgQ3mXT6PfL4G5aE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CaBim0j7o133uLqt96uE0fuP5XAnp3crq3Eef0fDU7J2kWsOpNg9onTrkVsMXa5GxXp6udRnkz570uu8ITDbCVPcGLpPYINwqfVO3WDMdHoBir5F7Fmj50JB6nJph3SJq582VVVKQ/eQsI+LyFiD2tLjn5PYcWgbPTvCWxy8zis= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NR9YJYJY; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NR9YJYJY" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-455b00339c8so23407615e9.3 for ; Sun, 03 Aug 2025 12:11:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754248266; x=1754853066; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9SQo1VWDa8L0gOXuwTFV8cUa7G4/T2C+1QUOVeEgYOo=; b=NR9YJYJY5uysQXNEQMyuRYj2gnZH0pw5TgCH+pqKI8fOAee3/uQgbebg16+RSLd3Ib mgmpfzPQX3kqJawYpXtpWW7TEeYAYWuWtNLwXryD6/Fr1U5+td3fjZ6jQsZ8EXhPs0A7 aTABfxUYXxeoUDhvOVRDIDcBQzvqOrDlMUspLP0c1qtoSPyaYwbt1qvrDmV8VPGcXfUY zyPelEal34PJF19etcnWDHldeWO3UFnPatRtzTMEZSN1+FF7JMniRpQFrFd2fShSCd0E H1cYf64EiAw6FoHHdOSyCKYOQIi0o8AGd/GoFfRS3wHfccdhgmqLGkQh8UIEIV0fM/F2 Uh1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754248266; x=1754853066; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9SQo1VWDa8L0gOXuwTFV8cUa7G4/T2C+1QUOVeEgYOo=; b=FKWsNETQ9GvS+AJQrgoib8fIdzZpe2kAa6SaOSYAqG9xbT04hzl4jAZh7dMIGjWIdt /lBjwLW8LJEh4iIqFwFjaYhiY1v2xVpav65qnUszctTqKObnwUBV2luF8X95W/8hiE9X wx+VpgwsaAr+QdjfJR7UTd8DydLTdUq7ZMsxtNqBqCUGPTqWpG7pJpZr3vmpA0e5DZuo EEGaUy/blvNZirVlkoGMlZ5MiQb+Wm0Jw4OBYGkERMn90gks4S4ImmMrX022EIRSoMyT TCjEP6TdBlN/rLICBphQ7ajdGbdYqXOgneWWHdtHssa00b2K+DV63TaFYxjWKJFBrA79 O+zw== X-Forwarded-Encrypted: i=1; AJvYcCWCFljh2LdfsU8gqwi5QbAQIfelOpWEXzro7557zMlJ6x0ken3wwMjZHXE8HValFCP+iIBTrNjqCPnV3w==@lists.linux.dev X-Gm-Message-State: AOJu0Yzhtn/zAx5fBCA/g3u0sNEF6VEIxR8QLAQDxLJXiyuKqtfqNUbR BcIyCpxQvpf5eURZ70Aocvop9ECetqkK6BTDM/0s+MaPs0aKekOTp07s X-Gm-Gg: ASbGnctnEWl00Vb9z7yVbWuSSzwnKZnySj36JD/lnvdE/qhhJbLBLx/xZkXONb+XULD +JUPKaiOoYqMIcJDfHWBGxJGgDJT6KQXtORFHiMLJVr0Z++qWMBuv/vP/Iw4AXBlr3DIj2E3oh4 LOLSbhfymWsTjhzx2+muRbEjiy5r/NGoMbYUSh9Lqw5tMTM70AsbLzscfmwn4SlcUtv7QLIZ2f2 PG/SNqyU6eo5X3hRzVssxVMg2AYmWXQfF6BEw2Lji6RZv2cEHomEje9LbpJNLcrhMMYisKoPXEF um0McAFePNhJuQItrM62egpG41uVV76bd4JLP7wIvyM3GaUXs0mKm+y/UG64NGu7pHLK5uO92SQ HWMfklKHBaNyQ5Kn6iYJBu0uNVfcMvLjvPw== X-Google-Smtp-Source: AGHT+IGAkLXj89d8+BSh3EqnA4GVIsKBPznnVnW8s4SI6ImldpUHqZ4tb20/Ec2WyIE1Q5fljBDFvA== X-Received: by 2002:a5d:584e:0:b0:3a4:dfc2:bb60 with SMTP id ffacd0b85a97d-3b8d9481972mr4970990f8f.26.1754248265452; Sun, 03 Aug 2025 12:11:05 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:ca0d:f700:1210:b727:adc8:716]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b79c45346asm13099210f8f.39.2025.08.03.12.11.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 12:11:05 -0700 (PDT) From: Ovidiu Panait To: clabbe.montjoie@gmail.com, herbert@gondor.apana.org.au, davem@davemloft.net, linux-crypto@vger.kernel.org Cc: wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Ovidiu Panait Subject: [PATCH v2 3/9] crypto: sun8i-ce - remove unnecessary __maybe_unused annotations Date: Sun, 3 Aug 2025 22:10:23 +0300 Message-ID: <20250803191029.3592987-4-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> References: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Status: O There are 3 instances of '__maybe_unused' annotations that are not needed, as the variables are always used, so remove them. Signed-off-by: Ovidiu Panait --- drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c | 2 +- drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c | 2 +- drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c index 113a1100f2ae..c57c64a1a388 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c @@ -111,7 +111,7 @@ static int sun8i_ce_cipher_fallback(struct skcipher_request *areq) if (IS_ENABLED(CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG)) { struct skcipher_alg *alg = crypto_skcipher_alg(tfm); - struct sun8i_ce_alg_template *algt __maybe_unused; + struct sun8i_ce_alg_template *algt; algt = container_of(alg, struct sun8i_ce_alg_template, alg.skcipher.base); diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c index 79ec172e5c99..ba30859e749c 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c @@ -1062,7 +1062,7 @@ static int sun8i_ce_probe(struct platform_device *pdev) pm_runtime_put_sync(ce->dev); if (IS_ENABLED(CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG)) { - struct dentry *dbgfs_dir __maybe_unused; + struct dentry *dbgfs_dir; struct dentry *dbgfs_stats __maybe_unused; /* Ignore error of debugfs */ diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c index 61e8d968fdcc..df2acef9c679 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c @@ -26,7 +26,7 @@ static void sun8i_ce_hash_stat_fb_inc(struct crypto_ahash *tfm) { if (IS_ENABLED(CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG)) { - struct sun8i_ce_alg_template *algt __maybe_unused; + struct sun8i_ce_alg_template *algt; struct ahash_alg *alg = crypto_ahash_alg(tfm); algt = container_of(alg, struct sun8i_ce_alg_template, From patchwork Sun Aug 3 19:10:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ovidiu Panait X-Patchwork-Id: 1280 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9BA261F8BD6 for ; Sun, 3 Aug 2025 19:11:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248270; cv=none; b=bhP2MIuSE/T5zL57hbXhSfz0rtDuk2aw2ZRBSAfbghHwyJLlY/7KTR1vvZcnPToFw828+myxErIwyVNeE2xvBBKxdirkm7WoLCOl3pjqk9n71UWcMY2wbayb2BYHDrtEV1prCle3AP7qsfYJv9PSpVvimQgm0Fn6wIGloVNeAJU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248270; c=relaxed/simple; bh=NuYFEKMaNu1hQjN2Md5xNm1r7h0CNUWlhKkPh3zc5MU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZG3k9PCxwy+AzPXqipsP8plMlvDUEmCTvaZZeG3IO8edgfbE7fhdL34olymH2zc7VdekULKS8dIwfu3VK2azG0doY7tO3vOvuOf3TDC9ystB8cPVBqHIHXwOrZwXSKd68gidUt0nv3dBifjcoiRyiR0wGN6V6Tw5ryBQ+wlxFu0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Kku4zEaK; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Kku4zEaK" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-4561607166aso26378945e9.2 for ; Sun, 03 Aug 2025 12:11:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754248267; x=1754853067; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Qolo47kLruRZDje5v7puvJiYv8DgcRb8St2Hs5XCLlg=; b=Kku4zEaKlYiOVenVuF+X6O1g1dLibpboV1Jb6qQOjKP9r/f8L3wTPn2Nos/lOu8TCu jmzULcTdJ+jN5BknQmVStx+aX/zCh+tv4ztdmRD2hmRQyFhuZ5SiOfteKHuL+UiFGOlN n3opDK6TLxsigTNXdhKkNt5RXOljKoGI783WI5xIY7Rr2K4jhha+SqAy68sqP6IhCBxu 3jsNuWb/bNjwIqSnQae5uL/bs8Tez0vEaqDIIZTwRjzKjpfVf3qataQy7nVjdvJCLIS2 jPJEzxqGGO/KU0p//0/IXsSd8FUGXMRICW0aEcaIzRcAxAMdaAbwS31nbGSKzQrxBLq3 ifJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754248267; x=1754853067; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Qolo47kLruRZDje5v7puvJiYv8DgcRb8St2Hs5XCLlg=; b=wQDIEB24/vlMl08kUmhJvfqkLxxouoaWntu/LquKp9oCbZv4sJbrwnh6O8G5Pakq3g dgoDe4P1prA/gkCxHtCuP49mzu4tJr6XVG04Vkb6mEw9O8JZYipWa8vm01DLY6ZOO7XT O5qT6xY2sJyzGlJ+GTWuTzlDVaKKI32OPv2uHwY0oRjK8GPRs90RZU27RIfuh6/03QPp qN4Jn0xo31KTONfueF3MSso/O7OawDdAVP6ibQSuknSC+H/FqNlnHaEa10v7PSLU8/Cq 3lUp1wvpNqU3dgqPYxaBZsRKzOAi9ljACAoIGRFuIsbHD12URpC+sEkM+Sso7PGxWWrc Hbdw== X-Forwarded-Encrypted: i=1; AJvYcCWFst3VHq8jBqaHGMBWfubb3CHpuTfIHK84vnTmtPJ3p/e3j8ueilkES6rzSLjRJuC3pDJDw0VPYsea2w==@lists.linux.dev X-Gm-Message-State: AOJu0YxZ8U2ZP3ZBpMaeDJ/Cg/e1xDrAUI9JBGj2VM37B4MIRrDk8O5X 7CF2heeU+e3vUL1Ald8qEVTCsDiwuu5kEO4uEK3YkUnMEvzuBCWPe5JD X-Gm-Gg: ASbGncvQLiJwQgfD/Z3eR3hL4m8caWXT01DKR17Qkw1DBFRPNYW65cUGgaZz8V7hVuF PmSePEBK2nDflyOgz1RDoZWCedO5kvERJHKaiXsV8BuEe5zf01qbMpkJM+bg8c+7+WfShCXrYm4 7izP9muk/ZuwScJM6K/9Y3DxSuR3ac1iPEuFvg/R18gyTJx80tjvAX0GmIbv5stZRpIcRpZmWYV 6gVH3PmD914YSBtxEUkMvNzQOZbc4DOKYmgCex1vMgJvvPc5HzBk0lAkW+CtSdDiZCKNFUbT26D QoZzVzErAmiEeNIaVZX3JQzycC98IjLhlv2i4NOoDg//8UR2Oi17pLZL/CVUYyKhdXpqe9kde5D 9/605gU+FS/CbHBFfMK22wlsXbBPNZgTwLQ== X-Google-Smtp-Source: AGHT+IHJPGckbzUmSSL2cgE0cCZx9wW/o8POt8Pcz8H/fgdDIEL5DMDINIkmWcO6ymEP+suWYNdLTw== X-Received: by 2002:a05:600c:4692:b0:456:1a69:94fa with SMTP id 5b1f17b1804b1-458b69dd831mr46823935e9.13.1754248266873; Sun, 03 Aug 2025 12:11:06 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:ca0d:f700:1210:b727:adc8:716]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b79c45346asm13099210f8f.39.2025.08.03.12.11.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 12:11:06 -0700 (PDT) From: Ovidiu Panait To: clabbe.montjoie@gmail.com, herbert@gondor.apana.org.au, davem@davemloft.net, linux-crypto@vger.kernel.org Cc: wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Ovidiu Panait Subject: [PATCH v2 4/9] crypto: sun8i-ce - add a new function for dumping task descriptors Date: Sun, 3 Aug 2025 22:10:24 +0300 Message-ID: <20250803191029.3592987-5-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> References: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Status: O In order to remove code duplication, factor out task descriptor dumping to a new function sun8i_ce_dump_task_descriptors(). Signed-off-by: Ovidiu Panait --- .../crypto/allwinner/sun8i-ce/sun8i-ce-core.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c index ba30859e749c..b7093fbb8e9d 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c @@ -169,6 +169,12 @@ static const struct ce_variant ce_r40_variant = { .trng = CE_ID_NOTSUPP, }; +static void sun8i_ce_dump_task_descriptors(struct sun8i_ce_flow *chan) +{ + print_hex_dump(KERN_INFO, "TASK: ", DUMP_PREFIX_NONE, 16, 4, + chan->tl, sizeof(struct ce_task), false); +} + /* * sun8i_ce_get_engine_number() get the next channel slot * This is a simple round-robin way of getting the next channel @@ -183,7 +189,6 @@ int sun8i_ce_run_task(struct sun8i_ce_dev *ce, int flow, const char *name) { u32 v; int err = 0; - struct ce_task *cet = ce->chanlist[flow].tl; #ifdef CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG ce->chanlist[flow].stat_req++; @@ -225,9 +230,8 @@ int sun8i_ce_run_task(struct sun8i_ce_dev *ce, int flow, const char *name) /* Sadly, the error bit is not per flow */ if (v) { dev_err(ce->dev, "CE ERROR: %x for flow %x\n", v, flow); + sun8i_ce_dump_task_descriptors(&ce->chanlist[flow]); err = -EFAULT; - print_hex_dump(KERN_INFO, "TASK: ", DUMP_PREFIX_NONE, 16, 4, - cet, sizeof(struct ce_task), false); } if (v & CE_ERR_ALGO_NOTSUP) dev_err(ce->dev, "CE ERROR: algorithm not supported\n"); @@ -244,9 +248,8 @@ int sun8i_ce_run_task(struct sun8i_ce_dev *ce, int flow, const char *name) v &= 0xF; if (v) { dev_err(ce->dev, "CE ERROR: %x for flow %x\n", v, flow); + sun8i_ce_dump_task_descriptors(&ce->chanlist[flow]); err = -EFAULT; - print_hex_dump(KERN_INFO, "TASK: ", DUMP_PREFIX_NONE, 16, 4, - cet, sizeof(struct ce_task), false); } if (v & CE_ERR_ALGO_NOTSUP) dev_err(ce->dev, "CE ERROR: algorithm not supported\n"); @@ -260,9 +263,8 @@ int sun8i_ce_run_task(struct sun8i_ce_dev *ce, int flow, const char *name) v &= 0xFF; if (v) { dev_err(ce->dev, "CE ERROR: %x for flow %x\n", v, flow); + sun8i_ce_dump_task_descriptors(&ce->chanlist[flow]); err = -EFAULT; - print_hex_dump(KERN_INFO, "TASK: ", DUMP_PREFIX_NONE, 16, 4, - cet, sizeof(struct ce_task), false); } if (v & CE_ERR_ALGO_NOTSUP) dev_err(ce->dev, "CE ERROR: algorithm not supported\n"); From patchwork Sun Aug 3 19:10:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ovidiu Panait X-Patchwork-Id: 1279 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11CF6204090 for ; Sun, 3 Aug 2025 19:11:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248271; cv=none; b=ZNilkP/6zixrMT4dA3/V/sK0H13XXeAFwAZp34Rtwtlcjt/KUURU0P5uBlDj0meUtFGrs2xq8lVkdPUR56nBhowIMp65PbozYZe8kKCH6+DdlEFEAow3KKySpfylYmr7F7v0GIocwGswYpBtW6XrGlfhZ4RhL9P7OYACyP2cEa8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248271; c=relaxed/simple; bh=4gturWBm9llQ03CvUeU357O9qcWzGD7EQUK/d5jFGRE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oOF2kVYi+JPfyCjF4CoYClG/H4w4dBa2nze33VUkuaDhan27qpjfO0edl2Tekk+aXEJzQisMQ13EK/T0BYJOjysXGOG5pyBtYBz8T1I0zAEEkZJANAGJw3TBR6AoILCAGhO6flu1zemL6mSUXvW7AMLomtv0600amQMCaKISq8g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NEs0SuA9; arc=none smtp.client-ip=209.85.221.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NEs0SuA9" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-3b785a69454so1475993f8f.2 for ; Sun, 03 Aug 2025 12:11:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754248268; x=1754853068; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+X8fG0ywPfrmQVR6r26O20nKFt/URQggWx0ndoBVaZQ=; b=NEs0SuA9MiIhsMm0AuRWOaqAkfzIUbfsV4I+JemhAxAWOM3RfhjgibUeCicAjhZ/l5 OmO4B8brjv4w0KpVNvuUapOwFKEu3RQgDChGpFc/qprFgKTif9MVDs2gnUFV60CAT52P INrIDUPsN2UzWw0V9HlAwXIrzf9kMxW9jxvxpHPrIEuevJx6Rvw3Qsu84IxG8mRMrTo5 83OWsWe8DLkkZOxPXwXw9OXD3Hl1znRAHtRMOezxLBu9p9aikLgpvsxEomSso7mDwrvG 5vmHlZhg9UyJZ0ilh1Zd61oiSIahuOZVY9gGXPFAcT1ZW+ww3Eq8OT//o8UiWaNGIwtI +/ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754248268; x=1754853068; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+X8fG0ywPfrmQVR6r26O20nKFt/URQggWx0ndoBVaZQ=; b=o3eIaJ7iO1dwBbgbp3/z+Y3R3QmHFkTxSTyBlBy3FQntApJm14TJkic27MqrxnprJQ aTCYaupLeGchs9HxXVOC3d1LZG6RnxFsOHWwTSp/r5lJ8eMqPSPVO36t88WxRHsV+6jZ mQGkj0Zcl24T5OdtttEn369/Tlk/5yPxPSkNZDlHXMGJnCv2x5j5gl4S56F8UPwh1Na+ n014Idd9BrdjiJCBkiTQU2n9jTQTNChdM2RjPkSprzenU/bd1oKmrrF6SuydXuK27B1V 1paAN2k+9+ZF8keQ1vyoI+0BqS+h9Dozko/O/A8teP3gW8cVOKfQ4s8pxy5KbHLkKtX4 EZQw== X-Forwarded-Encrypted: i=1; AJvYcCUpZ1bRe1PrBUK/oDhe9K6/881S44PAo7k87r5mZr2LApWLpV503yZv78I+f86mFM1bslY3OQ2IPohhkw==@lists.linux.dev X-Gm-Message-State: AOJu0YyuCj4Z0e4bBwGdOFkFCvDMleiE1bwbBVRLCepUDu+cp48VSiYh 9X4vjHgL3+Cf3DNLxgxpYzTG7GW2cPFhzxC481atXSl2N7sywUe3AG4J X-Gm-Gg: ASbGncs+GTnpyFy/60BDkjNuNKRFXNc5YJJlThJ3tePQMMSZZQS6j5tZwSM5m6IQM2G koqwrdnKR4tmIDNXVz8IdqVeQxm19UVv0xs+W6PXkJUELE9+Gt9xHM992TRYZtWbJPi3139s65E ZALlt9IDBfOLY4uP7OLEA1yw+H0lYzH/xDoeE8OpUypdZTfjvUquXmNbSLFvrQwtPyBGeyAVhRe WTQIGL3gEayAJFVZJVJkXyHBJNcUmpev3c68YpoaRAoWvi81H1XUTDyyai5BShhNYbcQD5pRoek 3MUcN3AAMN5XajnOg7MlJ9TQPMP6DiqLT46nZ6LT3cBcEDVFG1FIKR/pO1uAvSOOFtrWwSHCBzH YWRfIjxaP2yFeHWcxfyn6usXGB9xlAHgSnw== X-Google-Smtp-Source: AGHT+IHmU63nL7KhrYVgzX7obJHqRHaKsmdzwuH3zpDNrqoBJQ2FLJGMFWpvAfGKl736d20CpxhjUQ== X-Received: by 2002:a05:6000:290c:b0:3b7:97c8:da97 with SMTP id ffacd0b85a97d-3b8d94baa99mr5568207f8f.43.1754248268189; Sun, 03 Aug 2025 12:11:08 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:ca0d:f700:1210:b727:adc8:716]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b79c45346asm13099210f8f.39.2025.08.03.12.11.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 12:11:07 -0700 (PDT) From: Ovidiu Panait To: clabbe.montjoie@gmail.com, herbert@gondor.apana.org.au, davem@davemloft.net, linux-crypto@vger.kernel.org Cc: wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Ovidiu Panait Subject: [PATCH v2 5/9] crypto: sun8i-ce - move bounce_iv and backup_iv to request context Date: Sun, 3 Aug 2025 22:10:25 +0300 Message-ID: <20250803191029.3592987-6-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> References: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Status: O Currently, the iv buffers are allocated once per flow during driver probe. However, the iv buffers hold request-specific data, so they should be part of the request context. Therefore, allocate iv buffers per request, rather than per flow. Signed-off-by: Ovidiu Panait --- .../allwinner/sun8i-ce/sun8i-ce-cipher.c | 18 +++++++++--------- .../crypto/allwinner/sun8i-ce/sun8i-ce-core.c | 12 ------------ drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h | 8 ++++---- 3 files changed, 13 insertions(+), 25 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c index c57c64a1a388..69ba8236cf2d 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c @@ -209,11 +209,11 @@ static int sun8i_ce_cipher_prepare(struct crypto_engine *engine, void *async_req if (areq->iv && ivsize > 0) { if (rctx->op_dir & CE_DECRYPTION) { offset = areq->cryptlen - ivsize; - scatterwalk_map_and_copy(chan->backup_iv, areq->src, + scatterwalk_map_and_copy(rctx->backup_iv, areq->src, offset, ivsize, 0); } - memcpy(chan->bounce_iv, areq->iv, ivsize); - rctx->addr_iv = dma_map_single(ce->dev, chan->bounce_iv, ivsize, + memcpy(rctx->bounce_iv, areq->iv, ivsize); + rctx->addr_iv = dma_map_single(ce->dev, rctx->bounce_iv, ivsize, DMA_TO_DEVICE); if (dma_mapping_error(ce->dev, rctx->addr_iv)) { dev_err(ce->dev, "Cannot DMA MAP IV\n"); @@ -299,13 +299,13 @@ static int sun8i_ce_cipher_prepare(struct crypto_engine *engine, void *async_req offset = areq->cryptlen - ivsize; if (rctx->op_dir & CE_DECRYPTION) { - memcpy(areq->iv, chan->backup_iv, ivsize); - memzero_explicit(chan->backup_iv, ivsize); + memcpy(areq->iv, rctx->backup_iv, ivsize); + memzero_explicit(rctx->backup_iv, ivsize); } else { scatterwalk_map_and_copy(areq->iv, areq->dst, offset, ivsize, 0); } - memzero_explicit(chan->bounce_iv, ivsize); + memzero_explicit(rctx->bounce_iv, ivsize); } dma_unmap_single(ce->dev, rctx->addr_key, op->keylen, DMA_TO_DEVICE); @@ -348,13 +348,13 @@ static void sun8i_ce_cipher_unprepare(struct crypto_engine *engine, DMA_TO_DEVICE); offset = areq->cryptlen - ivsize; if (rctx->op_dir & CE_DECRYPTION) { - memcpy(areq->iv, chan->backup_iv, ivsize); - memzero_explicit(chan->backup_iv, ivsize); + memcpy(areq->iv, rctx->backup_iv, ivsize); + memzero_explicit(rctx->backup_iv, ivsize); } else { scatterwalk_map_and_copy(areq->iv, areq->dst, offset, ivsize, 0); } - memzero_explicit(chan->bounce_iv, ivsize); + memzero_explicit(rctx->bounce_iv, ivsize); } dma_unmap_single(ce->dev, rctx->addr_key, op->keylen, DMA_TO_DEVICE); diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c index b7093fbb8e9d..c16bb6ce6ee3 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c @@ -759,18 +759,6 @@ static int sun8i_ce_allocate_chanlist(struct sun8i_ce_dev *ce) err = -ENOMEM; goto error_engine; } - ce->chanlist[i].bounce_iv = devm_kmalloc(ce->dev, AES_BLOCK_SIZE, - GFP_KERNEL | GFP_DMA); - if (!ce->chanlist[i].bounce_iv) { - err = -ENOMEM; - goto error_engine; - } - ce->chanlist[i].backup_iv = devm_kmalloc(ce->dev, AES_BLOCK_SIZE, - GFP_KERNEL); - if (!ce->chanlist[i].backup_iv) { - err = -ENOMEM; - goto error_engine; - } } return 0; error_engine: diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h index f12c32d1843f..0d46531c475c 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h @@ -188,8 +188,6 @@ struct ce_task { * @status: set to 1 by interrupt if task is done * @t_phy: Physical address of task * @tl: pointer to the current ce_task for this flow - * @backup_iv: buffer which contain the next IV to store - * @bounce_iv: buffer which contain the IV * @stat_req: number of request done by this flow */ struct sun8i_ce_flow { @@ -198,8 +196,6 @@ struct sun8i_ce_flow { int status; dma_addr_t t_phy; struct ce_task *tl; - void *backup_iv; - void *bounce_iv; #ifdef CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG unsigned long stat_req; #endif @@ -264,6 +260,8 @@ static inline __le32 desc_addr_val_le32(struct sun8i_ce_dev *dev, * @nr_sgd: The number of destination SG (as given by dma_map_sg()) * @addr_iv: The IV addr returned by dma_map_single, need to unmap later * @addr_key: The key addr returned by dma_map_single, need to unmap later + * @bounce_iv: Current IV buffer + * @backup_iv: Next IV buffer * @fallback_req: request struct for invoking the fallback skcipher TFM */ struct sun8i_cipher_req_ctx { @@ -273,6 +271,8 @@ struct sun8i_cipher_req_ctx { int nr_sgd; dma_addr_t addr_iv; dma_addr_t addr_key; + u8 bounce_iv[AES_BLOCK_SIZE] ____cacheline_aligned; + u8 backup_iv[AES_BLOCK_SIZE] ____cacheline_aligned; struct skcipher_request fallback_req; // keep at the end }; From patchwork Sun Aug 3 19:10:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ovidiu Panait X-Patchwork-Id: 1278 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 575F8210F59 for ; Sun, 3 Aug 2025 19:11:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248273; cv=none; b=GoNjxp5W52OMnIYu1MqNC/V862NtfP5ofifmqt5K505hpD75VO4JHCKjuV48t3jrD5yKyji/A7DrOzV2xkmWz8aeck+A8dC4Sv5jXh9D6Clx0S0apQhuoNQQ1pk0i8Y6NHZ+2Pldq7V5C2aw1F3OEzWbFHlJS7S51xo8XUHOpQU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248273; c=relaxed/simple; bh=VLxVkCzDUptZN3MLV6XyYZWlwBVycUnPTFTRKmIikGY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WQLksJp6nozVydBVY7kDKlnV8eda9GLJILGdGznRASCKU/QGHBbAriEGjqr9mV5KxWlbuiYyoOgav4G9to/1MQ153aMepD8phPWbTqI2u/QUXbT8DjIFjwelt9SSv/OFzrFy6IBm8orB/ANmvJq6zao1DVTqoCbwmIx3nnc59+k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Dru8Zq8r; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Dru8Zq8r" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-455b00339c8so23407885e9.3 for ; Sun, 03 Aug 2025 12:11:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754248270; x=1754853070; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dlcibDkuEhs59MfzxPNpL2Xe4LDD/D/d8iw52Y6RVVM=; b=Dru8Zq8rxzjLXwqcLKnORahYZ8KeyxTlq79XR53L43ZrxcemCvWB699m0aQskXxA8x oMM7nvzUtT+wMFiKd08cU2m4XTpjg6nVgSezUSNI3Kgxau1rrdUY8CFoof5FQRABXJ8O TVBKQKH0cbjjDtLog1CxRCVqgiSNEpw6jJgMyiwSG4nJlICtYVflKcJD29YgtJ8W62Qi XcDqqkCb6crWqg54/4VZSXgtMv9pD5lVACO2jxZxXR9PjLPPDiIXOiNOC3N2f6XZw8G/ LFOH2czHB/2zUss8bAh6VoexHM+5CrrkGBCvICKaJ9zK8pqVeCj6todIFWwlb9iP3FYe RAMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754248270; x=1754853070; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dlcibDkuEhs59MfzxPNpL2Xe4LDD/D/d8iw52Y6RVVM=; b=vmwvF2RH1r1n5ZMtnvzVK8Nzo2mXNAOpVu4Tu98vbdjkSANjsll6x0MKVMlYEf9FDh 9r5gk3wi4IKlBb/iE3LsqAH0H2ma8PfUGY7VHKnTXRcNqXGpxWGWUTBmeZL+LjYmY7uX pWBLPnMfMk1e2dIKjMOpSVi156TVcn2ABq0h1/2SjVZvMwOyvx5GxhCRdTqZkCopq8k/ X8ibg/uNK+B4buEk5o9RNRfiXkf43iimm3KmAVcBSeXOW2kZWbfJEigHCq1rTeb72tK0 XfZvYMKkOmcLtn0X5QQftJaBQBe/RlAgoLd6np9KWvu5K7CE+0qmPkTRRi+ggMLpiqz1 J03w== X-Forwarded-Encrypted: i=1; AJvYcCUQfO8wDETv+9bcTNKhkM71An2CwsyHjIsLI7IBuCRAbOFWbbnuFsvREErfp6tOZFtOZpHCClHXRAQAZA==@lists.linux.dev X-Gm-Message-State: AOJu0YxNPl0SzyFgw9cPrpKt1juCaX+gMcii4XKQX2A9Xo/fQOHjcY/V Y70tsXOsyKusxBu1jQFKbsfZRD/WEF48oa3OuRzpOCKO7UbLuALtxbYy91K4mw== X-Gm-Gg: ASbGncvm4wqf9fEAHLU+VUFItX2aQ3htXVgC0UO62viQoykuw7xoTfqe7otkFwTR/k4 hrkYgmsDVcYhkEYoVdZ+djfIWUtfRhkWXaXtjQdgj5DHbIFqla0PDMAYP2kPQy14188dX5tfhph ektoF41bf5Qd/zsdc0p0CrQ5zq9NoqZw76rtEoWsUmwk+HnSw9MWiO1kYwRmdKOgoMeZcpMf0CE hHBEJLW6IYnb1lFX9VOGnJ3XOqoLp3PEmyOouGZ13PEkAZFW7QtyrqcMjwEQXERmaUDcuOlRnE0 28IIAey2yJ1Km3uahxPCDpYJa7jLV4g//BFQ7dxs0tslGBdM1ugUec0m/zSZzPznPtiHwpIyiLz OPlZlUxzXWKSte2oiIq1YzVbfxNpMAgUy0hzrKSKnpyDw X-Google-Smtp-Source: AGHT+IHtfKq4zUbwXfC6aQHk7cG+DjOfnqmfBGllrsesIhnmsE+kULjZ44WqEg9ZZudwAxTaMk52SA== X-Received: by 2002:a05:600c:19c9:b0:459:d494:faf9 with SMTP id 5b1f17b1804b1-459d494fd04mr22075015e9.10.1754248269489; Sun, 03 Aug 2025 12:11:09 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:ca0d:f700:1210:b727:adc8:716]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b79c45346asm13099210f8f.39.2025.08.03.12.11.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 12:11:09 -0700 (PDT) From: Ovidiu Panait To: clabbe.montjoie@gmail.com, herbert@gondor.apana.org.au, davem@davemloft.net, linux-crypto@vger.kernel.org Cc: wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Ovidiu Panait Subject: [PATCH v2 6/9] crypto: sun8i-ce - fold sun8i_ce_cipher_run() into sun8i_ce_cipher_do_one() Date: Sun, 3 Aug 2025 22:10:26 +0300 Message-ID: <20250803191029.3592987-7-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> References: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Status: O Fold sun8i_ce_cipher_run() into it's only caller, sun8i_ce_cipher_do_one(), to eliminate a bit of boilerplate. Signed-off-by: Ovidiu Panait --- .../allwinner/sun8i-ce/sun8i-ce-cipher.c | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c index 69ba8236cf2d..f63d21cd1e52 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c @@ -360,31 +360,28 @@ static void sun8i_ce_cipher_unprepare(struct crypto_engine *engine, dma_unmap_single(ce->dev, rctx->addr_key, op->keylen, DMA_TO_DEVICE); } -static void sun8i_ce_cipher_run(struct crypto_engine *engine, void *areq) -{ - struct skcipher_request *breq = container_of(areq, struct skcipher_request, base); - struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(breq); - struct sun8i_cipher_tfm_ctx *op = crypto_skcipher_ctx(tfm); - struct sun8i_ce_dev *ce = op->ce; - struct sun8i_cipher_req_ctx *rctx = skcipher_request_ctx(breq); - int flow, err; - - flow = rctx->flow; - err = sun8i_ce_run_task(ce, flow, crypto_tfm_alg_name(breq->base.tfm)); - sun8i_ce_cipher_unprepare(engine, areq); - local_bh_disable(); - crypto_finalize_skcipher_request(engine, breq, err); - local_bh_enable(); -} - int sun8i_ce_cipher_do_one(struct crypto_engine *engine, void *areq) { - int err = sun8i_ce_cipher_prepare(engine, areq); + struct skcipher_request *req = skcipher_request_cast(areq); + struct sun8i_cipher_req_ctx *rctx = skcipher_request_ctx(req); + struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); + struct sun8i_cipher_tfm_ctx *ctx = crypto_skcipher_ctx(tfm); + struct sun8i_ce_dev *ce = ctx->ce; + int err; + err = sun8i_ce_cipher_prepare(engine, areq); if (err) return err; - sun8i_ce_cipher_run(engine, areq); + err = sun8i_ce_run_task(ce, rctx->flow, + crypto_tfm_alg_name(req->base.tfm)); + + sun8i_ce_cipher_unprepare(engine, areq); + + local_bh_disable(); + crypto_finalize_skcipher_request(engine, req, err); + local_bh_enable(); + return 0; } From patchwork Sun Aug 3 19:10:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ovidiu Panait X-Patchwork-Id: 1277 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 79AF41F4617 for ; Sun, 3 Aug 2025 19:11:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248274; cv=none; b=G6SdeGQEQHLbZWjS2Etc+7P+S2hvDvDTImAvaSlYI4AvW9oWOyunVmD6ZoarfICQmKIpuFOeAGvh90eQjI2HQj1qH0/oZSE0Z1kkpXxmKxsCwhGbdyszinDRXTFQeBeG5iSIkw9EBvklnBpaRrA+E1Ku4mT/kGJicXayPEyCaxA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248274; c=relaxed/simple; bh=f6FBfJ2O2GQ3lk7rvtQvn1UblRaOsewFE81eXurpKa8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Vb6E9nDg7xD5GU8GUb5d80jXquxOsjAXRgABdkjI2VgbvaKZ4cEkFOWaorOn0jf/XHP7wr81u/56Ziu9xWhXAmmHaUKHbXjhxLUNXA4fPMaGwkCDC+sKQz0LUIALNpk8KBZtDAfaXf5g1Uvc74iVkBCwm5WlEEzOUgW3hweve+M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ayBAQ8+3; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ayBAQ8+3" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-458c063baeaso7306385e9.1 for ; Sun, 03 Aug 2025 12:11:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754248271; x=1754853071; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XM9OSoT7EEhuPBZA6neX1BQbhTIUd6+o400NZdJKrYY=; b=ayBAQ8+3fbsSF0JLiwL+aU4FhDoCRU4F0S0BQbAKd4mwFvvT/8DG/PZA6OI/OtIj/c FRQ7LaxO/fbdLksnoNiJcOLqinbh9aXy71iXCwwlObQRrLHmFA2G/iH0mh0NcNe68G2q eNVPyO4fWab3Qsug84YCvxO+RjgIFl7twmBaaR0CiC2A5Ldtq2vj5IleyKVmGIetMQ85 gYCsE5TPKnaesAFOqw7gBIGLV+u7YIXDWECLGkw1eHSYjXM+3CmVPGJnJCR8okrzZQbU pzMsp2y6x4kurn5tj4SC+Qm32HJsCGhsIi4uM14Hh/KoF9ZOg2tLtdIDw1Y3QnsLqbPO Aclg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754248271; x=1754853071; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XM9OSoT7EEhuPBZA6neX1BQbhTIUd6+o400NZdJKrYY=; b=mOsZ1NujCCvxoxD+IxiNQ8qDTT0+lJXGBzoA22QUNVDRs5XTJSqHWxXHw5+hJrPZJ5 itARoddrt9yztWAradmtQJe2XS5I9m43rznztTY9hrcpIDcAE2ok1yqRmgqCKNA6GEVF XZioQbDq1U0+OR7xc+ciFImN3WA1vzF99lhigaOGEigcQQu75tqjy4id/6YPCgqGz/nd X/3h65wEw2Xjlr0OiS8JxqiSF7PgswTDc05jWFaIkwqgXccF0NY+BbZtLMFcPokOV0Ks 6Usmdygufh0IuX1Hn4bESY6tLAc2u7F95fvg/q22ncICy6ZnGdzsh0lLsZu7V1wehBKb 3vpg== X-Forwarded-Encrypted: i=1; AJvYcCWkfJ6s8rzGIddcE31HzCRuy9na0zecYy0SbY2ew285WmrOOGnkTiflLTnvjyF096LqwVcOCyCSK6BDqQ==@lists.linux.dev X-Gm-Message-State: AOJu0YwYQXKSa6dL3kkd7HyCjef/MYpCw+5NsqNqTBBMTpcak1wGjuok R+57mIFuL5/SkjCz+YfAOBHI3KeSlSCyS4M6cMtsgvs9LviBXb5Bbu4COnDnbA== X-Gm-Gg: ASbGnctUYheAo/8mLGdFkWskGW7/PdcATJ0BYivF2Pwz7V8/hNF8+qxQwGBwhxirL4g L/2793w+RWUmyFwIGpGSn0eTX7S4NYvSIk2dt94joxaw2hp9BoMGJ5uivPNQ/petftVL4/cKrGC wZ4ClJjVsAZpKqMNWL4L9bd3PlJDsFj58SHos78dWiv+Y9Y3CjqMPIC0BPVC5pn0bTf1P4gMDUM JZSpjU88pMWKns9NSSzXyM8HFOEpCmxk0guyTXHbEvKVj6K/TzJJdaEGPjVcaynd79s1NnTGUvn me24zLy6tPsIRq1/8RvL8FVNWoVySbz1wm0J1OverkQ1nfnQCs8NbxJZDMk+hmkxg3ReHLgtFTy ENLMDlMvZ1/B2UOjzKIpBvUbCrPQVPRdPAQ== X-Google-Smtp-Source: AGHT+IFrM0QM4YzPRURXac5BvBdFWZFGquBGzZldZ3BzPlquCbea+9B7z4XeK2D+7m4BeFHALnhLcg== X-Received: by 2002:a05:600c:1c25:b0:456:27a4:50ac with SMTP id 5b1f17b1804b1-458b6b3d871mr47422325e9.23.1754248270728; Sun, 03 Aug 2025 12:11:10 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:ca0d:f700:1210:b727:adc8:716]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b79c45346asm13099210f8f.39.2025.08.03.12.11.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 12:11:10 -0700 (PDT) From: Ovidiu Panait To: clabbe.montjoie@gmail.com, herbert@gondor.apana.org.au, davem@davemloft.net, linux-crypto@vger.kernel.org Cc: wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Ovidiu Panait Subject: [PATCH v2 7/9] crypto: sun8i-ce - pass task descriptor to cipher prepare/unprepare Date: Sun, 3 Aug 2025 22:10:27 +0300 Message-ID: <20250803191029.3592987-8-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> References: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Status: O To remove some duplicated code, directly pass 'struct skcipher_request' and 'struct ce_task' pointers to sun8i_ce_cipher_{prepare,unprepare}. Signed-off-by: Ovidiu Panait --- .../allwinner/sun8i-ce/sun8i-ce-cipher.c | 33 +++++++------------ 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c index f63d21cd1e52..021614b65e39 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c @@ -131,21 +131,19 @@ static int sun8i_ce_cipher_fallback(struct skcipher_request *areq) return err; } -static int sun8i_ce_cipher_prepare(struct crypto_engine *engine, void *async_req) +static int sun8i_ce_cipher_prepare(struct skcipher_request *areq, + struct ce_task *cet) { - struct skcipher_request *areq = container_of(async_req, struct skcipher_request, base); struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq); struct sun8i_cipher_tfm_ctx *op = crypto_skcipher_ctx(tfm); struct sun8i_ce_dev *ce = op->ce; struct sun8i_cipher_req_ctx *rctx = skcipher_request_ctx(areq); struct skcipher_alg *alg = crypto_skcipher_alg(tfm); struct sun8i_ce_alg_template *algt; - struct sun8i_ce_flow *chan; - struct ce_task *cet; struct scatterlist *sg; unsigned int todo, len, offset, ivsize; u32 common, sym; - int flow, i; + int i; int nr_sgs = 0; int nr_sgd = 0; int err = 0; @@ -163,14 +161,9 @@ static int sun8i_ce_cipher_prepare(struct crypto_engine *engine, void *async_req if (IS_ENABLED(CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG)) algt->stat_req++; - flow = rctx->flow; - - chan = &ce->chanlist[flow]; - - cet = chan->tl; memset(cet, 0, sizeof(struct ce_task)); - cet->t_id = cpu_to_le32(flow); + cet->t_id = cpu_to_le32(rctx->flow); common = ce->variant->alg_cipher[algt->ce_algo_id]; common |= rctx->op_dir | CE_COMM_INT; cet->t_common_ctl = cpu_to_le32(common); @@ -314,24 +307,17 @@ static int sun8i_ce_cipher_prepare(struct crypto_engine *engine, void *async_req return err; } -static void sun8i_ce_cipher_unprepare(struct crypto_engine *engine, - void *async_req) +static void sun8i_ce_cipher_unprepare(struct skcipher_request *areq, + struct ce_task *cet) { - struct skcipher_request *areq = container_of(async_req, struct skcipher_request, base); struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq); struct sun8i_cipher_tfm_ctx *op = crypto_skcipher_ctx(tfm); struct sun8i_ce_dev *ce = op->ce; struct sun8i_cipher_req_ctx *rctx = skcipher_request_ctx(areq); - struct sun8i_ce_flow *chan; - struct ce_task *cet; unsigned int ivsize, offset; int nr_sgs = rctx->nr_sgs; int nr_sgd = rctx->nr_sgd; - int flow; - flow = rctx->flow; - chan = &ce->chanlist[flow]; - cet = chan->tl; ivsize = crypto_skcipher_ivsize(tfm); if (areq->src == areq->dst) { @@ -367,16 +353,19 @@ int sun8i_ce_cipher_do_one(struct crypto_engine *engine, void *areq) struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct sun8i_cipher_tfm_ctx *ctx = crypto_skcipher_ctx(tfm); struct sun8i_ce_dev *ce = ctx->ce; + struct sun8i_ce_flow *chan; int err; - err = sun8i_ce_cipher_prepare(engine, areq); + chan = &ce->chanlist[rctx->flow]; + + err = sun8i_ce_cipher_prepare(req, chan->tl); if (err) return err; err = sun8i_ce_run_task(ce, rctx->flow, crypto_tfm_alg_name(req->base.tfm)); - sun8i_ce_cipher_unprepare(engine, areq); + sun8i_ce_cipher_unprepare(req, chan->tl); local_bh_disable(); crypto_finalize_skcipher_request(engine, req, err); From patchwork Sun Aug 3 19:10:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ovidiu Panait X-Patchwork-Id: 1276 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CAD09218AD2 for ; Sun, 3 Aug 2025 19:11:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248275; cv=none; b=B4FE9A6ut+NiOegkKwngpvQklU0JdBiB43LiR8Zh15J+iR2XmVP6PNhT5OexAEY0Fnws0P5Z45PGJOqMT9X2tJxBmIDQ6nAfb+yXw+EVISOZiI8Rb5HIlR87KtEsNCuLX/FTF7CqsBXkEKke1CBxP+NLSfVAfAJi14dTGRbe+9Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248275; c=relaxed/simple; bh=B65GIV3its2xp1R6jcBGC4dXubBGAt9T//wtW+mLfK0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NvOC7A0KloWmPdG6uQPohXCahPGuJ1chLuTaS8qN5uSzq0N2o6xF21sSiMfj7oIA4Cz6sYqVO8ltYBrgKP9G5gTUNeE6U0mQgGjEBoNNHdBUcFAgvIf6cqJr8gHGm1Y7FYIq94OlEkyelDcCTcXPAf54jp1Zuyt6sIithTuWdOw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=kLVSvCW7; arc=none smtp.client-ip=209.85.221.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kLVSvCW7" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-3b7910123a0so3863508f8f.1 for ; Sun, 03 Aug 2025 12:11:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754248272; x=1754853072; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yPkkvVwxFYU+2Mr615PFvFXGtNmnnnpM8am4NYDPd7Y=; b=kLVSvCW7XHR/ePOv4KTmL6/8HXZvj/lIlvBLw84FcA9UF/4YwnXqjWwDTf3RyjDucY a4oSs99fLoqVfgUrKucuxV+KkZIT+U76Qm+0mc21MpFziVri/KfWg8odNcvZ+iI4pNo3 kmOZd7IxxXYt8YoZ3lY8LO1uYiDedKAgREWuzyyadp30At7+l/2W/fz8nlLlOp0jxV7C xBTw62pqL+cvgiHmfdfFKMm7MmSwp8LL4EMXzI8h72LGAphfYSLERCzLbmsOctNIKGk2 eHmYJnQPEta/Wlt2T9zalY9tUzm0VNJ9oTOBwx5WUiJdE6E0e1hG3W7EVjxzul2kmd/+ vJ9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754248272; x=1754853072; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yPkkvVwxFYU+2Mr615PFvFXGtNmnnnpM8am4NYDPd7Y=; b=YTWH93v8W+T67pTHQWAt+nKfJvJuPKCS4xmz9CF3VDNFbW7Q0QGHMzxrOMR90peoG8 623TfrmyVCL1JuzMWUUiP5RaBqPapSsZ3NSZP5r/S5sjHSQOklxsM76tygqR7sNhpoKt ghlV4MXdkZdnLFutL4aHfPYATHBqgUrInufYZvq7oLs+Lq9bY45k8NPXBUBS5Nr80JlD 9/CHe15n9ubJA7WNYUALqZEEAr0MAaiuwJ4zMwtKedcIRG4Byc7Sdf6Hi38L0dZhdGVn z32RZIFK7OhFZQH6cwsK7mnGCOQcbIj5HDRd7WQGvAQX5SpdaVgMuCyQgNgLegVTuuww 3HgQ== X-Forwarded-Encrypted: i=1; AJvYcCXS8HXm20id3GGbvzTUR44wRFgXIjPsKgwaf8TCmuttevt/G4KVolpYpkmQETMpc6fj3lSQumGsQVQ/uA==@lists.linux.dev X-Gm-Message-State: AOJu0Yy+RRL33YdSoAKU45a8j3V5UuWO2i5LXSRUrw2Hbfu1nQua+//T pSdCmuryNnAz9HlZuDnTF7pheAonInCDE+6vQGXo1nt9ZDfuFXhqXzLr X-Gm-Gg: ASbGncu6uH2+TLLKOZwk+4dU53ZcgCZQgRZ8xE0U/fDlXMT+5ah3pC9JK9Vfaozlf4h XIIEID3wyBseE/ZwrwpfFq5MPNzgktYr7Qs+haLcYLBdu23HQf3d7bZFKtl3yrDaThXZbSEX/aL xaTT7tkXN25sgd0qbTIYsaGAnd5jKaAUVzumY0iA8dKFaVRJ/5az6E6unKgnqoGyRAgEouS27ED d2+MPH91aeCW9uEjC3e+Cx08Vnv3isF1PE255wLT7qc/u27aCnmRHp7U3ddt94G961c+hJwa3kC ABE+1ckSIuipdPRIXXE97QUVrNDaSluv2FuttkDJAV4+MZVa5dNjWbxIJ40PqqYYOO3za++4DHg lp8pBQbE/UcQ4g2GU+gn8+mZYlXsyWw1Gfg== X-Google-Smtp-Source: AGHT+IE6MhL7+I58bcS8THCFfl9pcCuQ6d4eZ/cd8pKuwSLCaUyMm7M6/8UMIKCzZ6nMlHDZh0bvtw== X-Received: by 2002:a5d:5d0f:0:b0:3a3:65b5:51d7 with SMTP id ffacd0b85a97d-3b8d94838a3mr5271879f8f.26.1754248272003; Sun, 03 Aug 2025 12:11:12 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:ca0d:f700:1210:b727:adc8:716]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b79c45346asm13099210f8f.39.2025.08.03.12.11.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 12:11:11 -0700 (PDT) From: Ovidiu Panait To: clabbe.montjoie@gmail.com, herbert@gondor.apana.org.au, davem@davemloft.net, linux-crypto@vger.kernel.org Cc: wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Ovidiu Panait Subject: [PATCH v2 8/9] crypto: sun8i-ce - save hash buffers and dma info to request context Date: Sun, 3 Aug 2025 22:10:28 +0300 Message-ID: <20250803191029.3592987-9-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> References: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Status: O Similar to sun8i-ce skcipher code, move all request-specific data to request context. This simplifies sun8i_ce_hash_run() and it eliminates the remaining kmalloc() calls from the digest path. It also makes it easier to split the monolithic sun8i_ce_hash_run() function in the next commit. Signed-off-by: Ovidiu Panait --- .../crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 56 +++++++------------ drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h | 17 ++++++ 2 files changed, 38 insertions(+), 35 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c index df2acef9c679..e28100c07b86 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c @@ -328,12 +328,9 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) u32 common; u64 byte_count; __le32 *bf; - void *buf, *result; int j, i, todo; u64 bs; int digestsize; - dma_addr_t addr_res, addr_pad; - int ns = sg_nents_for_len(areq->src, areq->nbytes); algt = container_of(alg, struct sun8i_ce_alg_template, alg.hash.base); ce = algt->ce; @@ -345,19 +342,7 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) if (digestsize == SHA384_DIGEST_SIZE) digestsize = SHA512_DIGEST_SIZE; - /* the padding could be up to two block. */ - buf = kcalloc(2, bs, GFP_KERNEL | GFP_DMA); - if (!buf) { - err = -ENOMEM; - goto err_out; - } - bf = (__le32 *)buf; - - result = kzalloc(digestsize, GFP_KERNEL | GFP_DMA); - if (!result) { - err = -ENOMEM; - goto err_free_buf; - } + bf = (__le32 *)rctx->pad; flow = rctx->flow; chan = &ce->chanlist[flow]; @@ -378,11 +363,12 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) cet->t_sym_ctl = 0; cet->t_asym_ctl = 0; - nr_sgs = dma_map_sg(ce->dev, areq->src, ns, DMA_TO_DEVICE); + rctx->nr_sgs = sg_nents_for_len(areq->src, areq->nbytes); + nr_sgs = dma_map_sg(ce->dev, areq->src, rctx->nr_sgs, DMA_TO_DEVICE); if (nr_sgs <= 0 || nr_sgs > MAX_SG) { dev_err(ce->dev, "Invalid sg number %d\n", nr_sgs); err = -EINVAL; - goto err_free_result; + goto err_out; } len = areq->nbytes; @@ -397,10 +383,13 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) err = -EINVAL; goto err_unmap_src; } - addr_res = dma_map_single(ce->dev, result, digestsize, DMA_FROM_DEVICE); - cet->t_dst[0].addr = desc_addr_val_le32(ce, addr_res); - cet->t_dst[0].len = cpu_to_le32(digestsize / 4); - if (dma_mapping_error(ce->dev, addr_res)) { + + rctx->result_len = digestsize; + rctx->addr_res = dma_map_single(ce->dev, rctx->result, rctx->result_len, + DMA_FROM_DEVICE); + cet->t_dst[0].addr = desc_addr_val_le32(ce, rctx->addr_res); + cet->t_dst[0].len = cpu_to_le32(rctx->result_len / 4); + if (dma_mapping_error(ce->dev, rctx->addr_res)) { dev_err(ce->dev, "DMA map dest\n"); err = -EINVAL; goto err_unmap_src; @@ -428,10 +417,12 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) goto err_unmap_result; } - addr_pad = dma_map_single(ce->dev, buf, j * 4, DMA_TO_DEVICE); - cet->t_src[i].addr = desc_addr_val_le32(ce, addr_pad); + rctx->pad_len = j * 4; + rctx->addr_pad = dma_map_single(ce->dev, rctx->pad, rctx->pad_len, + DMA_TO_DEVICE); + cet->t_src[i].addr = desc_addr_val_le32(ce, rctx->addr_pad); cet->t_src[i].len = cpu_to_le32(j); - if (dma_mapping_error(ce->dev, addr_pad)) { + if (dma_mapping_error(ce->dev, rctx->addr_pad)) { dev_err(ce->dev, "DMA error on padding SG\n"); err = -EINVAL; goto err_unmap_result; @@ -444,21 +435,16 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) err = sun8i_ce_run_task(ce, flow, crypto_ahash_alg_name(tfm)); - dma_unmap_single(ce->dev, addr_pad, j * 4, DMA_TO_DEVICE); + dma_unmap_single(ce->dev, rctx->addr_pad, rctx->pad_len, DMA_TO_DEVICE); err_unmap_result: - dma_unmap_single(ce->dev, addr_res, digestsize, DMA_FROM_DEVICE); + dma_unmap_single(ce->dev, rctx->addr_res, rctx->result_len, + DMA_FROM_DEVICE); if (!err) - memcpy(areq->result, result, crypto_ahash_digestsize(tfm)); + memcpy(areq->result, rctx->result, crypto_ahash_digestsize(tfm)); err_unmap_src: - dma_unmap_sg(ce->dev, areq->src, ns, DMA_TO_DEVICE); - -err_free_result: - kfree(result); - -err_free_buf: - kfree(buf); + dma_unmap_sg(ce->dev, areq->src, rctx->nr_sgs, DMA_TO_DEVICE); err_out: local_bh_disable(); diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h index 0d46531c475c..90b955787d37 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h @@ -110,6 +110,9 @@ #define MAXFLOW 4 +#define CE_MAX_HASH_DIGEST_SIZE SHA512_DIGEST_SIZE +#define CE_MAX_HASH_BLOCK_SIZE SHA512_BLOCK_SIZE + /* * struct ce_clock - Describe clocks used by sun8i-ce * @name: Name of clock needed by this variant @@ -304,9 +307,23 @@ struct sun8i_ce_hash_tfm_ctx { * struct sun8i_ce_hash_reqctx - context for an ahash request * @fallback_req: pre-allocated fallback request * @flow: the flow to use for this request + * @nr_sgs: number of entries in the source scatterlist + * @result_len: result length in bytes + * @pad_len: padding length in bytes + * @addr_res: DMA address of the result buffer, returned by dma_map_single() + * @addr_pad: DMA address of the padding buffer, returned by dma_map_single() + * @result: per-request result buffer + * @pad: per-request padding buffer (up to 2 blocks) */ struct sun8i_ce_hash_reqctx { int flow; + int nr_sgs; + size_t result_len; + size_t pad_len; + dma_addr_t addr_res; + dma_addr_t addr_pad; + u8 result[CE_MAX_HASH_DIGEST_SIZE] ____cacheline_aligned; + u8 pad[2 * CE_MAX_HASH_BLOCK_SIZE] ____cacheline_aligned; struct ahash_request fallback_req; // keep at the end }; From patchwork Sun Aug 3 19:10:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ovidiu Panait X-Patchwork-Id: 1275 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E06C21ADB7 for ; Sun, 3 Aug 2025 19:11:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248276; cv=none; b=KO1hfeYqR5ukSMHY5jL3DiYTK8XiALwDTgMZr8dX7May/OeroCaTBmG2jU5z7peDMNoqKeS4myC/LLFtviqmb78Yst0ce2JiLzSsIVGj3skDP5uetf8KfJSnx+oh7dfgO3ZntLJ9S0hJGb755OeVcz21Rp6O0IvP5c7iNrgTq/o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754248276; c=relaxed/simple; bh=J9ebtys+gOadsS+t9/vBdipuMTDeR7aQZjcVU3lSpuI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tI0UdAq+cZjiPM0TFWCXQB36gLbCptjmZ+ptALIV1cWi9KQGjy7dsFtcO85SBzU2g4SPSlcZJgpBoC+imPHLQxkUsg8m9w6OiBsfMyFJthBOHQ4jhgODOPTgof/0oxiGk6fxwcyeAhYxAzE/Bkhxt5pjLwn9Fe2T6qnpH0IHYe8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=IYD07AFp; arc=none smtp.client-ip=209.85.221.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IYD07AFp" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-3b7825e2775so3013868f8f.2 for ; Sun, 03 Aug 2025 12:11:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754248273; x=1754853073; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5OquH3bzsfHd+3HPbbgh3jCNSZfVC5bnpDs/2otunY4=; b=IYD07AFp9wOsTEfUFwbhd5Om6oecyrBU+HfC201UTQR0dYjATDZdrKrjcujMdHL0v/ dPGdGoWNsl67Em6gRRu8acFAmCGA4GVReh5O2RfQiMnbDI1PR9pKNsSR1uYyUQ1+XJSh 9zoot0SQGOkRqz+ih1Wz6RvV6xYrSehfrSqWyUY5vfhVx78HGc78YRiyQwD7EAcJTtFM x4XPcWJKu1JzMAwm+/5yntUzMDUCde3+2BkBJxBMhWlMHFRgWTIyRQxrbzsv1xNqd9dn 9nmgb7qznqakKZ4dehTiN49yXRusX3TgncTNStXBMxszqGXAk4nbaZyIkHSwwx+9m2HE GZYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754248273; x=1754853073; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5OquH3bzsfHd+3HPbbgh3jCNSZfVC5bnpDs/2otunY4=; b=uJxAsdLlegILXvkIUi0IUiMh2HGrKMq4nCACy1cAUoHd95im8tHsXzp8p07slNu8ie Bj9kUenAPr4+G0hlJDPbBeHGmND34+nwTi+MT15n4KlMeUVSbSXqg3XmKlBdtI9l3Qja BGGOz9u7/OrrlpycuihI782pmAWo1pHkOBXmOce3obbL2H0i+CtkM4oKHhCf7MhbHc3c 4+ooqn5XET38MG27FQB4EtCs3DfN/c9X7aZAqEz/qRQQjcXu6517NyMFoHKWbG4wuQCD Yn/HNuB19FKL1lVcUJ/SKfq+RLnJGnP8kK5U4VUIR2+826EJQYd21eQzDoLaQmKcWZ8f JbwQ== X-Forwarded-Encrypted: i=1; AJvYcCWMUg4Ukhr9Rm9ftBZF/jrlF6U6rKmPR8WNMAQQ9EDpt1os0D8B6fWJTTPWBd9mbUILtYLx7nM41bYTig==@lists.linux.dev X-Gm-Message-State: AOJu0Yzfs9hIFn5ZdjT1MhWHgaogbksvYI79+0yokhw9JpVywbHY+FOo uMYmIGTN8s5eggFZ3RMxGowR5rSMqVGIEpB9fnxVwCoXF/LMq44nRxzN X-Gm-Gg: ASbGnctTetKR4YAisUgvP8y+u0S66wxhsgjsHyUX+z+BFpRzzvJjx1zX9IQCfBAP/4g Ld52qveTqbr2zeCtwnSlPJNjWsQf4UsXQKfChpwAe5ydqC/p7bVeTRpkl6ynWHH1pTDZSV96e2F r67aCB0OE45bZEKUjevvWhxfQ6JQztf1pReQ/2DSjPbkfwWnfLnNq7QMVvw681yixROzchHTcrn 37iyxmah+w5yumUMD/vMpekI0cc019L7eugFlvoa8yzDEZ4we4WztF7QmPobdI3h2iOE8F/kYs5 JH8tbt7lqd+pcG087IZ9rRSD3pm6nxymryTjguRXcD6jLwJ/GukrsioQl7uIoYOsamGmyViFTGR gTS/UmgnMrEO2juXbnWeJtQropdF84yRckS5iX2ohyagU X-Google-Smtp-Source: AGHT+IGpjk4CRmkJ8M4LqTsc8/ENOgpA5it89IFM3cfJG0O++/wGGjyhzDfblVGHm0OKLzdq4SaUOQ== X-Received: by 2002:a05:6000:2f85:b0:3a4:e68e:d33c with SMTP id ffacd0b85a97d-3b8d94c4caamr5017378f8f.47.1754248273270; Sun, 03 Aug 2025 12:11:13 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:ca0d:f700:1210:b727:adc8:716]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b79c45346asm13099210f8f.39.2025.08.03.12.11.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Aug 2025 12:11:12 -0700 (PDT) From: Ovidiu Panait To: clabbe.montjoie@gmail.com, herbert@gondor.apana.org.au, davem@davemloft.net, linux-crypto@vger.kernel.org Cc: wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Ovidiu Panait Subject: [PATCH v2 9/9] crytpo: sun8i-ce - factor out prepare/unprepare from sun8i_ce_hash_run() Date: Sun, 3 Aug 2025 22:10:29 +0300 Message-ID: <20250803191029.3592987-10-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> References: <20250803191029.3592987-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Status: O In order to make the ahash code more clear and modular, split the monolithic sun8i_ce_hash_run() callback into two parts, prepare and unprepare (therefore aligning it with the sun8i-ce skcipher code). Signed-off-by: Ovidiu Panait --- .../crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 62 ++++++++++++++----- 1 file changed, 46 insertions(+), 16 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c index e28100c07b86..70c761baf847 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c @@ -312,18 +312,15 @@ static u64 hash_pad(__le32 *buf, unsigned int bufsize, u64 padi, u64 byte_count, return j; } -int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) +static int sun8i_ce_hash_prepare(struct ahash_request *areq, struct ce_task *cet) { - struct ahash_request *areq = container_of(breq, struct ahash_request, base); struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); struct ahash_alg *alg = __crypto_ahash_alg(tfm->base.__crt_alg); struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); struct sun8i_ce_alg_template *algt; struct sun8i_ce_dev *ce; - struct sun8i_ce_flow *chan; - struct ce_task *cet; struct scatterlist *sg; - int nr_sgs, flow, err; + int nr_sgs, err; unsigned int len; u32 common; u64 byte_count; @@ -344,18 +341,14 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) bf = (__le32 *)rctx->pad; - flow = rctx->flow; - chan = &ce->chanlist[flow]; - if (IS_ENABLED(CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG)) algt->stat_req++; dev_dbg(ce->dev, "%s %s len=%d\n", __func__, crypto_tfm_alg_name(areq->base.tfm), areq->nbytes); - cet = chan->tl; memset(cet, 0, sizeof(struct ce_task)); - cet->t_id = cpu_to_le32(flow); + cet->t_id = cpu_to_le32(rctx->flow); common = ce->variant->alg_hash[algt->ce_algo_id]; common |= CE_COMM_INT; cet->t_common_ctl = cpu_to_le32(common); @@ -433,22 +426,59 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) else cet->t_dlen = cpu_to_le32(areq->nbytes / 4 + j); - err = sun8i_ce_run_task(ce, flow, crypto_ahash_alg_name(tfm)); - - dma_unmap_single(ce->dev, rctx->addr_pad, rctx->pad_len, DMA_TO_DEVICE); + return 0; err_unmap_result: dma_unmap_single(ce->dev, rctx->addr_res, rctx->result_len, DMA_FROM_DEVICE); - if (!err) - memcpy(areq->result, rctx->result, crypto_ahash_digestsize(tfm)); err_unmap_src: dma_unmap_sg(ce->dev, areq->src, rctx->nr_sgs, DMA_TO_DEVICE); err_out: + return err; +} + +static void sun8i_ce_hash_unprepare(struct ahash_request *areq, + struct ce_task *cet) +{ + struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); + struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); + struct sun8i_ce_hash_tfm_ctx *ctx = crypto_ahash_ctx(tfm); + struct sun8i_ce_dev *ce = ctx->ce; + + dma_unmap_single(ce->dev, rctx->addr_pad, rctx->pad_len, DMA_TO_DEVICE); + dma_unmap_single(ce->dev, rctx->addr_res, rctx->result_len, + DMA_FROM_DEVICE); + dma_unmap_sg(ce->dev, areq->src, rctx->nr_sgs, DMA_TO_DEVICE); +} + +int sun8i_ce_hash_run(struct crypto_engine *engine, void *async_req) +{ + struct ahash_request *areq = ahash_request_cast(async_req); + struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); + struct sun8i_ce_hash_tfm_ctx *ctx = crypto_ahash_ctx(tfm); + struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); + struct sun8i_ce_dev *ce = ctx->ce; + struct sun8i_ce_flow *chan; + int err; + + chan = &ce->chanlist[rctx->flow]; + + err = sun8i_ce_hash_prepare(areq, chan->tl); + if (err) + return err; + + err = sun8i_ce_run_task(ce, rctx->flow, crypto_ahash_alg_name(tfm)); + + sun8i_ce_hash_unprepare(areq, chan->tl); + + if (!err) + memcpy(areq->result, rctx->result, + crypto_ahash_digestsize(tfm)); + local_bh_disable(); - crypto_finalize_hash_request(engine, breq, err); + crypto_finalize_hash_request(engine, async_req, err); local_bh_enable(); return 0;