From nobody Fri Oct 3 10:11:28 2025 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 6C3413043AF; Tue, 2 Sep 2025 13:22:58 +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=1756819380; cv=none; b=jPq4Z32GJLwjEbGm8nGAU/7J4eDR3JDebufb2+7nUrQj4WGV5cDwl/r8Q2A4KQQq6PJxihQWH5jKXpO2gJ71emYXVkVENSnKeiEn/ScdsMvNu8FrE3G7mBxbUWnsFV8hI7/fS/sKnOicsgLPBm8qsPQCURqdM+siP5kTHaKOyHE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819380; c=relaxed/simple; bh=JhryCQPIHZMBHN4Dh3iGOODDbabwR0S+i4gukSM6ud0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ne9DJ1Ag70ySHgfFxDxjuNd/XEREzuZ9yZiuwrGlGzsXHCujpDQh2FOqfMhv63X8P1RA3lJUmkDBjPoHbaasizFWbGenMmQHCsVP+y9xAf1SWqHv9hN6px/tSk+EMYKan1qd8bawwJale3J6qsjGMjNbhHHSIkU9M007cdjIF4A= 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=UfkhhP6o; 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="UfkhhP6o" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-45b9c35bc0aso3561095e9.2; Tue, 02 Sep 2025 06:22:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756819377; x=1757424177; darn=vger.kernel.org; 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=UfkhhP6oJANUd5dRus9ALRLAIes2S7H/bkJggQ6hHdnjuSsuu1ZGP4Lu9XpisIAgxH yizAlEJdzy1pf/j2AvUSlUyrnpYfcaDC1GMc+MWeYKLfgO1xDh3ceqeKuTLlTl7SVRZR OTlC6t25DF46PFO5+w+RuT4laRbFLzjNv515q9cl3S3l1+rFaNquM+xpQNj/QKh5oZKH 50HBOC9WQLYnqdvYnbOyNZ1Cd2vIDESamAS/qkT46jDkB7OWvjnRXJ+6BhqsjR7FmWCw b7wlYOxqu/jWwg7L1019q0aUAZ9dS8A3II+tgCP9ImmUicYVNHf5O7tPCNRfMk6JDMFw IMUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756819377; x=1757424177; 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=Gwayze2UWmNPd4UUr4Mw6D99ujZcmgPmPLgeJSE7jy2lPCHKysT/sgPJYioBJNQoDX hPcOv7abLJY8Z0mnbEAoxj5UYDP8667xP86/Mvlel4tNHzpE5F/CtNn2uSDcTpbWdDZB ycqp70Aw7yLktQZZRr+R0aR//BYvyIEsYeiVW/0KOTQd9RmiVoA4EPZ+9dXBfVcjuslI d0mtE8sEULfnmYg9aCgfTh2D3DDyea007vhmDQRuV2kxg4J0ANCLm9uMSulSH4faTGxI GLwDxEC9t+CdiehNoKCHJzBsFUjqZ6djbE41WBJ9aV+KRA9UuR7bqRwczQdyUrfi4Gdc xlAw== X-Forwarded-Encrypted: i=1; AJvYcCX7H31OxOQPIrfFTXnMPS4YLMscZBwoc0JJ9yaFgXfQK17xtAhYN6sXkhZ+mRaMEnJ7SE6KJuwPf5IHaHI=@vger.kernel.org, AJvYcCXE842owRD66SFsogtppfTHUi6flH47cihUCxqo/r0+q90WC6F8DP1a+orN+8+Cj+wgYdyhXRQqn66sUN/X@vger.kernel.org X-Gm-Message-State: AOJu0YzGymtIgIWE60PWb+my4fQ1YcfzAyOftW943Gnzl9F4x2tzQEL6 9C7j1wvtSqBY8zJkKJ4yXe0bGPgB2PjO1t34F7f1Zvz0qOX9emIMV7Vg X-Gm-Gg: ASbGncsWU0cvqWmzGyp2xGgJ+gXeQMHyu/WjmuJRa69LeDQUUtw/FMWkTafNKU5apqV ib8KCOrgdr3lYE7cWMIrVnS3oryeCRBYRIpqd/E/25ps6eJPlgb9xxpIsNMb+87+UMiYg5mmpgd +Xv8u1vMHcWuv7/QXDQ4DCLngoQI28JjJZmfZnPePXSodhG/liOzGF2RkT7scz3DLVpUhPexibX +350fQdoUc9Oo9f18CLs1rAZz6UKGVO4gKjr2v5RBRzDbfLZ+NGyBckfVAHGPvNrQL1tmESCuD5 lcyVZoSl/0DvzKe1eatepiOdnqoKu0EpT8sm/NObX9gM8/qS4HOZlua1j2yB0azXq5dpvE9Byfe 4vdqIE4tnU1M5DDSO8U+2BXOPtfUW6YWAGg== X-Google-Smtp-Source: AGHT+IFt+jAuwZmgoKT1RiQF+kj0FR8UU7YL3V14hPMpMmBPvbwYtZIzf4vHPonAarMjK9TcaNg3/A== X-Received: by 2002:a05:600c:3b28:b0:459:d46a:ee3d with SMTP id 5b1f17b1804b1-45b872e711emr80758545e9.2.1756819376326; Tue, 02 Sep 2025 06:22:56 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:c207:b600:978:f6fa:583e:b091]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b945332adsm44452155e9.4.2025.09.02.06.22.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Sep 2025 06:22:55 -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 v3 1/9] crypto: sun8i-ce - remove channel timeout field Date: Tue, 2 Sep 2025 16:21:26 +0300 Message-ID: <20250902132134.3287515-2-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> References: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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; } =20 - chan->timeout =3D areq->cryptlen; rctx->nr_sgs =3D ns; rctx->nr_sgd =3D nd; return 0; diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c b/drivers/cr= ypto/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 fl= ow, const char *name) mutex_unlock(&ce->mlock); =20 wait_for_completion_interruptible_timeout(&ce->chanlist[flow].complete, - msecs_to_jiffies(ce->chanlist[flow].timeout)); + msecs_to_jiffies(CE_DMA_TIMEOUT_MS)); =20 if (ce->chanlist[flow].status =3D=3D 0) { - dev_err(ce->dev, "DMA timeout for %s (tm=3D%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 =3D -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/cr= ypto/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, voi= d *breq) else cet->t_dlen =3D cpu_to_le32(areq->nbytes / 4 + j); =20 - chan->timeout =3D areq->nbytes; - err =3D sun8i_ce_run_task(ce, flow, crypto_ahash_alg_name(tfm)); =20 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/cr= ypto/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, cons= t u8 *src, =20 cet->t_dst[0].addr =3D desc_addr_val_le32(ce, dma_dst); cet->t_dst[0].len =3D cpu_to_le32(todo / 4); - ce->chanlist[flow].timeout =3D 2000; =20 err =3D 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/cr= ypto/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 *da= ta, size_t max, bool wa =20 cet->t_dst[0].addr =3D desc_addr_val_le32(ce, dma_dst); cet->t_dst[0].len =3D cpu_to_le32(todo / 4); - ce->chanlist[flow].timeout =3D todo; =20 err =3D 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 =20 #define CE_MAX_CLOCKS 4 +#define CE_DMA_TIMEOUT_MS 3000 =20 #define MAXFLOW 4 =20 @@ -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; --=20 2.50.0 From nobody Fri Oct 3 10:11:28 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 94BF33054D2; Tue, 2 Sep 2025 13:22:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819382; cv=none; b=ccrAlGpcYeUaG4GIEPWWLnQOdUsNR0UOGJmLUGk69EypmeirFWPKVXTyv98HqtsU+7qGEaGkvlVRF58utXHKIul9VnSQDIYsdH4u/J2mJfQiDK+N7TdavAoGn+HWVlDgwRJlPbmW9ZpqnggJnF4sxQrsTCUZo7cyW+rLjltek5U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819382; c=relaxed/simple; bh=kyASvvV0C6502P156s4uvhgiJ2anCkqmkQU+DPnmJLM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dyGrOCZEt4yte6Da1aCpAOW4MY8P9zN+3tYCEE60ZUO86HVuVXz886SbsfcZpYe9i34WNKB61y8a9+vmZ6Qk/HAwwCbD5XUBPpaIWyv6IK4uRkMBRKiqpZnxMYi5artPTxMkP7sLQlmnygGYMBZazCp1FNRnh9J+kQNU6S4o8zA= 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=FqAiCLK9; arc=none smtp.client-ip=209.85.128.54 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="FqAiCLK9" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-45b7d485173so33757285e9.0; Tue, 02 Sep 2025 06:22:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756819378; x=1757424178; darn=vger.kernel.org; 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=FqAiCLK9mSUUf/fAPhJRKPgFIreIYu0YjhufTJOWE33BpF4IoxYdi6DeyfzEj3NjZw oSREHxovf5fob47z8jrbY1F6V2BO18fy1xGPCfR/mH5zwo/0F2JV7aqzP2bdd7Mn4FTr U0r3uuxgg/E/o8O0UfLEd5dZRgP2aiDUgkCQbL/+fxBAM2sOMW5obFkIdQYDUfh+xNl/ z7dJYqqLrrZX1+xTGcdZuWa9cQLIhlwedgB14gbOm30QD9Ox134vTClr9BGzMgt9xWcn 1Bc1BJ4zCQcxrTEbxMhYZzAcAAUCiJpxrM+9kqpjayvVC5PEQKtWcFdqPvQqmEdLXOHi kKFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756819378; x=1757424178; 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=drz1/VQFKxXWMBJIsvWRB1Z0EgWItRMlDROB0WILHiUFclKr/db5yRL+jkHwe720+H zGBGVL0XMoVgDpQucrmC/fOtYUVYKjZS+na/ppFF6fWr+DsPbvsRiGsqD6P9BiAWik19 lCB+uPnlpvIR8PQR42p2tov4lb7AmW7XppJ0EHax9lXKLiaglbb0cHiJd9Y+zLEyoezz BQUuK5bKo99tIrEr5rJKhSSpvsC86aMADdO/Ax7ZZtWmMKGr0dHJ5aJcgsToroT8yGCy kdmsgVEnVX3ZlFR1RP7DrDjPBIy4u8COs7o3vdJ93eOkiPOlLvSrioNpPmYce0gtgH7M l4hQ== X-Forwarded-Encrypted: i=1; AJvYcCUpJRQZr4RXyCDv5/xBWAxjWUyAU+KfT6WPwSXHZE4rvyh1r615kjkmjQ5oB7SItugkqbOqg6lgcrZmoN6F@vger.kernel.org, AJvYcCW9PqwTtN/veYfsTLz71ARX5hEeA8sJMco2hByuPJ7MeT3chBNTUuZsvhmlthV5odeMcpJwUbmQe3K46y8=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9yfgNTJ1gtulMh1xVXntWQ7NTPe/ltfKiFVrtErP2bD4sHLbb y4jw/AHw4/LTVWusupFw1ut2lbAIxTeBq2jYO3PzGXNtVp+FhzfZCpbo X-Gm-Gg: ASbGncs06xyK18sTC94X0C5rWgesjf0crsfhfRCWtBC/O6TXUgrL4Qpa7tlsz+Dw7wd T18WuSDuOUp7rQi8mOqysgBE6+PoJpxQbE633PWl45GJciHwy9Tuf6vClJaitlskrkU2ovpGrms PXQ3V2TMLJNrgupKktJD1bQH07tIAkOIDirdwTyhbhShmdqPVlz2OUlBPBuuNKjdcfKdrRVvAGu 4Eb4EY37cW9manvcYeQgjD+oUGemQQxeC8ZUZyUGRGVQ10GvdIjnF4Uxez/un6aoHhm/LHeM8Lj 45uJ33mAmid5aEbfoZ/uWJSSRFO0RgTLM3tYC+Z5Z0cxTHU3Cd0PVTXCtpDU+Cpc19jHtJXU3P7 kNAXMRBD4KH13GZRApaoB6vUF/95MDoju1w== X-Google-Smtp-Source: AGHT+IHcyDVYiBnpcbLNKDERC0dfFteGZiJ+qGt3KiUljAkJChMcYHaPXwrQyaik6ZY9zKUEaa9wZw== X-Received: by 2002:a05:600c:4c06:b0:45c:4470:270a with SMTP id 5b1f17b1804b1-45c447028b8mr66195e9.9.1756819377579; Tue, 02 Sep 2025 06:22:57 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:c207:b600:978:f6fa:583e:b091]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b945332adsm44452155e9.4.2025.09.02.06.22.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Sep 2025 06:22:57 -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 v3 2/9] crypto: sun8i-ce - remove boilerplate in sun8i_ce_hash_digest() Date: Tue, 2 Sep 2025 16:21:27 +0300 Message-ID: <20250902132134.3287515-3-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> References: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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/cr= ypto/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 =3D crypto_ahash_reqtfm(areq); - struct ahash_alg *alg =3D __crypto_ahash_alg(tfm->base.__crt_alg); + struct sun8i_ce_hash_tfm_ctx *ctx =3D crypto_ahash_ctx(tfm); struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx(areq); - struct sun8i_ce_alg_template *algt; - struct sun8i_ce_dev *ce; + struct sun8i_ce_dev *ce =3D ctx->ce; struct crypto_engine *engine; int e; =20 if (sun8i_ce_hash_need_fallback(areq)) return sun8i_ce_hash_digest_fb(areq); =20 - algt =3D container_of(alg, struct sun8i_ce_alg_template, alg.hash.base); - ce =3D algt->ce; - e =3D sun8i_ce_get_engine_number(ce); rctx->flow =3D e; engine =3D ce->chanlist[e].engine; --=20 2.50.0 From nobody Fri Oct 3 10:11:28 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.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 A90A2307AD9; Tue, 2 Sep 2025 13:23:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819382; cv=none; b=fbakiIRQfSTb6Qs2kps0NJIfxrYeyFByx7yq8qesydsOXE+oQN+q4hBvVuLeWRChtcU6DQhKL6qDudy7Y6X4ksVIXahWDLioQLAkkdgR69FHMdQZbwTIVvMSTVZdHf1C44loroRYvxgB+87ePd9A4tV3j7/TSHQcYW2bz34jkhs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819382; c=relaxed/simple; bh=bsrtN/UNG9iIkOTFtbf/aBs98lsRgQ3mXT6PfL4G5aE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rOvW11vfMprElTNdPf7g0/pH1RzXm4NfZAga3s/juyVToghn3mqOfbTQ5R68A0h0JugbLnjbYgQMRT92DmZ8XNts+aIcPhEe27jE2kGqEUlUINkeKZ9NCou36PosLD2sit7u8SoDplsqy5fVCmecAXgf21A0CR+uspL9wdoSZ2o= 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=Iyc8CGur; arc=none smtp.client-ip=209.85.128.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="Iyc8CGur" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-45b9853e630so6923235e9.0; Tue, 02 Sep 2025 06:23:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756819379; x=1757424179; darn=vger.kernel.org; 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=Iyc8CGuroWsrMSaMLQhZ5TaIC7kdOWeM1BzXtA0KMuXkgWknQuUMJ3Ot9tFnMEbhje ifDT5yh2jcC/rhboUSdZDKkFocyEtH5/P6Ra0Ok2xiZAR1lnadPdnlg6YaXD1V6eQiXE hFpNxYf5Lf64cvDKwKXKOzLDPu0K5jPSOlaX3XrQfwGPr4yduORaHGGlzmhXx2e285ip Rle9bfiM/lKHNpoBOr0ljNsV0AlMinUCVvJYGCwZC+/9ZC3UJV23Avhapt+wkNkjqXCH Cu1JGd3NUtMFz6V01PvZuhGGeBVsox5LO4Tc+wlR6Zv7A+18HyaZkgwtcF87sXf6fx4/ 4jLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756819379; x=1757424179; 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=tkeEcwPBtlV0y9PzEIk5lgZi51D+zqisBxgA938ZCvb4NazzLY2nC30TG/K8/687Iq cK7byAdJzLeqkFRVMBfHckGuonhsChvcIKYWpJoylauyFjrvGxwQfBsnJE1qOpXChG7+ fAhU3q2f1PNK7+hzUkiKtN49JMeOOiiw+ScPoakNqY2WY7aVgx5GsTgldLathFVCPqN0 9+/iAXMTxnxKG99wLA7Uw7MGERw1NoVGxAYXLUx9ukXIJuxQuu+Qz2lJvr0GWlt9idlP IyZHk5K/B356bd2w6wTBszdl4aUisQj9ghqoeJrfDwHaUCLKKkX10JnidqUHeD8QAiJk zLnQ== X-Forwarded-Encrypted: i=1; AJvYcCUmZgYFqXVNYFdtgyzm7iTQHU60f3XecY5qG1cgP0U2wFIOqkXdi94n7rjc+pH7TZPdiQ9Jy6+BvHkVOM8=@vger.kernel.org, AJvYcCXcnMTlBgkhnelRJeQP6JE/v3DXcOkFNPmbs9t82rXcUmaDhk88fIcxxa92Y1SHuKQsxEkrA4ZAbrn8QCqd@vger.kernel.org X-Gm-Message-State: AOJu0YxB/dB+mhjFLKhr9CKjK+LvQHYWk+nbiosPlc/WvO3plxRsCpow ZyzsH+PrjFQKDemr7710aCWRa/++ClXrXXm53y3h+WEDSivQaGxRQRGM X-Gm-Gg: ASbGncuw6FXx9Dl8N+DnFE6KnevBl8lRhe0ufyLlNJD+17V1n8ValND2b2Dm2KhBOy2 f8scMfI3BKNBUjDzzd5377jzVTZgL3ryRONMnf9cJzp43hfpncp8KMCGN3sXO9GF3ZzZvUHDEno kBgPgDuiGWH/qTV893NLQqTPL9mp535UP8ePmXmxd+BArLKPg9TLWSy8aKqcbU/g/JpOLRppDX5 iAEWmRsHdLzwNA3S0q0RxE/A5owUhVu1jL10XUhy+fHwhZ6b4MkquWW/8ADXIvpqb/o15BDj6CG dy9DZsld9UsCbUdugVhCHnyGlnCnRI801/9lEKy2AJnQt7bCMGqKBW4hFgP4l9KCp9RgrTt7ls8 5sp0BUyLJ2e3OCwSqM7hoO8zLvDOQzRCBUw== X-Google-Smtp-Source: AGHT+IFCIE32gRqXCK2cxP5jJ0umVullIbqtBAeMOiAN/1dBA/vOuBTNpHuGFamrKvDjEfmo1r30gg== X-Received: by 2002:a05:600c:1e87:b0:45b:47e1:f5fe with SMTP id 5b1f17b1804b1-45b855c0d3dmr80790615e9.34.1756819378791; Tue, 02 Sep 2025 06:22:58 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:c207:b600:978:f6fa:583e:b091]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b945332adsm44452155e9.4.2025.09.02.06.22.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Sep 2025 06:22:58 -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 v3 3/9] crypto: sun8i-ce - remove unnecessary __maybe_unused annotations Date: Tue, 2 Sep 2025 16:21:28 +0300 Message-ID: <20250902132134.3287515-4-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> References: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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_req= uest *areq) =20 if (IS_ENABLED(CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG)) { struct skcipher_alg *alg =3D crypto_skcipher_alg(tfm); - struct sun8i_ce_alg_template *algt __maybe_unused; + struct sun8i_ce_alg_template *algt; =20 algt =3D 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/cr= ypto/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 *pde= v) pm_runtime_put_sync(ce->dev); =20 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; =20 /* Ignore error of debugfs */ diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c b/drivers/cr= ypto/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 =3D crypto_ahash_alg(tfm); =20 algt =3D container_of(alg, struct sun8i_ce_alg_template, --=20 2.50.0 From nobody Fri Oct 3 10:11:28 2025 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 1A5923090FD; Tue, 2 Sep 2025 13:23:01 +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=1756819384; cv=none; b=nh1QbY58ywZHl14fZFnI6+0zGhoxxkSAPDqDuNBKUcpxijoTtQAaV6haNxsF7g+TEP2txp88Ug3lKcThHm4cC/mdH/kCZidFMFJS+FSKu05cEy0o9FYXdaEJ3aL1faPIezOPq0iQngmp6vBnAUfVCTIMvWXBOmrtJm+X1slHiWU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819384; c=relaxed/simple; bh=NuYFEKMaNu1hQjN2Md5xNm1r7h0CNUWlhKkPh3zc5MU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GSxKG7FXTnlNRDcoSggs5W/52ug1vJpvSpJXidDu6w2NvD2bnzimidROeyAAG46e90lLGA784kGWdUJRn4EXkgSYOUZN63BSWhT06JvMM9WaBxdwwGerICLRTBdLtIy2yj0ICGXRSTjwYWJZ6npaCS9JuXbpEXFMVJkQply3lYE= 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=F30gZqHu; 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="F30gZqHu" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-45b82a21e6bso25412425e9.2; Tue, 02 Sep 2025 06:23:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756819380; x=1757424180; darn=vger.kernel.org; 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=F30gZqHuULH4MaUitG25AfyQTZaZi7OS5i+/GHn2tfVDzael5+Pb2wk91yqK9DyQuf QzReF9plrgcT61Cl5HfNFFi+KA0KvopbFgeAOM02ysR/WhlmGvJNNMvfZpdqSvj5r+ND Y0IAEH6WrHHew0TdYINySSK6VcVLapRIkg8KrCQI4WOTufpNpLAdiZK8RHoTx4REz5jW EDphb9ubj8bLqyBmMiOFDrUqOi/cS+ZKUoKQgnCnp4RiMS2pDcJgaeedAMwx0zBoouvX Q6vAukeuplcdwYGiclWPCzhxz2Hxk9QDZ0wsqTTx3atDCRU6qrIOt7y0d8XAPMCp7bDK nxwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756819380; x=1757424180; 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=HIv3PmSY9SOG/d79lsbGfPxwcYAM//rLKKSd9uadwxsjBbbzAA/5p+gKuPNJF4ffoq HhzTQRsR+vECnONxRKClt6FXalFJq+B95pjORKbO/M4HkJz0WyK8Di2OxizYhKkzpuqb IMtN4unzS5XvHvL+FoP/7aYqic9lbRVzzu2vOcitYwy8axCRxLUjX1J9A/porvo2L838 rFvKfkhCOizdjx8VhJ1KdsTmT4LFhoQKvyNtvCb7ftvFzf6kqDCeSdHAdjQsY1TY4GV1 Og+jZ4i2SNGp3eDfCac4T7W7GHwEDuA+dp6EYJ/cXeM/sZ/PFtK5RlqfC3KqYv92YeVp uLKg== X-Forwarded-Encrypted: i=1; AJvYcCX+R5A2N6OUWkyYfsK0Kgb1HWxutt6Gh6igpJS0P+j9MmmNyvRu/k50laPk2usnENqLL8QuDl43Zr9XZDk=@vger.kernel.org, AJvYcCXnM/9KvJfKpvI/4K3LG4ebDwWqMbytC847B1QexHDw6OIsXNTtjAwWlep50L2u41NBdsrPth5oGbpgqmTl@vger.kernel.org X-Gm-Message-State: AOJu0YyhhQnRcf75ZvXcKA8CZ2hpwzls4iYl9qBwUHESNKuGf1lPOECY HBSs4qEEunZxMNdEWCDYs+sdJLZnDZJ3fXQDgQcLiI0Bs540ffaD9+O/ X-Gm-Gg: ASbGncuXDdnWhxaEfAQ/JqTLopqE/8tNfWDwiBWnJzts1NiHRxB+r/jbjvM45yLhy8c x5K5koPD88CrhVm4Qo1uNFnV+1+cbp6cU+mCi+opa7RVVXFxjpIMxXmEkm+lF0JVWBciUSB63hq UnZkOrJGF1R76EdYE9TLFFtsQ2YXP0+VBj9cQHpkDMOIgE6t/0gHMS6afjngTqIjaF14q+aY7zT vKRQYbhdgQTC7oPoUqfNRac0c1xnUU4XqK/I+QGKQJy+nH3g/wblOFI0VTJRy9mVZ3cwPXrRC6x lcqiyj8ojO1i+Vh1YahwOeNWGrW8sxnnktohJfNj9/w1cdJOS6UhtMPLZkpb+zUcHoqU7AGpmMl 0y+zm+vku1vxWE/YoTuJGb/jCkinqWa+NX+EUIvG8VJCi X-Google-Smtp-Source: AGHT+IFVMpRzBsmi4JxaTIrSD5qdn6LF3a/HZb80zXbTgRnBpIOBBAGYwh5jd/sYemoWSplteKfu3A== X-Received: by 2002:a05:600c:3b28:b0:456:201a:99f with SMTP id 5b1f17b1804b1-45b8730d443mr85114285e9.18.1756819380078; Tue, 02 Sep 2025 06:23:00 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:c207:b600:978:f6fa:583e:b091]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b945332adsm44452155e9.4.2025.09.02.06.22.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Sep 2025 06:22:59 -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 v3 4/9] crypto: sun8i-ce - add a new function for dumping task descriptors Date: Tue, 2 Sep 2025 16:21:29 +0300 Message-ID: <20250902132134.3287515-5-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> References: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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/cr= ypto/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 =3D { .trng =3D CE_ID_NOTSUPP, }; =20 +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 =3D 0; - struct ce_task *cet =3D ce->chanlist[flow].tl; =20 #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 =3D -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 &=3D 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 =3D -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 &=3D 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 =3D -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"); --=20 2.50.0 From nobody Fri Oct 3 10:11:28 2025 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 4BF0C30AAAF; Tue, 2 Sep 2025 13:23:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819386; cv=none; b=d1Ze5pC1Lc9J1iPDjQBpL6VscwNqm0xmnZbEzyb+c56X51dnq/atpK6nZaIUIPft57nCWp0RrjZQg+vLZC4kSqxA5g9UwQU6GVH+HonnYgoYyOuQ7XDot3HX63ob6yzY+HSXicQWeOhafPYH+lvtyhrPEOF67nQXrJawLXuZbp4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819386; c=relaxed/simple; bh=Tv+uPkupmNEYL/Dftci6+vTNcsCph7gyS6HdR98JrGQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WbkSItQKtlKz673KUYk/x1ZUD88Hmtje7853l/5mkQmIhhm0KatJdGEyBWwAjQzIOf9M3cZqZzIvPbIhw/hdcPeqSktio29yMKkcA0jDg3AaoCYD/bVwh6tnAKeXpxozF1pY1fz3bgYND/KbSPvcWG9VYa/H79GAywqA9BKdf1E= 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=YpLH1FEE; arc=none smtp.client-ip=209.85.128.46 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="YpLH1FEE" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-45b8b7ac427so13654705e9.2; Tue, 02 Sep 2025 06:23:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756819382; x=1757424182; darn=vger.kernel.org; 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=DtsBsRfxsCildLBhMXrk/1mukmK+Bo0TNCGWMCSP/qs=; b=YpLH1FEEnZlx9wYpOq8N23MDY/ZruMvybUeqo85NgmF3IzKmbLqFqtER2YvKhN/XqH xlHepjP/ZTBFyXt2lEmjkOekMcXS2llgK58Jynj5UzLf2uZQ95pRrGk9mz5jUUzpDilS ngTBqkrnfwA/7I81FWBgecNO0E80MRwyZCT8DkGmvqG6/QpfiuAyRmujdPmACU7JWDXq /nawC2UG+D3Cp/X84Gfnj+6CCPNjWVHgY0gN9k6za9PcrN2ERoeOxlXNRXDiUxJI9Zf1 7MfQb0n1DpHVLgNNA7lNl/AE5TTlVB4sqy3jGQ2fvWRQ8bCDUkDPuPdr3emZ1cGJmKnu mUGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756819382; x=1757424182; 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=DtsBsRfxsCildLBhMXrk/1mukmK+Bo0TNCGWMCSP/qs=; b=FlVInj/0MKSaZk4WDi3hgmVaKciXWc23h8b9atTYWjgWpXpakRB5xUyHmjJEHzRnrJ jV5RmJmY6/kSvQlJETZWOKgu4vfuf0P5lToaxjNPZEi3oWEk7l6iDUCpeRSt5TslhPtc DuRR2MYpXjllBYGOC2DCo9vVf5oNJ3ZqgZb+295wpltHi2n3B6HMhiiDp0Mtd5HLmTle IYlZZDCrrT032+5TMagKAvwGrlA/7QNAEEmh5OhXJm+IadXe72xoJTnqsY/nESXAOIw/ f8QMaDQbvLGydJcrDiQv0K9XIBCHXIHaGA5bCte9DickxJJ9HcLEJkii2p4sztLX+SdH Aqjw== X-Forwarded-Encrypted: i=1; AJvYcCU/n/xM8RxYYGvdcSrauPMj/2nJ0aqZC+9RjYWSOFl3Y4SAty7HEx0yiprjn12D3+jo5kHGV2wZK82rcUlD@vger.kernel.org, AJvYcCXynrvHp7gR7Sp5xmEwEbSF5zPlLUDZQXNUD/WZ7MdANoYCDMJEnR84+6YfA+lhhxF26iWWeVoeuD66AHo=@vger.kernel.org X-Gm-Message-State: AOJu0YwyKZiE2MTEjaPJStIJWvN91TAdBNh4pF1Yi6S2AiY8bTGvPPmS 1OlaVc1juPd9x92KwCwYw5xsM6jAOLevuEpVM7CtuD5Zs5aipyIlUwhz7k1v0g== X-Gm-Gg: ASbGncuczEZoetk+xGpxTI7pULglyWjkgQ9Cr8YR4Zt6s9ZwFvA2sH1mCVkI5V8Pqiv Ens/yyezJ0/z3WvvcsDJhKeudHmyKdEcAuihr02DYoqVM9lvDzeE19XT2b4hGECbcaNfeTCq5+Z 5G5simvieZymZ2D/Hv+xFRn752Nylcwn/o9ud4W/4YqGYLPEI1nMSSk5K45UPMJvg0FP+rwQv14 pdLAoZnedjUfrh9la3P0HSx/Hxfei+1L2btohsi0tI3iXnLjFDqBPGEkkdznNcGKTmQtYcVSs5T wpk3u722lTtUuBCebqwn7hDPXnX0R+PwqrjDRtpFqCDwcWvZfc1cmARYzYMwVs9tAhMfKSn3kiR eGvvr3CpL9X1jUfkup5xMYpJVswC+xjQEJ/F6GMIKh9LV X-Google-Smtp-Source: AGHT+IETMOb0Rz6uokv2cCuXIze1UZwZd7stbSLwZ5/eUHfLJCESg1DUz9amO71j1f3f3X5J/fE/FA== X-Received: by 2002:a05:6000:2f87:b0:3d4:d572:b8eb with SMTP id ffacd0b85a97d-3d4d5820387mr7918018f8f.45.1756819381342; Tue, 02 Sep 2025 06:23:01 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:c207:b600:978:f6fa:583e:b091]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b945332adsm44452155e9.4.2025.09.02.06.23.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Sep 2025 06:23:01 -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 v3 5/9] crypto: sun8i-ce - move bounce_iv and backup_iv to request context Date: Tue, 2 Sep 2025 16:21:30 +0300 Message-ID: <20250902132134.3287515-6-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> References: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently, the iv buffers are allocated per flow during driver probe, which means that the buffers are shared by all requests. This works because the driver is not yet truly asynchronous, since it waits inside do_one_request() for the completion irq. However, the iv data is request-specific, so it should be part of the request context. Move iv buffers to request context. The bounce_iv buffer is aligned to sizeof(u32) to match the 'word address' requirement for the task descriptor's iv field. 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_engi= ne *engine, void *async_req if (areq->iv && ivsize > 0) { if (rctx->op_dir & CE_DECRYPTION) { offset =3D 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 =3D dma_map_single(ce->dev, chan->bounce_iv, ivsize, + memcpy(rctx->bounce_iv, areq->iv, ivsize); + rctx->addr_iv =3D 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_engi= ne *engine, void *async_req =20 offset =3D 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); } =20 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_e= ngine *engine, DMA_TO_DEVICE); offset =3D 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); } =20 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/cr= ypto/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 =3D -ENOMEM; goto error_engine; } - ce->chanlist[i].bounce_iv =3D devm_kmalloc(ce->dev, AES_BLOCK_SIZE, - GFP_KERNEL | GFP_DMA); - if (!ce->chanlist[i].bounce_iv) { - err =3D -ENOMEM; - goto error_engine; - } - ce->chanlist[i].backup_iv =3D devm_kmalloc(ce->dev, AES_BLOCK_SIZE, - GFP_KERNEL); - if (!ce->chanlist[i].backup_iv) { - err =3D -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..de3a096c476c 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] __aligned(sizeof(u32)); + u8 backup_iv[AES_BLOCK_SIZE]; struct skcipher_request fallback_req; // keep at the end }; =20 --=20 2.50.0 From nobody Fri Oct 3 10:11:28 2025 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 4BE8230AAA6; Tue, 2 Sep 2025 13:23:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819386; cv=none; b=V+b4ramq+yjm8LBDCrVTYAln3vTc4Qieq3T+gY6wKtlhTPwJy3xS965ZGHQNTnFgxcBVEcgqxA82pyHNSOOAaLx20VutBpsbfQqvSzFVz3qo8+qFEYklCHhP0mKW4oSkVH/HfEgIBow+Gm1HLBdbNkI8a7DV0QDI5FtxaxwWWPI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819386; c=relaxed/simple; bh=VLxVkCzDUptZN3MLV6XyYZWlwBVycUnPTFTRKmIikGY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tMVEyK8oq0mEhN/RIYNxHNjZmxs6L9U3wmJnnE1/Hn3tMRQ/QPpOksG2TXjIwBOCqJM1MwEGSGAITgELHLvhTCkkefMv5TBAz6pAElyfAgNx5MxRw5n/hDtByHJdpVdFGW2QoHupi02w6mfbD5kwBWtW218BwNiLkhdCn/kJvCU= 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=K+/J6H5v; arc=none smtp.client-ip=209.85.128.46 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="K+/J6H5v" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-45b83ae1734so23120275e9.0; Tue, 02 Sep 2025 06:23:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756819383; x=1757424183; darn=vger.kernel.org; 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=K+/J6H5vUIqP3Al1LFRB2L8yjsY5BjyiJNO9YGz5MXX6RvPLTj5n3GAqjVo41HT3m/ fJYbd9pm1JO7WWEe5OWU9ixXJGtEaCGbWjd8nosY4ZqK7g2vG5ViJaJZkcCn7r6zVHI8 e5TKoav98Os2E/y9DUTb0aFE48Ou0LZRX5bm+jlhxiytNivVLqSlCpj1mkXz4JmquO8P 3l/E2wb3LJLJVZwfskw2jYyXcLk7XOTv2gk4WAG25pw2YFj5ODTwWqJVgeirIlGkjZVv tZpfpEkZg5QtMHvD65VVZ8yeJxK80/XEtDjOnknNgiPWEZCbEiGWdFlnwba+ESiomAZ9 EtYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756819383; x=1757424183; 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=b/Ptk60R3MHtvZtAcXHjxJ8JRXyluVelXSiFtVtaVDri+SaBrQkXIodt19GxLeG1Zu MtZdEzIau8YO1W/BOD+pGi/IDl0fvW4PtzMDXOPA3slcdwTttD8jSC09xkjXnMBGwjFI bN3nLXTAYUOhAVZVlFCm16pprSE1P08OBMntuxD3Mt7zXEMHoDvNs155+9rDUG+RcMBU rFuVSMXGo0x5EdtHOm3UcfMhw8BbrqubnP7tyPSYDTd3CzhE05l28XgeP7Fm0HzVt0+Z aZhmbtue7PYWtkjgTUifntoytQeZ9wr6KYXt2hwkPwYEHbM+d/aWx8cjAx7gb6Yr6I0V +68Q== X-Forwarded-Encrypted: i=1; AJvYcCWxVfYl037Dv/1GYgtCtD87d4E/g2uWW8MO0cFwUtx1t0WK5ChjFCm4paKvk2E3gMKtgFCDIQz9f2bJCz8=@vger.kernel.org, AJvYcCXRMBANzxSQK2OEZC+h28SGEcNurp7PjxSroP4rJeYuwNAmOCJCi5zYzbR/rgU2SdiIKooi4O0pGohvjtpm@vger.kernel.org X-Gm-Message-State: AOJu0YwCKN4CCiJ0HOi1Ao4jZ2SkHkT9LTk4F96a5oNrZq9u6r3AYnn9 iRd3zLP4u+tn1kJm9vrBpd1FN6Zl8TNE/bLujzpP358WPouulcVyLbvN X-Gm-Gg: ASbGncuYCdHCx4NISMnKMi/c+Es0Bouv+kQZ9VncFD7hRJjUtR1ofzRJDdzgYZKWCs9 J9F9hPlH3UDScl9xyOzs6Uh1ZrNs4eRIM8BahsYHjNJcRx2UzCHz3cXGfwJuPOPFWv578gFXl93 1ZHBLvntQUtvEvAz6+AI5rFEYoky2UXg2SogY1uoAofkN68s0m9+UQMbAJq77B1auqIaHCeHkk5 +qgVFF5vHAC6eoVGZO1rnJH3JhnUS7uLioISvRWHs2ca8INx3eN1hHXu5NTzjcUHpQ9+OjssYt+ KHT+Lln1hbGjnvh0YuBQFB2QxZqCpASbROwEjC+v+QAPWP7sfpBVuy/ujEflZG/67eluzZ/JQ9N qxI/GbArJlBRQbd5mpDTWV0EJVZ053Nx+zA== X-Google-Smtp-Source: AGHT+IHVnaSqlqqL4i33vbnl8DxH3Zomz9ikQnMsjbbKikajW7iV7MsBCgP8xKySewSnOuFEhpUjVQ== X-Received: by 2002:a05:6000:1ace:b0:3cf:3fe7:2203 with SMTP id ffacd0b85a97d-3d1dd81d0a4mr8042987f8f.7.1756819382532; Tue, 02 Sep 2025 06:23:02 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:c207:b600:978:f6fa:583e:b091]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b945332adsm44452155e9.4.2025.09.02.06.23.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Sep 2025 06:23: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 v3 6/9] crypto: sun8i-ce - fold sun8i_ce_cipher_run() into sun8i_ce_cipher_do_one() Date: Tue, 2 Sep 2025 16:21:31 +0300 Message-ID: <20250902132134.3287515-7-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> References: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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_e= ngine *engine, dma_unmap_single(ce->dev, rctx->addr_key, op->keylen, DMA_TO_DEVICE); } =20 -static void sun8i_ce_cipher_run(struct crypto_engine *engine, void *areq) -{ - struct skcipher_request *breq =3D container_of(areq, struct skcipher_requ= est, base); - struct crypto_skcipher *tfm =3D crypto_skcipher_reqtfm(breq); - struct sun8i_cipher_tfm_ctx *op =3D crypto_skcipher_ctx(tfm); - struct sun8i_ce_dev *ce =3D op->ce; - struct sun8i_cipher_req_ctx *rctx =3D skcipher_request_ctx(breq); - int flow, err; - - flow =3D rctx->flow; - err =3D 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 =3D sun8i_ce_cipher_prepare(engine, areq); + struct skcipher_request *req =3D skcipher_request_cast(areq); + struct sun8i_cipher_req_ctx *rctx =3D skcipher_request_ctx(req); + struct crypto_skcipher *tfm =3D crypto_skcipher_reqtfm(req); + struct sun8i_cipher_tfm_ctx *ctx =3D crypto_skcipher_ctx(tfm); + struct sun8i_ce_dev *ce =3D ctx->ce; + int err; =20 + err =3D sun8i_ce_cipher_prepare(engine, areq); if (err) return err; =20 - sun8i_ce_cipher_run(engine, areq); + err =3D 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; } =20 --=20 2.50.0 From nobody Fri Oct 3 10:11:28 2025 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 CD5B530BF79; Tue, 2 Sep 2025 13:23:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819387; cv=none; b=Oi8Gq+58J+KPh86tPs+zfDqzMBdFtdvycqE5rBx26FxTVdsVmmAfStiFII0TYQkFCQMlaHOgK/DuOskx/UWA+oV/7LwmiFvIDA7S/0t6KDktPVPaMw8NJ65dYX5FOhTtud0bdwjvDraYh7nqLfxQTSQw8BQk54QLseh6fL7qxtU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819387; c=relaxed/simple; bh=f6FBfJ2O2GQ3lk7rvtQvn1UblRaOsewFE81eXurpKa8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RBgtfOxfRmdEsmAF1T4MjLAdLqelfoMwYmdpH42KjLrsYmKdD7qUxdR5Nq3DsdCpf0vGA7cF60qYaEaOF0mXgDqopJKZ/nrX/cR7PT0PtsE6bPGhrM33RzpgFhaXPmzA4Jis4eQu1E+2heIxmqyxSIsUZfbpngC9L92pjYEaYY0= 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=Y16q9osW; arc=none smtp.client-ip=209.85.128.45 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="Y16q9osW" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-45b83ae1734so23120575e9.0; Tue, 02 Sep 2025 06:23:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756819384; x=1757424184; darn=vger.kernel.org; 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=Y16q9osW+t06WINQRn5VwXXVIZm/95JnGiFMLZJ7BJeE/Kw8y+VEGSoDT67W17Rdzw 9aeEOtNd7o1q++axggKESM4+dp0HVHGueE7kuAZFZq/usTLK+FYRamsab9eQzH8rkHEH X9chFS+ilE5pA21XCJlJwzLSjIw20rN9s/5uCsCdlLKUtlynWB0tBBA/S3hxexyCwtlI LprMbwhmLRz0w81GNrN2CuMp0vwX7WtURzaK1dMQwYHv34yn9Obbnwn6KXHFpsYPZjgu p9nl2DBUl2hqh9Sjv6AgEXyB9g6UC0nL2FdxVlDu5QCXN4soPLMMtkfUwPuEBNjWzZ/Y rz5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756819384; x=1757424184; 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=wH8D1Z6tJdeGg2RqvYqquWfBG0EchJC/4SdrDRk0NJr78TSFQLUFKWXskvMECjiPQk VNJUEi2tsrkylX7RmbllQyTeZCzBIGGzZYYqchWcuuIjUH2M3E1XIQ5yMJ423HOfZpPq Gy8zt5V9QMHoa1Zg0qDzjw0G7taMqOeB4qrW7gFD7zTiHauHzCHRzVRnpuKqViy8OT7o UOc9SR3VNQocRrCUhdIzu9U92P8XkxjJKeEsPJfaG6KLcSEfdZ4wSBxAYOm7gFLlKj49 05yz4JziD7ZpFyZLmbftXDv3kjXAFU49oXHcH9e9g6avfdrxNPrbFWhAG0lGpJHLpd7H cJpw== X-Forwarded-Encrypted: i=1; AJvYcCUlq2ksSLL+MH9zRFBibKfVBrNLmdYC0JAy+yv2q+7jjLZAgOFBJ1pp+mh62yqom/wRoZ0Xm3hoVLyX18Eq@vger.kernel.org, AJvYcCWdXs68dbvEQRIcPD2PlSCzbE77dm9O0qvlQ9jzk86SHoS6UkqjFa6pf/700JqwR+9gohU+um3GCHnuBkY=@vger.kernel.org X-Gm-Message-State: AOJu0YyWQ7JKgSDyb2AwDFvTEnRyWCuvy5RPWwUbKD8ndyITNwYbfQSw Mw4r8nE3OqoD7CQ3mVJ97JzmJ7BVVroyaYdIqbj1czhMz6s4R5oNLTUS X-Gm-Gg: ASbGnct2jXLEjU3tTsL9W6Nz/WkTXYM2lYyKuTSXzVZ0bA/KXSL0nLXpKp0GRP3JCqv NiUj61v+akBnh9+hmn7Jsk8OFD6ZCaH8Q3eOwPYgaQPbtT1BUvFXtRuWdGVM032IPqOAtXzRymW Cr3nZRyTtQeaCdFOUsNU3G9mLsrjN5jU06Y3U+fGG8Hpr8SOtMqQjrN6pTv+ZZnWsefO58CnSMJ 91dgTDb5VlhuvysHTsns51R1nRPh08/m8ovwziRXNi3XQqNWwwub9FT9DsE+YdBfnknMm0NoRNn RZzi3yNtg4O2ZXtVAbfbrPjxnxK9OIfB/YIaazU18SC5WoG7fUyHCOHC74aqSb9UTfDW/r64KgW /sq1H/ry+sa2CzsaMC6FaAjRbetSKd5CHjQ== X-Google-Smtp-Source: AGHT+IHcOusuOZbxetLEUJAQpcS9Gkujl1YTX1DeE+tYFW/iEjj3AZ0hRgYLZeeDGlNURGNUHbKE/g== X-Received: by 2002:a05:600c:1f1a:b0:456:1560:7c5f with SMTP id 5b1f17b1804b1-45b8554f88fmr83630355e9.14.1756819383829; Tue, 02 Sep 2025 06:23:03 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:c207:b600:978:f6fa:583e:b091]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b945332adsm44452155e9.4.2025.09.02.06.23.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Sep 2025 06:23: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 v3 7/9] crypto: sun8i-ce - pass task descriptor to cipher prepare/unprepare Date: Tue, 2 Sep 2025 16:21:32 +0300 Message-ID: <20250902132134.3287515-8-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> References: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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_r= equest *areq) return err; } =20 -static int sun8i_ce_cipher_prepare(struct crypto_engine *engine, void *asy= nc_req) +static int sun8i_ce_cipher_prepare(struct skcipher_request *areq, + struct ce_task *cet) { - struct skcipher_request *areq =3D container_of(async_req, struct skcipher= _request, base); struct crypto_skcipher *tfm =3D crypto_skcipher_reqtfm(areq); struct sun8i_cipher_tfm_ctx *op =3D crypto_skcipher_ctx(tfm); struct sun8i_ce_dev *ce =3D op->ce; struct sun8i_cipher_req_ctx *rctx =3D skcipher_request_ctx(areq); struct skcipher_alg *alg =3D 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 =3D 0; int nr_sgd =3D 0; int err =3D 0; @@ -163,14 +161,9 @@ static int sun8i_ce_cipher_prepare(struct crypto_engin= e *engine, void *async_req if (IS_ENABLED(CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG)) algt->stat_req++; =20 - flow =3D rctx->flow; - - chan =3D &ce->chanlist[flow]; - - cet =3D chan->tl; memset(cet, 0, sizeof(struct ce_task)); =20 - cet->t_id =3D cpu_to_le32(flow); + cet->t_id =3D cpu_to_le32(rctx->flow); common =3D ce->variant->alg_cipher[algt->ce_algo_id]; common |=3D rctx->op_dir | CE_COMM_INT; cet->t_common_ctl =3D cpu_to_le32(common); @@ -314,24 +307,17 @@ static int sun8i_ce_cipher_prepare(struct crypto_engi= ne *engine, void *async_req return err; } =20 -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 =3D container_of(async_req, struct skcipher= _request, base); struct crypto_skcipher *tfm =3D crypto_skcipher_reqtfm(areq); struct sun8i_cipher_tfm_ctx *op =3D crypto_skcipher_ctx(tfm); struct sun8i_ce_dev *ce =3D op->ce; struct sun8i_cipher_req_ctx *rctx =3D skcipher_request_ctx(areq); - struct sun8i_ce_flow *chan; - struct ce_task *cet; unsigned int ivsize, offset; int nr_sgs =3D rctx->nr_sgs; int nr_sgd =3D rctx->nr_sgd; - int flow; =20 - flow =3D rctx->flow; - chan =3D &ce->chanlist[flow]; - cet =3D chan->tl; ivsize =3D crypto_skcipher_ivsize(tfm); =20 if (areq->src =3D=3D areq->dst) { @@ -367,16 +353,19 @@ int sun8i_ce_cipher_do_one(struct crypto_engine *engi= ne, void *areq) struct crypto_skcipher *tfm =3D crypto_skcipher_reqtfm(req); struct sun8i_cipher_tfm_ctx *ctx =3D crypto_skcipher_ctx(tfm); struct sun8i_ce_dev *ce =3D ctx->ce; + struct sun8i_ce_flow *chan; int err; =20 - err =3D sun8i_ce_cipher_prepare(engine, areq); + chan =3D &ce->chanlist[rctx->flow]; + + err =3D sun8i_ce_cipher_prepare(req, chan->tl); if (err) return err; =20 err =3D sun8i_ce_run_task(ce, rctx->flow, crypto_tfm_alg_name(req->base.tfm)); =20 - sun8i_ce_cipher_unprepare(engine, areq); + sun8i_ce_cipher_unprepare(req, chan->tl); =20 local_bh_disable(); crypto_finalize_skcipher_request(engine, req, err); --=20 2.50.0 From nobody Fri Oct 3 10:11:28 2025 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 08E0630DD23; Tue, 2 Sep 2025 13:23:06 +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=1756819389; cv=none; b=P/T1CxzaPNF+V2tTd104FkU1w75ge4fBnrOoDxkOrWYCkL8lqIvNmpL8Sx8srH6+lf1fc/pe0sZcJfEnHm8zUtJS5WdebWrNb48LOJI54CWWtZ1L3DERLibAJzVpTjE+b7ZIHgmZZo5nx+CE9puLWeGuzaHjezk4nkmJBMMtPtw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819389; c=relaxed/simple; bh=iUJf2ME5JPBKyPRHHiEIhLOkEFHThzgikx7ZYRJssN4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j6OCtxn9+FC0PY/aKYLbxc6d3OopgEkf8ZQIwSzaiQgLaXrffK4NTfM+RAbrkqPZHecb0NRmhhhnYhr50IH7dp39oL9CPi+V0XUaIRJJh17Mjv2D05Nnx1lrba8ubUqHLbwUc5pJZZre+2Pq5p8ncbRywxG4yzf69D8mGm0F3LQ= 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=b+jjLbPo; 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="b+jjLbPo" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-45b9853e630so6924575e9.0; Tue, 02 Sep 2025 06:23:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756819385; x=1757424185; darn=vger.kernel.org; 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=Brl2BLRMH8dw6ZRRE0AMqdemVZpKH9vXc+oBuQmErPs=; b=b+jjLbPoLNJZ99tTUf2PPCMlA9F1TYpWqj4jrDGoKfitF7y3BZfzCWYlitFqf+cf5h PuSX4PoEW7yFuKDD5kLCzDZmqvnx23JiB3b8UWt7g2omq6GzMzDdO6Wkl0KwV5gANjRZ RVom43KsggC2uxpdQt5yj0BlD0wqL+PGQwgvdP31txilisaY4GHU1Dl3QaAXPosHqKUr SrnwXPg9pl3nnIU0A7ad0yCt3FGCZJrufX30+AdAKaEvHM9GUU7vHg3+9ZOszLfFRcJy CCaHJp0y2LydmrUWYHQYNhw6dEiNSpX7wZkPin+/l0eAHeTMXkZkwtMLcieG5QbAnsC/ IFMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756819385; x=1757424185; 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=Brl2BLRMH8dw6ZRRE0AMqdemVZpKH9vXc+oBuQmErPs=; b=Men8kxsX1vB5ubpHXQu5lVgvzVgMAxjXpphEkMMKZSG7rIUwlGGYp6uBl809sEwFA1 bt9JY8dKNcvKr5nE6goiHBrIpUXYTxvpDpX6FGRVO3/hmXuIhOjFPCIS3l/wQBHR1vUM a2aNXfZK1BumPWwbTXLZggeWs7gfN1jqNKyM+DhVXSO/bDCMh63qGyueN/owcCAPyGML yo7iChgsWmuJ3AFYkfDW90MoCo8MQPoAGrFl4BU59UqO+cxWhZw/nY6/jkB3AkI6fBaG Wx81O6yUq3cnVB39qKGuS/CiQ61o/t6FLz4jPuZC5lhLuRtjEyaptQ7WtHYwbFqvjdDH 4Vbw== X-Forwarded-Encrypted: i=1; AJvYcCWBPU6i2omsuiekyffVNUYgPSfxffaxuuIlqAjK5Hm9lwESvVb1nQq0mslzpF5QrHmWqE4yw64u+Yw9bNc=@vger.kernel.org, AJvYcCWJXPmKopw8vqI7nGgFj6RvxXI3INf0FUwIi7N1Yz0fJWh7jUuJPA41u7GoZ6fGnZZbyKO/Dn/YdBRa93Fy@vger.kernel.org X-Gm-Message-State: AOJu0YzByiEOFbiILrPqxfAzV+prqR8jK7faVwl7wb7T57iOc982pGe/ 12Z8t5H0g5JtzCNsLtTxWmfRRY69qQ93UpcGwuCuWDNUVLP9zJHyqidq9IyUSQ== X-Gm-Gg: ASbGncuzd73oY6kivgrjaPb2TiigBa2lsrcTH7p+DsWk76LKO7XmcO42nkdQwIvCr5t rZW7ub2kzSC4ZXDjLlrXON9r4gTfafdHE0+8LMTGBW3MVFoKqO7H0kLKrm8qGNpiDbgc1zjOf5A PMNvjZgoUAAmeLOtTgAtcOYLrQqbKdNocbniTXrUGORulebQ9pEySvNZColDVkbgpHURHf7Nudb PUJqKFcTmtJjWU3JxTmaQBT7hxFeJzsyonUwB/krYtWFf6EUOsb+blt8H5LtT3vauv34Jf50szC VAAPkAhcT8J7kuxvlsJ4PCoOOJ7k6osmPvti6P0Mgjjbw+9hvk4qqcOYElHkdQ/D0ZjWr3/TqE6 IwPHXgCWrnfJXLwL7kVT1GfVRIwfB/Rqnc/3chLKrlmg/ccS58J8OTFk= X-Google-Smtp-Source: AGHT+IHVGvsGBQGQkvMvtDDfpFtA8mIByGRDIA1JCKyDlAWmlLEu0KLDhiMCrW7Q3CDU6nE/Q0y2eQ== X-Received: by 2002:a05:600c:a41:b0:45b:627a:60cf with SMTP id 5b1f17b1804b1-45b8559b8edmr113456095e9.24.1756819385117; Tue, 02 Sep 2025 06:23:05 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:c207:b600:978:f6fa:583e:b091]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b945332adsm44452155e9.4.2025.09.02.06.23.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Sep 2025 06:23:04 -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 v3 8/9] crypto: sun8i-ce - save hash buffers and dma info to request context Date: Tue, 2 Sep 2025 16:21:33 +0300 Message-ID: <20250902132134.3287515-9-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> References: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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. Since the 'result' buffer in the request ctx struct is used for from-device DMA, it needs to be properly aligned to CRYPTO_DMA_ALIGN. Therefore: - increase reqsize by CRYPTO_DMA_PADDING - add __aligned(CRYPTO_DMA_ALIGN) attribute for the 'result' buffer - convert all ahash_request_ctx_dma() calls to ahash_request_ctx_dma() Signed-off-by: Ovidiu Panait --- .../crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 77 ++++++++----------- drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h | 17 ++++ 2 files changed, 49 insertions(+), 45 deletions(-) diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c b/drivers/cr= ypto/allwinner/sun8i-ce/sun8i-ce-hash.c index df2acef9c679..6573c566bd0d 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c @@ -58,7 +58,8 @@ int sun8i_ce_hash_init_tfm(struct crypto_ahash *tfm) =20 crypto_ahash_set_reqsize(tfm, sizeof(struct sun8i_ce_hash_reqctx) + - crypto_ahash_reqsize(op->fallback_tfm)); + crypto_ahash_reqsize(op->fallback_tfm) + + CRYPTO_DMA_PADDING); =20 if (IS_ENABLED(CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG)) memcpy(algt->fbname, @@ -84,7 +85,7 @@ void sun8i_ce_hash_exit_tfm(struct crypto_ahash *tfm) =20 int sun8i_ce_hash_init(struct ahash_request *areq) { - struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx(areq); + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); struct sun8i_ce_hash_tfm_ctx *tfmctx =3D crypto_ahash_ctx(tfm); =20 @@ -100,7 +101,7 @@ int sun8i_ce_hash_init(struct ahash_request *areq) =20 int sun8i_ce_hash_export(struct ahash_request *areq, void *out) { - struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx(areq); + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); struct sun8i_ce_hash_tfm_ctx *tfmctx =3D crypto_ahash_ctx(tfm); =20 @@ -114,7 +115,7 @@ int sun8i_ce_hash_export(struct ahash_request *areq, vo= id *out) =20 int sun8i_ce_hash_import(struct ahash_request *areq, const void *in) { - struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx(areq); + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); struct sun8i_ce_hash_tfm_ctx *tfmctx =3D crypto_ahash_ctx(tfm); =20 @@ -128,7 +129,7 @@ int sun8i_ce_hash_import(struct ahash_request *areq, co= nst void *in) =20 int sun8i_ce_hash_final(struct ahash_request *areq) { - struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx(areq); + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); struct sun8i_ce_hash_tfm_ctx *tfmctx =3D crypto_ahash_ctx(tfm); =20 @@ -145,7 +146,7 @@ int sun8i_ce_hash_final(struct ahash_request *areq) =20 int sun8i_ce_hash_update(struct ahash_request *areq) { - struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx(areq); + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); struct sun8i_ce_hash_tfm_ctx *tfmctx =3D crypto_ahash_ctx(tfm); =20 @@ -160,7 +161,7 @@ int sun8i_ce_hash_update(struct ahash_request *areq) =20 int sun8i_ce_hash_finup(struct ahash_request *areq) { - struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx(areq); + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); struct sun8i_ce_hash_tfm_ctx *tfmctx =3D crypto_ahash_ctx(tfm); =20 @@ -178,7 +179,7 @@ int sun8i_ce_hash_finup(struct ahash_request *areq) =20 static int sun8i_ce_hash_digest_fb(struct ahash_request *areq) { - struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx(areq); + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); struct sun8i_ce_hash_tfm_ctx *tfmctx =3D crypto_ahash_ctx(tfm); =20 @@ -239,7 +240,7 @@ int sun8i_ce_hash_digest(struct ahash_request *areq) { struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); struct sun8i_ce_hash_tfm_ctx *ctx =3D crypto_ahash_ctx(tfm); - struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx(areq); + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); struct sun8i_ce_dev *ce =3D ctx->ce; struct crypto_engine *engine; int e; @@ -317,7 +318,7 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, voi= d *breq) struct ahash_request *areq =3D container_of(breq, struct ahash_request, b= ase); struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); struct ahash_alg *alg =3D __crypto_ahash_alg(tfm->base.__crt_alg); - struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx(areq); + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); struct sun8i_ce_alg_template *algt; struct sun8i_ce_dev *ce; struct sun8i_ce_flow *chan; @@ -328,12 +329,9 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, vo= id *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 =3D sg_nents_for_len(areq->src, areq->nbytes); =20 algt =3D container_of(alg, struct sun8i_ce_alg_template, alg.hash.base); ce =3D algt->ce; @@ -345,19 +343,7 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, vo= id *breq) if (digestsize =3D=3D SHA384_DIGEST_SIZE) digestsize =3D SHA512_DIGEST_SIZE; =20 - /* the padding could be up to two block. */ - buf =3D kcalloc(2, bs, GFP_KERNEL | GFP_DMA); - if (!buf) { - err =3D -ENOMEM; - goto err_out; - } - bf =3D (__le32 *)buf; - - result =3D kzalloc(digestsize, GFP_KERNEL | GFP_DMA); - if (!result) { - err =3D -ENOMEM; - goto err_free_buf; - } + bf =3D (__le32 *)rctx->pad; =20 flow =3D rctx->flow; chan =3D &ce->chanlist[flow]; @@ -378,11 +364,12 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, v= oid *breq) cet->t_sym_ctl =3D 0; cet->t_asym_ctl =3D 0; =20 - nr_sgs =3D dma_map_sg(ce->dev, areq->src, ns, DMA_TO_DEVICE); + rctx->nr_sgs =3D sg_nents_for_len(areq->src, areq->nbytes); + nr_sgs =3D dma_map_sg(ce->dev, areq->src, rctx->nr_sgs, DMA_TO_DEVICE); if (nr_sgs <=3D 0 || nr_sgs > MAX_SG) { dev_err(ce->dev, "Invalid sg number %d\n", nr_sgs); err =3D -EINVAL; - goto err_free_result; + goto err_out; } =20 len =3D areq->nbytes; @@ -397,10 +384,13 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, v= oid *breq) err =3D -EINVAL; goto err_unmap_src; } - addr_res =3D dma_map_single(ce->dev, result, digestsize, DMA_FROM_DEVICE); - cet->t_dst[0].addr =3D desc_addr_val_le32(ce, addr_res); - cet->t_dst[0].len =3D cpu_to_le32(digestsize / 4); - if (dma_mapping_error(ce->dev, addr_res)) { + + rctx->result_len =3D digestsize; + rctx->addr_res =3D dma_map_single(ce->dev, rctx->result, rctx->result_len, + DMA_FROM_DEVICE); + cet->t_dst[0].addr =3D desc_addr_val_le32(ce, rctx->addr_res); + cet->t_dst[0].len =3D 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 =3D -EINVAL; goto err_unmap_src; @@ -428,10 +418,12 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, v= oid *breq) goto err_unmap_result; } =20 - addr_pad =3D dma_map_single(ce->dev, buf, j * 4, DMA_TO_DEVICE); - cet->t_src[i].addr =3D desc_addr_val_le32(ce, addr_pad); + rctx->pad_len =3D j * 4; + rctx->addr_pad =3D dma_map_single(ce->dev, rctx->pad, rctx->pad_len, + DMA_TO_DEVICE); + cet->t_src[i].addr =3D desc_addr_val_le32(ce, rctx->addr_pad); cet->t_src[i].len =3D 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 =3D -EINVAL; goto err_unmap_result; @@ -444,21 +436,16 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, v= oid *breq) =20 err =3D sun8i_ce_run_task(ce, flow, crypto_ahash_alg_name(tfm)); =20 - 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); =20 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)); =20 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); =20 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 de3a096c476c..71f5a0cd3d45 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h @@ -110,6 +110,9 @@ =20 #define MAXFLOW 4 =20 +#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_singl= e() + * @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] __aligned(CRYPTO_DMA_ALIGN); + u8 pad[2 * CE_MAX_HASH_BLOCK_SIZE]; struct ahash_request fallback_req; // keep at the end }; =20 --=20 2.50.0 From nobody Fri Oct 3 10:11:28 2025 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (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 4C38430E82B; Tue, 2 Sep 2025 13:23:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819390; cv=none; b=P1X++HJ4x+nfMh5NxBdYq/zG9O3jInZW+mjh06UssCiSscDoz9UfMyZwZh2UiOXDk/Qe8VxU8me9GCDEo2ZiU138Rmo4KIWlZ22ilCaOm8+T04o+wfymikhhdzDUprEKjLxdpFcA4BxYQpSrN/fjKIPAxxyEAiLzSwLtJEkR+Ac= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756819390; c=relaxed/simple; bh=pi1l7opJu00vs6MD7nSWkMq1KZSzvh++I4qQ67bTi2k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X8kB91O/s09dbkxNxRg7rqeSSeHWUqEWqqhDE/+vTYduWi1wDw+T0bAZa4N9UY9EmqaXWIxQozMI5BjOzP9jQn25TS9VjE/OF7TBkm+LIDLkSMofCpeo3zWecmRPnrC6fTQ30xyx6Ds2RzX368k7N4DaIz9V6cP1qNmwlcok8d0= 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=c5YOn7/2; arc=none smtp.client-ip=209.85.221.43 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="c5YOn7/2" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-3d0b6008a8bso2111014f8f.0; Tue, 02 Sep 2025 06:23:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756819386; x=1757424186; darn=vger.kernel.org; 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=J+zU65F7Gerz/ADwaQ8W/yEAgtxRKhLtaag+pELJ150=; b=c5YOn7/2SAM7xPfF66ZCpDKe9AuZsY6snS9czo5FwGTVouXmZcit8UHgDvcXc33Lrn /iBdClrgO6M1sp0k8vuHSFIpgPpMBehUD1LXe2nLf8XU2adfq1F9R0gBHIdSlHFloufV Zlvpiz4QFJBvCfYvdU1pn9gqBucDhKlQ700AUICBMFXvRd3GKuxGUr3B+4EgvB4kBh0Q im0TRbkGnHryhJ3t7HbS+pjkmVn2J8of2rilRvZtRl7Wj2s9diPl2nrT+R8wRRPjawjD sLtixWFxXYfHO7w98g/Btyfe/HiFAZk5w92R1CtDUh9Vsg0d1jEc1+skk+0P7H2sGNqy Zq1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756819386; x=1757424186; 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=J+zU65F7Gerz/ADwaQ8W/yEAgtxRKhLtaag+pELJ150=; b=jGXYHYrGXiFQSakhOGDk0nBqORgBQZ9SP9c30AljdMo6B954qf1qlQleFlpOcwzn1I CIUlRXGXrp6B9VE59zBXpnGxcK0Awd1INY1nTmUkp94/ho+g73I+4J+WDjpHu+HuAOYd lZ4iV3+W3BYY4s1Q8/W36QMtPowOk4cxFmWaeG6C4b96FHLZw4Yr4dUNoOQuvMPBTAon ewaEkolXXdNczhSX3snImt0fjBS0CKeLPZBvtYlZ1NyP416SE9akncGvuk673kT79upA vCl+wKj5bKj3T5kAbHSIzKir6zD5eqEZWrGCkp8ZPvpOpuLsT7M/7mDoo7NaZ8vGqTfb 4CTw== X-Forwarded-Encrypted: i=1; AJvYcCVAJdwpc+5q4Xiq2iVqNx2n9MLknHy4raFhIKBrRSAE+N0x8fcY9qXVS6NsA3ef7KVHOX3KFCNeXzsej/PK@vger.kernel.org, AJvYcCX1v/b6r9nFInyoFgBCnZYP8swGSfyqP/FZ+t/LZ4ROQ7hJAgE8PGLim6fbl88D+j1pNK1JalBQAROvT+I=@vger.kernel.org X-Gm-Message-State: AOJu0YxF653bKiUx8F2Pzd79XMH30k56tJ7Hh09f156fU6JSQYmkjCUL wzww80XLkFlz850wAgJsg/o+RivvFI7mnMWxj1BqX9aMtDiGv4T5R2/u X-Gm-Gg: ASbGncuRSdVEyvfxU2YmhROPgp8kScRIZnNzi079vRpUVkKRYFbUVnSm92qVWTsEiUe 8RyGJG9K3VBMQ/7M0+vR5iPM0t9jUb/lMZ/iTQuoLNLAaZWH2te19VgTiant5/mkVNdjLut154A Y35WnRGUSfAC5Mi+1XtX47l01d64dDwmFvgPJ6p7YcFoMhlYjvBtb63993WKahj7x3m1S+S5MLP KkfcaVLm5JFgkLf7c1ZAtr7jH6JFp2TcoUxr5lQqU0mpNEMgpLaGHiiBHRVkbdl/zTOHlDpRFa7 GqQNQHZhuh1/FBNKS7c5UyBlKtjDIqI0EFjDYNTBREl3qCVq/oMJBBJyPX/EfXgQkYYQj5Akq6V CCeHvYSAIltU7LM9DrSwc1YREiJI8bRuAm72rGQKCjhiy X-Google-Smtp-Source: AGHT+IGEIroq02nSpRHx0vFtxRxr9TNdfsRxwLjDOb7ndAqqFPycS5qCf/jnA7MepquM0G+zsISS8Q== X-Received: by 2002:a05:6000:2281:b0:3ca:83e2:6339 with SMTP id ffacd0b85a97d-3d1e02cb35fmr8305578f8f.49.1756819386400; Tue, 02 Sep 2025 06:23:06 -0700 (PDT) Received: from ws-linux01 ([2a02:2f0e:c207:b600:978:f6fa:583e:b091]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b945332adsm44452155e9.4.2025.09.02.06.23.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Sep 2025 06:23: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 v3 9/9] crytpo: sun8i-ce - factor out prepare/unprepare from sun8i_ce_hash_run() Date: Tue, 2 Sep 2025 16:21:34 +0300 Message-ID: <20250902132134.3287515-10-ovidiu.panait.oss@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> References: <20250902132134.3287515-1-ovidiu.panait.oss@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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/cr= ypto/allwinner/sun8i-ce/sun8i-ce-hash.c index 6573c566bd0d..d01594353d9a 100644 --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c @@ -313,18 +313,15 @@ static u64 hash_pad(__le32 *buf, unsigned int bufsize= , u64 padi, u64 byte_count, return j; } =20 -int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq) +static int sun8i_ce_hash_prepare(struct ahash_request *areq, struct ce_tas= k *cet) { - struct ahash_request *areq =3D container_of(breq, struct ahash_request, b= ase); struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); struct ahash_alg *alg =3D __crypto_ahash_alg(tfm->base.__crt_alg); struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(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; @@ -345,18 +342,14 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, v= oid *breq) =20 bf =3D (__le32 *)rctx->pad; =20 - flow =3D rctx->flow; - chan =3D &ce->chanlist[flow]; - if (IS_ENABLED(CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG)) algt->stat_req++; =20 dev_dbg(ce->dev, "%s %s len=3D%d\n", __func__, crypto_tfm_alg_name(areq->= base.tfm), areq->nbytes); =20 - cet =3D chan->tl; memset(cet, 0, sizeof(struct ce_task)); =20 - cet->t_id =3D cpu_to_le32(flow); + cet->t_id =3D cpu_to_le32(rctx->flow); common =3D ce->variant->alg_hash[algt->ce_algo_id]; common |=3D CE_COMM_INT; cet->t_common_ctl =3D cpu_to_le32(common); @@ -434,22 +427,59 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, v= oid *breq) else cet->t_dlen =3D cpu_to_le32(areq->nbytes / 4 + j); =20 - err =3D 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; =20 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)); =20 err_unmap_src: dma_unmap_sg(ce->dev, areq->src, rctx->nr_sgs, DMA_TO_DEVICE); =20 err_out: + return err; +} + +static void sun8i_ce_hash_unprepare(struct ahash_request *areq, + struct ce_task *cet) +{ + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); + struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); + struct sun8i_ce_hash_tfm_ctx *ctx =3D crypto_ahash_ctx(tfm); + struct sun8i_ce_dev *ce =3D 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 =3D ahash_request_cast(async_req); + struct crypto_ahash *tfm =3D crypto_ahash_reqtfm(areq); + struct sun8i_ce_hash_tfm_ctx *ctx =3D crypto_ahash_ctx(tfm); + struct sun8i_ce_hash_reqctx *rctx =3D ahash_request_ctx_dma(areq); + struct sun8i_ce_dev *ce =3D ctx->ce; + struct sun8i_ce_flow *chan; + int err; + + chan =3D &ce->chanlist[rctx->flow]; + + err =3D sun8i_ce_hash_prepare(areq, chan->tl); + if (err) + return err; + + err =3D 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(); =20 return 0; --=20 2.50.0