From nobody Mon May 25 06:41:05 2026 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 238063CB2F0 for ; Sun, 17 May 2026 18:06:50 +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=1779041211; cv=none; b=MJzvjwPltkQkQ0QE/iWLavjnWI8jgSJLVJKVmH9ku1LOoeAbvB+rhHk7DPTFTfBYFiAW6UknDuOxuCMrT2o7yE5w1BQV5u8+FUE3Uufr0xLyhVQBsCp1HnVqybDh9EMkP8+u8F/F//Y1ty4LNF22EOFLBCSgVaE9alhEz5QJNTM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041211; c=relaxed/simple; bh=KFHkz47XpNQ4Y5p4iySWuJ8YA0hxxdon70GiMN4cpBA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=W5ygblgMnUtOAJlbwfz49syG86qrCaMInDWcXptib1i2JZzh0zi6pI0G+ntW+CbsIE4kFXVFSEkU8BYkC4qIsKYN/MfiL7ePfa+C87/CbIJjr9u1pwANjjJyf8h88XKPA1Yw81o+0tfAW8sMt5rmPMSuFYzN0bv8qydykJxypMo= 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=WaLY5Q/w; 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="WaLY5Q/w" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-48d10c981e4so2538175e9.0 for ; Sun, 17 May 2026 11:06:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041208; x=1779646008; 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=ra5Z4YYE3acYeuXsyJvtNtB0kw45T1bBE4SEjM00MXw=; b=WaLY5Q/wAr53cwHzWEgf5/Spzj2Ac58bSKRkBGpPWyvl0d5zYeL3cBOsGKbRqC/Ann dEyKmNutmjyBvefYjuoY7BGA514LgpMTY+sL9U6/06nftp4l6mrsTcX+Gvd2ywfBGP9y GZmLFbuVMyddpc3rfwjGpPmRKw96yeeVWDmmGIdRRufypwZ42Buv1lEXQ406jwzW3qZQ aFJqqCnscHnOSr2/l81DFq79CXMPX3PBi33SHv50sGnBvoeVLEBw+WoPPqBXKQXPQT6h DFSNJs/V6vFo1bhkMC3H8bwKmWi4qfgnlr/Eb0CjiqEfy5i4Z4IpIEJkyAF0wPnGS/22 m7iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041209; x=1779646009; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ra5Z4YYE3acYeuXsyJvtNtB0kw45T1bBE4SEjM00MXw=; b=RiPsyTAy2mxA/fy/2m6S4PZTQjv5A5ATt5vMdN6tPwrKWronhUGzXGnwff5foeub12 LMyP2B2k02l8CNrVHGvndn+bSJ9Cg8UiZZ6kjf95eHrp7WD3kMPbit04XckrprP33czW 9xqOE7I90cDJy8xeCMJYlut+dMob+M1+OM+G199qQYUPybWFtjbPQo09tKl8oCxB6/AZ sl/3VZUuoNM4YWWqL3Av5jHdYiK+Bkw/YLVDIbKXL4/W/jb9wB/IOwL0lU5SfD5kDhxL gXt32Mag2ngNnvqdR8mV+3gK8co+0Hdxv4Wgt5HLp2RsnryFM79HK7qf9vIjMQc9Km7S zzjQ== X-Forwarded-Encrypted: i=1; AFNElJ9E5fiYfoE4Z4R8J0etsD4DWh7N5OUlDAAP9ThlECcqthNHhoLEjDcTJMEO+wxBd0Ug5uHe23EPcOBw830=@vger.kernel.org X-Gm-Message-State: AOJu0Ywyj/ik9Da5JIhURMI5OCPVyRJR4vHY5ax+jlSPoCekLEqCOI5G fIMdMp5J/0L69sIqYsqY6DWPMA8/AiuWKlzSZsyXIR8+aKNFZEYbvQ2z X-Gm-Gg: Acq92OF6jsKWIWZy/GTDfrL2+NGkmJzGlWV2zHbIc0mdCPEDUNWnyRp5u1iCqfqv2uU NEkITN3sdOeSd1Q7Pj4LB7tddBWCpLL3ddvBUmjCNE99IP/shkOvw1I1VCNo9j6d9av6iFFaJSZ VIW/TqOU22/S3TmDofpHNDKpWjcSK49YKFlWAecvLvGWI6DX7P+a47QGPy2ZS05CmavkJKmiECP hDl+VewxIWEfW6hgA0uiEui/p73WXmECzSWI6WrCFDs/NFRy5HUy0BniwvRgHfCVc8eDhMM9YKV AdwAB7O+NhXf/yxhjcniHfAUeYmv7QTnM4KBduXCMwi96OgDp3/YWO95lEh2vysHuguuOwuKH1t 6oIUQcRyB0yGt7ASrmW43BNRyvmRUdmpHYYibDTSbILVBMxrkQlUBWK4lQSDhrb54B9nATzaSwY nq7M5jGgoYudeqT7rIpTvjCu5ks4pObzpGQkhi4OhT9k0SYXRrwjcfeXn+oPSPUII83ah0SqMFw w== X-Received: by 2002:a05:600c:1d02:b0:48a:5302:8ed9 with SMTP id 5b1f17b1804b1-48fe5ea0842mr106215275e9.0.1779041208400; Sun, 17 May 2026 11:06:48 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:48 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 01/12] crypto: atmel-ecc - rename driver_data before moving it into atmel-i2c Date: Sun, 17 May 2026 18:06:28 +0000 Message-Id: <20260517180639.9657-3-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Rename the local driver_data instance to atmel_i2c_mgmt in preparation for moving the shared I2C client management infrastructure into the atmel-i2c core driver in a subsequent change. No functional changes intended. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-ecc.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c index 9660f6426a84..c9f798ebf44f 100644 --- a/drivers/crypto/atmel-ecc.c +++ b/drivers/crypto/atmel-ecc.c @@ -23,7 +23,7 @@ #include #include "atmel-i2c.h" =20 -static struct atmel_ecc_driver_data driver_data; +static struct atmel_ecc_driver_data atmel_i2c_mgmt; =20 /** * struct atmel_ecdh_ctx - transformation context @@ -209,14 +209,14 @@ static struct i2c_client *atmel_ecc_i2c_client_alloc(= void) int min_tfm_cnt =3D INT_MAX; int tfm_cnt; =20 - spin_lock(&driver_data.i2c_list_lock); + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); =20 - if (list_empty(&driver_data.i2c_client_list)) { - spin_unlock(&driver_data.i2c_list_lock); + if (list_empty(&atmel_i2c_mgmt.i2c_client_list)) { + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); return ERR_PTR(-ENODEV); } =20 - list_for_each_entry(i2c_priv, &driver_data.i2c_client_list, + list_for_each_entry(i2c_priv, &atmel_i2c_mgmt.i2c_client_list, i2c_client_list_node) { tfm_cnt =3D atomic_read(&i2c_priv->tfm_count); if (tfm_cnt < min_tfm_cnt) { @@ -232,7 +232,7 @@ static struct i2c_client *atmel_ecc_i2c_client_alloc(vo= id) client =3D min_i2c_priv->client; } =20 - spin_unlock(&driver_data.i2c_list_lock); + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); =20 return client; } @@ -323,16 +323,16 @@ static int atmel_ecc_probe(struct i2c_client *client) =20 i2c_priv =3D i2c_get_clientdata(client); =20 - spin_lock(&driver_data.i2c_list_lock); + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); list_add_tail(&i2c_priv->i2c_client_list_node, - &driver_data.i2c_client_list); - spin_unlock(&driver_data.i2c_list_lock); + &atmel_i2c_mgmt.i2c_client_list); + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); =20 ret =3D crypto_register_kpp(&atmel_ecdh_nist_p256); if (ret) { - spin_lock(&driver_data.i2c_list_lock); + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); list_del(&i2c_priv->i2c_client_list_node); - spin_unlock(&driver_data.i2c_list_lock); + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); =20 dev_err(&client->dev, "%s alg registration failed\n", atmel_ecdh_nist_p256.base.cra_driver_name); @@ -363,9 +363,9 @@ static void atmel_ecc_remove(struct i2c_client *client) =20 crypto_unregister_kpp(&atmel_ecdh_nist_p256); =20 - spin_lock(&driver_data.i2c_list_lock); + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); list_del(&i2c_priv->i2c_client_list_node); - spin_unlock(&driver_data.i2c_list_lock); + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); } =20 static const struct of_device_id atmel_ecc_dt_ids[] =3D { @@ -394,8 +394,8 @@ static struct i2c_driver atmel_ecc_driver =3D { =20 static int __init atmel_ecc_init(void) { - spin_lock_init(&driver_data.i2c_list_lock); - INIT_LIST_HEAD(&driver_data.i2c_client_list); + spin_lock_init(&atmel_i2c_mgmt.i2c_list_lock); + INIT_LIST_HEAD(&atmel_i2c_mgmt.i2c_client_list); return i2c_add_driver(&atmel_ecc_driver); } =20 --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 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 AAE763C65E0 for ; Sun, 17 May 2026 18:06:51 +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=1779041216; cv=none; b=d9vI2ouTDP1MuVXBL6GU/NF6ft5SltjMoF7HSFd8Vare42nIZy79eVBfAs3wJS5r9itpXFzzOcuFLKewkIx6M8kyBXEOLMk4++wyuEE426kzbqq9hcI+lk/y6YcNzV6iWaku32zC4MNQJONMwnVNX40MPIgDjNaxwLtPgaWaYdg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041216; c=relaxed/simple; bh=j9Fz6SSQQDO6DGs+2qB5LjzrCuQ/5ONfciuXWCHJfr8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=c+fwuQg7Zd8HsRGW5F9UykrjBp5G4YBv06JraMslTFCZtyDBV02VbuJj9pD/bjEO+dAnRLr4TQRQXTh5IiwprVMEj0KEtc6m1M3YDDr8gJSbxhojut6kYojHWkplFOKI5M40XijgD7z//l/MCMTC/jPuCbpUQIXiJOTBMWYKfZA= 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=g675sOZz; 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="g675sOZz" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-44c44af71f8so212604f8f.1 for ; Sun, 17 May 2026 11:06:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041210; x=1779646010; 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=KRmMDCcVC/F2MSG/rzMXw5a6Uc3R7sPjQLJ20BsNc6g=; b=g675sOZzde5QWqpSDtNqH6BCsa+4+5F94J3AulC5JxN8Ned9wbY/ORna3msT90IDNY GCSxQgjgzaPtI/PoEmwudVMGjYQZXFnErC2NcaPrJ0hB3ceTrpoDdGHXql2H2XXSojNx UAKlsf1UkPiy7IKvrZCXemcFj+sWunIfd3iX3mIH2E0Cm/VZ8py6dSjsejIjzTU5Y62R roH6M6+lH4IR71lh6Xh6Dh7Y1A6sYif3TkKRObZqcV3ei+9ik6jai1dJmvjPbAJBuLBQ Npw73/B54K+fKEOjghuw/Hn/OTiao23It3gP/53iO2Qu51voM/DL/zq0tJXeqBKjMXka QI/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041210; x=1779646010; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KRmMDCcVC/F2MSG/rzMXw5a6Uc3R7sPjQLJ20BsNc6g=; b=qCmfDrqQ6rSKRbP76lajTlRsf85dqlYHMATBi38J0KBuvUqXbJQL66oYgH78/b7+tZ T8ttz925m2BOC4ATaBThYSC2Bdiu3YkYb5f27Jeo+nOpj/ABccyl6kY1qFDJzM55FU6p tpJBdSxzmI69CORWZQt7d1aI6Gag/A7acN6zJohTJId/891nI+ePv0ZT835QySSWgzj0 GbyuEOwbxosOUh4bObebGqLuopOoesXccZ9LfUTwFjTNkqKW6urpkVcFxiM4xg4F2H/L 7GwFmO4HzYjKiCmpeez8IRPATZUVQe6kTcHkCnfqgRGh4EBwgQSi6azSQFZ58QkLtyAk N2mA== X-Forwarded-Encrypted: i=1; AFNElJ/IMnjmmCrNiI6rsCICT8RbB2bIJgxnB1lQO5x5P/eorcr3cfpizNZ0bm6WUP3esoktaTA1E4rEoSRtBhU=@vger.kernel.org X-Gm-Message-State: AOJu0Ywrz1UTAp+Q2q7J/NvzV5K3HvTkoiEgI/olLO9iuBBWgKwxxBn8 UfAxPP92NBjpaReGMgUv2wMB8l8NNrFCFavroor+Ee0x9jaReWcwDfNu X-Gm-Gg: Acq92OH3rWjkPLetlQizH/6KH9YG7X6c/ToR5PLnLSCclMTPY1Urkoxve86p8F5uza0 KGbuhw+IuofBKqGua32ihCPCeQAUJ1LkD0Xp42MvSbspEOwu+n4/3eXC2kkvkRRuLsqxqApDtYg byXVNfrSoCRUalpI1nZOAxSIeCQjNi3m/CHcMWptwioHyo6wkGm4TIfM+99mHg0qWew1SdXBvjh iJrzmHcEDP4mrHbC6DVUFwbvTl0DAtg7ob8D/ZDUnoWJTLWbXB2+KUWIidC4kuHgKu8GFKVdkK4 k8tmlSnw/8LS7zNByhw6VBuUK/oICImHFMHCN3leCQhWdirPFTOlbKBkmSSHmC0yD/QLB5TY1tk /7hOi0tF5tUTHgy5T+RRZf60BRpLThVKLTVn+Ln93C3TrPxDUVOiyz/zfwiXGEdg8Bq69EcC1LP M5yAbAR6B4vFH/UIE41CYaSz1Pd/pIj33COfxakKrCPqDD2MXWI3dDQnOKuCHn2Ko= X-Received: by 2002:a05:6000:46d8:b0:452:9709:4086 with SMTP id ffacd0b85a97d-45e5c37d127mr4745975f8f.2.1779041209416; Sun, 17 May 2026 11:06:49 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:49 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 02/12] crypto: atmel - rename atmel_ecc_driver_data to atmel_i2c_client_mgmt Date: Sun, 17 May 2026 18:06:29 +0000 Message-Id: <20260517180639.9657-4-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Rename struct atmel_ecc_driver_data to atmel_i2c_client_mgmt to reflect its generic role in shared I2C client tracking and locking. A subsequent change will move the client management infrastructure into the atmel-i2c core driver. No functional changes intended. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-ecc.c | 2 +- drivers/crypto/atmel-i2c.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c index c9f798ebf44f..9feae468b7ff 100644 --- a/drivers/crypto/atmel-ecc.c +++ b/drivers/crypto/atmel-ecc.c @@ -23,7 +23,7 @@ #include #include "atmel-i2c.h" =20 -static struct atmel_ecc_driver_data atmel_i2c_mgmt; +static struct atmel_i2c_client_mgmt atmel_i2c_mgmt; =20 /** * struct atmel_ecdh_ctx - transformation context diff --git a/drivers/crypto/atmel-i2c.h b/drivers/crypto/atmel-i2c.h index 72f04c15682f..98a79dcae2b6 100644 --- a/drivers/crypto/atmel-i2c.h +++ b/drivers/crypto/atmel-i2c.h @@ -115,7 +115,7 @@ struct atmel_i2c_cmd { #define ECDH_PREFIX_MODE 0x00 =20 /* Used for binding tfm objects to i2c clients. */ -struct atmel_ecc_driver_data { +struct atmel_i2c_client_mgmt { struct list_head i2c_client_list; spinlock_t i2c_list_lock; } ____cacheline_aligned; --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (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 17D603CBE7C for ; Sun, 17 May 2026 18:06:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041216; cv=none; b=DGextEWaYL/CX54fLITChmm1NdS5pcymToubMU2+JrLp1OS6l1n18DWzot5f+rdaQTIWX1h0WQq5my769GB0yQbu1V7DMtzrsAckzOgNVi5vPBrCFZR7yACT6E3o58nDHa/IZyP/4Rg+SjpVtjwP3ZwqOsAMjeVCh6QibCfXtPo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041216; c=relaxed/simple; bh=tOlpY7+pgix8ajT4l6fawfigNBi08GuxJz9tAv22Jz4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CBN05RkqbHU+dORcy0+lazCK8lwcDFl95m4qDFuq0psM1FY2gB+Tm5jhogzfsoTzw3EX86KsSgbuNAEAQrIq/6PvDH046Ebr74eW6JEO9O8L3y4njM8YsMfzbG6PtQ+H4L79mjcqj8arI9ukX4yrgcz3Y0s1lerwtEX1AbfUtxw= 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=jHyENnX2; arc=none smtp.client-ip=209.85.128.42 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="jHyENnX2" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-48fe6629235so1840535e9.1 for ; Sun, 17 May 2026 11:06:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041210; x=1779646010; 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=lfAxUEr/rxn6pVQC4AetRpAM4gvdUnHJSPOgS01+IHE=; b=jHyENnX2SjVaDcg37C8bTx8Rsba7LinfZ8p+40/x04FHjmJ3GUwQS8qLKkD2wSQ6xX Mtj+rnqgcB9RB1KBhCAti/r5VUNYzEmRruttC5/YZs3M9ueBHCB2uEgpcOQW8arkUcKR x0wiHCQS+hRc1MKVTstmGSSKy1FQuBKuAYo9QEktG9BBE1cF7Q4uq8BAJTES+A4SZdUr Q0oqw3lTFskrdh8Y1iLJLofZBJp6uinT51S3aqylrObMaEgkIn4ZcZ09XMbPibRY2k1Y affBW5EU3EYtBQo02oA6c+XLGiQNVMjpiKbssO2dkqe1f/lHwQdSuW+he6q6zauczXIY 1pOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041210; x=1779646010; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lfAxUEr/rxn6pVQC4AetRpAM4gvdUnHJSPOgS01+IHE=; b=gL1d3UQfC5Li6WKq2w3sGLLI8oM0+45RtwcY4QgeKAiJgeUfpdskVvfcDtJyGgBgLb v8PbPUe+A0hwgeADFDSSwXJCLGi9VPBV5yHIPtHr/ayI8e74x6mwujf1lbk9nE7RLbbv z5BIP/NJessk8SeB9zLwnI+w9/KVfUzwDbajLeqNaJtl8pQz/+hE2TdfVaumBBuKfBx+ XQYDr6BCrmFU8DwEPqy7Xmt9Z4Yvg7Q2owCJmyZAvZAA7rBAoPbma8rwcdWzV3+KhIkg al5jSQjJ6cHwDrSrLu9pAGDrXyVa8SzaWVYeyD4w3KVFWuCJTL/qtdTZ1iZhRGVuNqPJ 1Uww== X-Forwarded-Encrypted: i=1; AFNElJ+95wSiwCM6bdMePAPi3G2VU4iS4m+aUCIFRvEqgWTZWyuK/VISU28FwLff/xsIlulXjS9It9NFsM0TrvU=@vger.kernel.org X-Gm-Message-State: AOJu0YwPImRC4m3TTe2AjR1FPDkMSLU9hbyqZQo+RYBH0kejTDoYmrIT 2R2gJ0l+O9mgLS3PNiEn3yWqGCxCy2FfRSlW8JX6+iOyiz489smZn0K1 X-Gm-Gg: Acq92OHsbfqsiynzQwYhiFc6dsK+VCacb9b35X0hbvrDz26sJd/RMV13ze3976Eigsn 9ufE1lIeV9jJe8+AGkawHGNBMGVEhaq5NO0EOqwHYy6Cz+hWlC8FsRdZi7Gde8ljI2iHA8rmSGz 4lKQbtmaNZYpBIL00leVH+LS8kr5wLA6MkV+BxNPH0zOGyVxHozrkvs5sDvIaDWF1BTKIlgjo7O vjgdLTGwPS6+7+zxKelrfYxBpeRBgWGRgX679cexsdhIddAaLEbYctPqCjtViHBQw5gAgaaoHju tHzVsu8RiBohvLmc5jh/q48DRdPHZz1ReUErhZVIe+wPvVuBKXY15N9OUi/FsBExYGTZYDnbRL6 adJq7b5Eo+ECXU/IP7UkwD5VGscdAFVv0SDWVrlxhhP5S0chvf85bKnfyr1qAfZOhvhby/ghZkw GBTacV3Mk9KV2WGd3QZzRirO/0eAkiklAnA/rF6liN6LdeyooSGxqJR9kYBZbCur6RuToUta0I+ Q== X-Received: by 2002:a05:600c:3106:b0:48a:58e1:6cf7 with SMTP id 5b1f17b1804b1-48fe61f2bdamr81852815e9.4.1779041210437; Sun, 17 May 2026 11:06:50 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:50 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 03/12] crypto: atmel - move i2c client management instance into core driver Date: Sun, 17 May 2026 18:06:30 +0000 Message-Id: <20260517180639.9657-5-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Move the atmel_i2c client management instance from the ECC driver into the atmel-i2c core driver. This is a preparatory step for consolidating shared I2C client tracking infrastructure in the core, allowing ECC and SHA204A drivers to operate on a common management instance. The symbol is exported via EXPORT_SYMBOL_GPL() and declared extern in the shared header. No functional change intended. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-ecc.c | 2 -- drivers/crypto/atmel-i2c.c | 6 ++++++ drivers/crypto/atmel-i2c.h | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c index 9feae468b7ff..76fb1d0cf075 100644 --- a/drivers/crypto/atmel-ecc.c +++ b/drivers/crypto/atmel-ecc.c @@ -23,8 +23,6 @@ #include #include "atmel-i2c.h" =20 -static struct atmel_i2c_client_mgmt atmel_i2c_mgmt; - /** * struct atmel_ecdh_ctx - transformation context * @client : pointer to i2c client device diff --git a/drivers/crypto/atmel-i2c.c b/drivers/crypto/atmel-i2c.c index 0e275dbdc8c5..db24f65ae90e 100644 --- a/drivers/crypto/atmel-i2c.c +++ b/drivers/crypto/atmel-i2c.c @@ -21,6 +21,12 @@ #include #include "atmel-i2c.h" =20 +struct atmel_i2c_client_mgmt atmel_i2c_mgmt =3D { + .i2c_list_lock =3D __SPIN_LOCK_UNLOCKED(atmel_i2c_mgmt.i2c_list_lock), + .i2c_client_list =3D LIST_HEAD_INIT(atmel_i2c_mgmt.i2c_client_list), +}; +EXPORT_SYMBOL_GPL(atmel_i2c_mgmt); + static const struct { u8 value; const char *error_text; diff --git a/drivers/crypto/atmel-i2c.h b/drivers/crypto/atmel-i2c.h index 98a79dcae2b6..a3385e8f0dc9 100644 --- a/drivers/crypto/atmel-i2c.h +++ b/drivers/crypto/atmel-i2c.h @@ -119,6 +119,7 @@ struct atmel_i2c_client_mgmt { struct list_head i2c_client_list; spinlock_t i2c_list_lock; } ____cacheline_aligned; +extern struct atmel_i2c_client_mgmt atmel_i2c_mgmt; =20 /** * atmel_i2c_client_priv - i2c_client private data --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 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 13F423CAE72 for ; Sun, 17 May 2026 18:06:52 +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=1779041217; cv=none; b=C8HBfuKufMo1Bk84ndO1w6xTUmJFa267OXgHvKJqK4ryOsFaj6dK+SwAsEnCXg6feUhtp07LEbHCVinGP6UmxGiNCVgmo7zmxkEB0KUIgSV68iorAWrv9zRgNQFR5bD4p2SeF8Kbiey3hbO5U5RrYaU7ZvX9mx/CVYBkjigw8uU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041217; c=relaxed/simple; bh=n/UgRI1lC/UK05OuU8ZdstOBY5ZZBQSZhPMu59M1Cbc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jhkh8RfVuyimv3206mocO9ZE/xGQ6GhQ1ZxXQH29qCNu83hXAzCYYQajtc8ZsJxUj4DDLgZvkpCAXFq/JvuWEIU0CS1q4+Kt57lZ3bGr3p/ZLW3RDaWQHGPmx046bYkvHEa2yrhhQnK4vVNKK0sSIG3GU0ZsZ8PLeaDRpZxSAhA= 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=J7MvzwYE; 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="J7MvzwYE" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-4891c569cb1so1767415e9.2 for ; Sun, 17 May 2026 11:06:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041211; x=1779646011; 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=XWhNCJ8/sNLNjfPa+oqEi9cxsLwe8oIu+0HMTTzZ//Q=; b=J7MvzwYEEI089w0tzC8ISc5MlKAMu++j+Pvr4QpNqGv4zuhSv44EH+ZBhCf62r2JXQ q7kaGFIh/nLejYFyS0BJQWukU5YX7P/32OO51rMNK6VRBjm0bgsSGnPueqAYec9maujS rOn+gTcIPwoFcYjYuTUG/sre1Tfgjohn5DUjMXsnudba7K0vJJRpZTbC9zKK518/smIW CkwoopRAcxxB9ZCnEuURNQWqRyzTjhnY8aIJr0U00EGJkV7uHwR8X1d+FhQ6SZHNgWxE hp7VXDoUvEVHiUpYhbmSQsuHZ6jV8SBbZj0tfY6Kmt72z4CBdxLwEq9k+1WxknRnI4OI 5l/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041211; x=1779646011; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XWhNCJ8/sNLNjfPa+oqEi9cxsLwe8oIu+0HMTTzZ//Q=; b=hyGxkHgvvgNYgfzPJpnWGS4VV65NFh9Kf9Xf59HVdX7M6c7tm/hYh20v59MR4b9vly H4yNkfdAxnDHichC8VXTAbbTxAjZFsTbFRswTQWLUpinuBOqJ0eNL1jQFk+T6jna2MYs LAcGPRCMBIkteqY5CUZNGe2AwZVqy3srPAF9C2IzFhEJXwpYPLIeD25unhma0hvdPUSP hZBOSPMflsWSAB0SGr2YmiuUJkFFskcvw1enZWmRrCkp/83kXqAyWg6diCep7ohWKTqy Qh+ZGDGDVXjUuUSSxXU69aibkxaDeCIGCRK/5PJqFZM/I+Jbs9sKiUhX8/1i4P7C8Ix8 LtJg== X-Forwarded-Encrypted: i=1; AFNElJ92iR5GmFem0aQwi0CGrp1qWXh7w8eCfDb8YENb/rdakjgGqD7pH/l+lC8q9SW0yYUS51EDKFDsjsSbh+s=@vger.kernel.org X-Gm-Message-State: AOJu0Yws+RgOffULtgZ6lEhSttTE4bcmZ1rr7hZmsf9KXtFitMIPC9AB o57t67r2kalMmgYxLVqShm8iXEvbB9Sh7Y+9v+qiR8amnutdvumS6x7f X-Gm-Gg: Acq92OF7XYoI+3ldxj8kubLdyN7DC275CueuSLquNuTA/8xRBTPaIl/nUuOmJRjF+LO DpBiSUBz+r+f04dEjc3VwXdXPiWYeIE0BUTdSHVn4P0Y5TUDXVejmaB5EuvhPqBazInU/GZMIM6 6fnsMwTppFGrMb9oHatpzG8MLKfUL98JFzmReBz3thlx4EwQ85TTp7oZhHl/Q7R8SDtRqQmQALx hpdjt6IejQZflFsy478BYHGEJdcigM041ZtB5u8Jn7McvjRZ+sXDW5V73kfzoq0ovBGC1WkPjH3 xwxMeG+dsAJ3zA2ozKcoPBWP8lMrdDKDI5pVAwvkjuByDNDSEFaW+yfKM2PO+gdz9DJwAt3hhxV uNu3RhLVdpLbsPgHIOePiY7yUDdZdAo3+8GMFYNvduz3bTabNy707t2DyFj4kqepUNBlR+wClJE fxWn53tdhTVPXcSDX8+hHRwPbiPpAaxUvQH+hHUIO6U8gAwJwUF7kzhhPvVeawda8= X-Received: by 2002:a05:600c:1d0d:b0:485:c456:5e4f with SMTP id 5b1f17b1804b1-48fe59b071bmr91127835e9.0.1779041211464; Sun, 17 May 2026 11:06:51 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:51 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 04/12] crypto: atmel-ecc - simplify probe error handling Date: Sun, 17 May 2026 18:06:31 +0000 Message-Id: <20260517180639.9657-6-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Replace early return in atmel_ecc_probe() with explicit error handling using a goto-based cleanup path. Add comments to clarify client list insertion and algorithm registration steps. No functional change intended. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-ecc.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c index 76fb1d0cf075..696ab1d51fc6 100644 --- a/drivers/crypto/atmel-ecc.c +++ b/drivers/crypto/atmel-ecc.c @@ -328,17 +328,20 @@ static int atmel_ecc_probe(struct i2c_client *client) =20 ret =3D crypto_register_kpp(&atmel_ecdh_nist_p256); if (ret) { - spin_lock(&atmel_i2c_mgmt.i2c_list_lock); - list_del(&i2c_priv->i2c_client_list_node); - spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); - dev_err(&client->dev, "%s alg registration failed\n", atmel_ecdh_nist_p256.base.cra_driver_name); + goto err_list_del; } else { dev_info(&client->dev, "atmel ecc algorithms registered in /proc/crypto\= n"); } =20 return ret; + +err_list_del: + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); + list_del(&i2c_priv->i2c_client_list_node); + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); + return ret; } =20 static void atmel_ecc_remove(struct i2c_client *client) --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 26ADB3CC300 for ; Sun, 17 May 2026 18:06:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041217; cv=none; b=WktLuKwh4mpgqUbi5LpUg4wSlZnbQuc/Xf04dmVwvmGdFddqGyv4I6A+EtcmAVuu5zB+6zeRFYkuhnanYBEJa45Wgo3UrmyvFfy8IBPgv2oXIe+/2EOLXZ0QDqS8nKqndE5wf3vjeh8v18WoXKsJGiDnbAu2i8K5j5J0WtYU6RU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041217; c=relaxed/simple; bh=TGB108/3SRJaFYr6xW5ZjsAyrgQw0VX100S2Wtzubu0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=XiA/vedP8MLty7IiA+xHFO40Pedp3rauwc2Uexh8svGf3+SkX2wguqZwCuZjOCAZ97wm0H63n4mou/iZJx0THXSVF9cA2SfxSO/I8XKI0pkp+fOy+y/6W+IcWBnmrMOEafqi+48NTuBkY1QiY3ybI0htqsMq4FjAAeSREcgMX84= 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=eQ2aw88l; arc=none smtp.client-ip=209.85.128.44 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="eQ2aw88l" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-488a8f97f6bso3337695e9.2 for ; Sun, 17 May 2026 11:06:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041212; x=1779646012; 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=LXDGFqKG+aLieN/ARyZ/nrrCa3/quxxq3chmprkLuVc=; b=eQ2aw88lfi1Ad/6mor3e5UgpeUfFmYtX3z2VAcFWb9VzAU45xHBp7RIv48wPzCrTqs mTJMHsYzRNoK0qodfYWBj1IEg8kEi9JgbOB0dmL+vtwqKel7FSHVj7haGauEVLDOpVE9 FiIpCfRbV6ZF2C+0QVATqWbYypvMvVd9pioKw5ItvYH8gSkeb5UJiYbDpeeswFaECU9+ yQINTMF/4sVNI9ZCaCyaJjLjJMlTfARJqI83VIaHZTtvr3fgiti3OOpv/Wc4M49NmxK4 7fhH1F9rYFzgMjcLJvi8cQrHn8/G9S8PWaTBw/qTcIoFJbrf9Lu3iSE/0S9okHw+p1fi p/Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041212; x=1779646012; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LXDGFqKG+aLieN/ARyZ/nrrCa3/quxxq3chmprkLuVc=; b=eq8+ObSqVlWw+Gt+xnstiatGDTqFKRejmGOQa7Z3lP+oV5mDrY8BODPpoK30T+u5mJ a0jHcKxZjMFnL7LmHsgux7ESgC8eP3GG3tqZUzU4UyoNRiX7EkHNSmLfV1Uo+Z2q6lZq vcS8rbc/XJWmimdeyu3D7h8c66bn9G07bhezrxqqRa09hDysd5zfgBvjzgPV0PL+u9Ef RzDER9w+HFDHyHv+jD6LO+swITbmggV+ACIGxXpQw9wXOlS/XXzLQSCHRxkWQ3lrmbfN cIyOOnMLfxxf+l70wDIkL5nbLy69zJWdRaLyWnM6RMCsWFINB7Jqbu/o4agE2Wc8kyCY GQpg== X-Forwarded-Encrypted: i=1; AFNElJ92V3ttS/hC5f7HX3fJ4YXUYo4OuoScF+mtGhfbs+AYwdOQBhmEfvuRbV4Sg/YpQGUSWsipxOhEvEO1dqU=@vger.kernel.org X-Gm-Message-State: AOJu0YwjaIL/8E9CdmrWH4phz5at+TllH5OyYL5pWCW0hboerC5PKCqI OYUX4998JrtsXiKAmrshh4epA33EWKYomQENILfWBS5OrWYQB33z09WL X-Gm-Gg: Acq92OHfkeZKfj6AUPPOi0XHABsCT/1qbQEtuLLFL45OBX+WKgfYI6ud47OUcaJaFwS ahh8oiBZ9jwk3tcJK54F2HaCTB5WUQp3g9Wt388XBgtQ8FOgoQV9iA4q/yrU7bqUWfV3TUwYZwy Q/U4lkD0Go2zxf1hoTnU78kRshN92VCo10O9H4fVyM7beNpO+uEiNKTTpgbnD15IoQ47Au/a8m3 vRN4sM1yiD/QJhraz71+77MNojf3HuO7sSzGK+k2yQoL8ZP0AC1odAREysXBwLNEyS+Qh9QV1R/ qTAdsxIpluBaWqvyF8WbHAXDyjpMvPjztjXeIdU8W4yo89g6F75lHQYgu1tPhlS5CpLwjm25az1 6JB0OChhfSveAc7Arra9LcCUMABbBDCIiWq+wfoLmbz5ALYEL3Ydm5jWhTevY3XGFqnE/YHxxpz UE8H/fHNaMChboE4xVFn4jYj+vnLumCGrNIzvRaIBdRPsFediJoltP0ULmck42pVgbNQRp1IF0T Q== X-Received: by 2002:a5d:5f45:0:b0:458:3bdb:7eb0 with SMTP id ffacd0b85a97d-45e5c5dd4bemr8843390f8f.4.1779041212405; Sun, 17 May 2026 11:06:52 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:52 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 05/12] crypto: atmel - factor out i2c client unregistration helper Date: Sun, 17 May 2026 18:06:32 +0000 Message-Id: <20260517180639.9657-7-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Move the i2c client removal logic into a dedicated helper atmel_i2c_unregister_client() in the atmel-i2c core. Convert ECC driver remove path to use the new helper and ensure queue flushing is performed after removing the device from the shared client list. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-ecc.c | 5 ++--- drivers/crypto/atmel-i2c.c | 9 +++++++++ drivers/crypto/atmel-i2c.h | 2 ++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c index 696ab1d51fc6..e5dd77008b97 100644 --- a/drivers/crypto/atmel-ecc.c +++ b/drivers/crypto/atmel-ecc.c @@ -364,9 +364,8 @@ static void atmel_ecc_remove(struct i2c_client *client) =20 crypto_unregister_kpp(&atmel_ecdh_nist_p256); =20 - spin_lock(&atmel_i2c_mgmt.i2c_list_lock); - list_del(&i2c_priv->i2c_client_list_node); - spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); + atmel_i2c_flush_queue(); + atmel_i2c_unregister_client(i2c_priv); } =20 static const struct of_device_id atmel_ecc_dt_ids[] =3D { diff --git a/drivers/crypto/atmel-i2c.c b/drivers/crypto/atmel-i2c.c index db24f65ae90e..861af52d7a88 100644 --- a/drivers/crypto/atmel-i2c.c +++ b/drivers/crypto/atmel-i2c.c @@ -354,6 +354,15 @@ static int device_sanity_check(struct i2c_client *clie= nt) return ret; } =20 +void atmel_i2c_unregister_client(struct atmel_i2c_client_priv *i2c_priv) +{ + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); + if (!list_empty(&i2c_priv->i2c_client_list_node)) + list_del_init(&i2c_priv->i2c_client_list_node); + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); +} +EXPORT_SYMBOL(atmel_i2c_unregister_client); + int atmel_i2c_probe(struct i2c_client *client) { struct atmel_i2c_client_priv *i2c_priv; diff --git a/drivers/crypto/atmel-i2c.h b/drivers/crypto/atmel-i2c.h index a3385e8f0dc9..43a0c1cfcd94 100644 --- a/drivers/crypto/atmel-i2c.h +++ b/drivers/crypto/atmel-i2c.h @@ -190,4 +190,6 @@ void atmel_i2c_init_genkey_cmd(struct atmel_i2c_cmd *cm= d, u16 keyid); int atmel_i2c_init_ecdh_cmd(struct atmel_i2c_cmd *cmd, struct scatterlist *pubkey); =20 +void atmel_i2c_unregister_client(struct atmel_i2c_client_priv *i2c_priv); + #endif /* __ATMEL_I2C_H__ */ --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 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 366DB2E7621 for ; Sun, 17 May 2026 18:06:55 +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=1779041216; cv=none; b=JyRLwqiIZdFZBmZ1o5irCB9HcTvuJOwbaURDlVWiEv8bG5m6NWd92CmgEp0AMCrW2PJwAHsvWIaGSpxu7pNM2Iw9v8elzBY9SvGsnuHBsVS9mt9baai1yGaGj6bXymfE5Xq43B02lEKrkQILW9cLP2Jq6TPA18buGhxMAyyerIM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041216; c=relaxed/simple; bh=BfIoE2EgHiX5HcimtCpSI/ihSU7AhR9eDkloFf03Afk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=B5a3OthGcZN2rCX4TDYTauLEA1pC/1ydfgcEY3l/Z3o5bQiAxS4X84k2jJq/r6KGtSxb5f0wv7+ZkIrQ8Ag3IEqBiXCCxwnTfzcFYHvL9mMFY0YmDEkJrd1NqIDIaVRCEvC+H5csan6GBYi0pblBFaBtIKTDUFlfbN23JoTMcXQ= 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=f7kX1ObB; 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="f7kX1ObB" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-48fde2f2d61so2892835e9.3 for ; Sun, 17 May 2026 11:06:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041213; x=1779646013; 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=xZeqSTb+Ww2f5MTxnXj9yvOCpat7Odm2G/43tTwf1sE=; b=f7kX1ObBXMdtErffe2O9VJhsKkkFrCM73EjSNzoYng1kRO8nrv34zuQNKDXPnsMwuX bCGwTWwOs9abIzfOShAXSsU/dEb/UlmNSoWw3dqJ/SYgS8SwcC2Y7b9Jfy8n9a4bBMws 6GU1OdhF1nDLtGr85A/F/C4QEtWtsSeijxq3cHYbdTJmCBIjliqIUXBSsXmhAXtUslTz ISuvJolZ2X3i9usQLBtI2TVGLZ64l758GwsUEu2oho+XgHPz43zzaSdj7YPm1ukIilRv eO6a5az7Ae+rw3qfORVnRtgRZsFl1lcdQX661nnz+McCmgR50WVoKLDrhDBOm5xWw5cJ skTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041213; x=1779646013; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=xZeqSTb+Ww2f5MTxnXj9yvOCpat7Odm2G/43tTwf1sE=; b=gDkRZjbbg9Jl44xSNbRIaWQDtJ3w9HhV3Uw0SJYh2k2M+kC3Y+rE5cbrduaHl2A2v2 L85OZw9bMzRLm0uMSs1w4dTlwSIz6XFejAk89RKZS2Soe8rX9DRFz+W05UTeGLK26+KV mWRtfoxx3/bwDCGyB8a3oBi8yE7UtonTyofet/GctW/hFTPLKLFCUzgpR/qbkCwpsMZ2 yT77xVZwyyDhr/z0UvvCA4yw7KhEvvSkuJ+Kr6Rhn6f+0BH/eo6rt2TMeyg2rP9ccUjk asTD9d9CkoVz9n7HAphF9WHnc/T6ZEEJFRpr2GXV94T6bGXdxwHy2dTlkYUH1TsXY/Fb zH8Q== X-Forwarded-Encrypted: i=1; AFNElJ/hY7Th5ccEm0Tbrm4uV1mk49Dw8yw1mvojfQptVKEYNlazcmu6NbfT6n0EP9ZFK+xTwfnG26au1URyagk=@vger.kernel.org X-Gm-Message-State: AOJu0Yw3Jk4YLQYRk+H7aGOByqQCpSRidonTBkb+p1xBiX5xLjFFseH0 5KN9y5Wcdfdig49DHWY6UVFajHu5/vcsRpIqJlmcXhoTAJTnRWC0A0+0 X-Gm-Gg: Acq92OED3tYGidXULmYsGUOcFVUQBbHR6rW9lKaJRRunC5uBgRkzTD7/eMz3FkSDyrX zhZjwFM5MmUD88C6mX96DstF0G/4EISOe6L4VEzvQSMkYbMjXSKjYrErvh+vPkuSZrusmsf9T2o otHvoQg6Z1Vl7/hRjZwFGFrCYFmRKc3HvXwmSEgE9CYml1WfRze80gIF6PH6AMBdAkDuIapEpxu X3vI++6tymb23CD2+eqHhzH5qN4YzgmKfE/zzLgrcV/Em3iUlHBgTvHIXCXK6Rbf62huEaBXkwO dd912z0eE8JsDTCBEZ/mYrqJSkOBiKivMSuvklNaWXTjLuS9BPUX2VvOUemQgTs58TnwUsx++ez w38FqLWSvKvyRlG6qk2F743mHJt5/wsJNNhubYHmMq4ysXcDeIAVi/NAnZalmerOcftoKx9icOO eYo8iLFEkBlfRobEP+kWqXNDDX+PUyoCJFnHopI8T5gBsu0G7CvJyI0BZtR4EbnKpnCSA2xad31 A== X-Received: by 2002:a5d:5f90:0:b0:454:454a:4cbd with SMTP id ffacd0b85a97d-45e5c6000c3mr8001358f8f.5.1779041213530; Sun, 17 May 2026 11:06:53 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:53 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 06/12] crypto: atmel-sha204a - add i2c hw client list and improve probe error handling Date: Sun, 17 May 2026 18:06:33 +0000 Message-Id: <20260517180639.9657-8-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Add registration of the SHA204A I2C client into the shared atmel_i2c client management list during probe. This allows the driver to participate in the common hardware selection infrastructure used by Atmel crypto devices. Improve error handling in atmel_sha204a_probe() by ensuring that partial initialization (hwrng registration or sysfs creation) results in proper cleanup of the client list entry. No functional change intended beyond improved lifecycle handling. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-sha204a.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/atmel-sha204a.c b/drivers/crypto/atmel-sha204a.c index 6e6ac4770416..cdfdcf2e43a7 100644 --- a/drivers/crypto/atmel-sha204a.c +++ b/drivers/crypto/atmel-sha204a.c @@ -173,6 +173,13 @@ static int atmel_sha204a_probe(struct i2c_client *clie= nt) =20 i2c_priv =3D i2c_get_clientdata(client); =20 + /* add to client list */ + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); + list_add_tail(&i2c_priv->i2c_client_list_node, + &atmel_i2c_mgmt.i2c_client_list); + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); + + /* register rng */ memset(&i2c_priv->hwrng, 0, sizeof(i2c_priv->hwrng)); =20 i2c_priv->hwrng.name =3D dev_name(&client->dev); @@ -183,15 +190,24 @@ static int atmel_sha204a_probe(struct i2c_client *cli= ent) i2c_priv->hwrng.quality =3D *quality; =20 ret =3D devm_hwrng_register(&client->dev, &i2c_priv->hwrng); - if (ret) + if (ret) { dev_warn(&client->dev, "failed to register RNG (%d)\n", ret); + goto err_list_del; + } =20 ret =3D sysfs_create_group(&client->dev.kobj, &atmel_sha204a_groups); if (ret) { dev_err(&client->dev, "failed to register sysfs entry\n"); - return ret; + goto err_list_del; } =20 + return ret; + +err_list_del: + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); + list_del(&i2c_priv->i2c_client_list_node); + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); + return ret; } =20 --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.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 4EF273CBE7F for ; Sun, 17 May 2026 18:06:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041228; cv=none; b=cSpkw13rVrzvgANlFv6eLXZCBJCvcSMVfo+yAlPqYW3ULiICk2NROHAW7FNqxjyBBkkqrZfdHuSI/FsrFB//11g6hsSAaTVXXm4jKfUxBH8w9agAyZzzdfa/dyZRGs/fdo8JgiOu4gKmDr9MfEr3Bk80o2a8OxYi94kMwFKq7HA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041228; c=relaxed/simple; bh=3LM6h2aHFdhtzdJtTIft4eZwUciZz65DnEuEQv8YulQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aLr+UhZLoS9rfOUxWTCxZwu0mrMjf7kNfr4rKwQzolqQyfT7O3EBu4eVc032GCI/Oy2OVs5yPw3U3liGlla5wybeMqFwj7F5LDpZeLclsjX2RkmJ0ymeG7LdWVoZeVXJ9zv2ipZUsnsQdTXsEXeXTMjVd5of3Ye5SPtCAheNbG8= 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=iE33QWGz; arc=none smtp.client-ip=209.85.128.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="iE33QWGz" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-48fe7a40e51so1518215e9.0 for ; Sun, 17 May 2026 11:06:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041215; x=1779646015; 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=msTE632b5gRHZXchhXxhyfIjZMxg97RrD6+uOCX904A=; b=iE33QWGzcC7EIY8h++wi1AE7Sk3KKpj8uzUPUuola/BVmET7msXZy1cZ5fXgn5F3Rj c9Ik9+62Ul7z4vDqPBxWoGYNWozKuUwyKbpgyICh6DVVOweRCgL+MVlTbTNL19qRkHtq zzHAumWZGkc68OtlmnRWcluWWwbQTBijbyLAA+Bgu57+XCttUpdF2wBHKdE012M2iVPv bFNwtEun9yKpOmdbTiMEj7ETCP3wOL2CNUDjPZRSVNKMpKIjnBW5R3i8O+e6lIBs9Wqm Si8P7pYfATk7swU7u1qhp+kedk/zCwpTcROc9PQ0/Jzd2ZdG9gRE3I0dnM0SSp4bNf7m 3MQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041215; x=1779646015; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=msTE632b5gRHZXchhXxhyfIjZMxg97RrD6+uOCX904A=; b=fPUto4UVLJmOw7uktaLNfb7hgo6e8Lz928wkrcrvsj1S9Ulo46+OVtm/O25mVJShm2 UX1W/CBDeEzRC8BRF/R7vAjD5Iqi8yUdWjtKdUZTKjGmMSDluqSPbq92PKIlpru0GYBE BpgjQhv8577DIsdFqOUbCJLd+NT5GgEo5rFaqL6947Xt+heP4zIy+G6OZUwPjB6QEXrW BkcU2H//PJT09ewF+bRabtjJzWR0XfPcm3jeC4+ymSHto9JINqPknMuXqNlu6JSbTYoz 8VRAYrgHj+RhXMzbpqPkekRNiBFGnIEKRUm6Zprf35uNEQqYPERSxNHP8X7IjxZUq6j9 3EkA== X-Forwarded-Encrypted: i=1; AFNElJ8hrcYF55LWHKJZbopLXs2OhVQ6VMOlwj4/zkx4x00obzkxakxskEyGSVk53wmHZNY56xC/n+J7UTMJdzE=@vger.kernel.org X-Gm-Message-State: AOJu0YxWR7no8bYkbqMmXLvlvv5W0gMiaQV4MzI3CJOEwWRNubbIltS1 IoUm9UU20v7bkUBV0LFNXhSSw28sGuUNBOdA0ZgwI15UCYGMmiHMIOO6 X-Gm-Gg: Acq92OHo2VhOw24jtnhsoIyaidazUSic+I3nwd7C93FO54Z4GwcoN7/djFoqmiDGf30 B6GYSG8foH2+HB7/bWoN4eL2xr7+wlOjsYZ569PICaYIqjY3+mO7REJ2QYcjHLQ6ctr5uoqCnh2 IkXn+Ien/b6UvTRbkNDM+MtzEW+xSUi5u0DBCj1QLpD6Q979iWrR7afumH01oz3h3dhl62JJdNN 0h183iLlPeGbXl+5rEM3qmacl7sETDtNhpDK9NmoZFjR7lHGVPT1IKPrqIS0xd/B7KeG4czCiWc kXGO+lZMq6PvCnsUfMWijQwLBsYglFfCJTspWvErM6Y6w3/prHdZfFUSXJbBhXwosbCbGaMWElv u4dEj3G7a4rXtxhgYKBGjzmWO3LrQTScEl30pcj5Mqkfv3VEZBPks7ZBx6nglusTR7D4DFo6rsZ aCz/kz27XRNUzTgDsq6X5utAJf464ZGodrVtNjCrWE0qnWWTtgA/07W0Ra2BEtTQ4= X-Received: by 2002:a05:6000:4683:b0:45c:e615:56cc with SMTP id ffacd0b85a97d-45e5c5edef7mr5526552f8f.7.1779041214493; Sun, 17 May 2026 11:06:54 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:54 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 07/12] crypto: atmel-sha204a - switch to module_i2c_driver Date: Sun, 17 May 2026 18:06:34 +0000 Message-Id: <20260517180639.9657-9-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Replace custom module init/exit functions with module_i2c_driver() for driver registration. Update remove path to unregister the client from the shared I2C management list before flushing pending work and cleaning up sysfs and hwrng resources. No functional change intended. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-sha204a.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/crypto/atmel-sha204a.c b/drivers/crypto/atmel-sha204a.c index cdfdcf2e43a7..613ed5e7b3f6 100644 --- a/drivers/crypto/atmel-sha204a.c +++ b/drivers/crypto/atmel-sha204a.c @@ -216,6 +216,8 @@ static void atmel_sha204a_remove(struct i2c_client *cli= ent) struct atmel_i2c_client_priv *i2c_priv =3D i2c_get_clientdata(client); =20 devm_hwrng_unregister(&client->dev, &i2c_priv->hwrng); + + atmel_i2c_unregister_client(i2c_priv); atmel_i2c_flush_queue(); =20 sysfs_remove_group(&client->dev.kobj, &atmel_sha204a_groups); @@ -246,19 +248,7 @@ static struct i2c_driver atmel_sha204a_driver =3D { .driver.of_match_table =3D atmel_sha204a_dt_ids, }; =20 -static int __init atmel_sha204a_init(void) -{ - return i2c_add_driver(&atmel_sha204a_driver); -} - -static void __exit atmel_sha204a_exit(void) -{ - atmel_i2c_flush_queue(); - i2c_del_driver(&atmel_sha204a_driver); -} - -module_init(atmel_sha204a_init); -module_exit(atmel_sha204a_exit); +module_i2c_driver(atmel_sha204a_driver); =20 MODULE_AUTHOR("Ard Biesheuvel "); MODULE_DESCRIPTION("Microchip / Atmel SHA204A (I2C) driver"); --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.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 237673CBE84 for ; Sun, 17 May 2026 18:06:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041219; cv=none; b=Krc7POxB7YENbG5CznIyBdPSDGS+WLFYFH4yk+FgdP8oFrjDf2UEw2wlVa2+MVqZl4x6WGUrwVBU89DQ1Y7CYSwNb2O3X1ZJ1Zah3wxWKtp/99SRW543L1TNItF1iPQUI9DYVA8y2hbscf8n9L8N1/ZFJQhGjSJlOYGtnA+zlXo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041219; c=relaxed/simple; bh=PNmZ4TxWwBgQRqU2ayeKsYRSbfY5FFOto4MK3NHO6z0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aNUqY+DpI+nZhgUcnC0VgJB5VoRe3rMquisiugH7EC6hMn3SH6TwGiJ84lC8bTUu2wJj/97SnmFlP51xh1VQNnzxAGvolkKgkYQO1N8Ck9nGtWNmHF9MSudLZ83X6njDPMCejL0xv5uIhK208yaeAs3dXxXBPRDJb4TOtqtPUj4= 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=e8kuwWTc; arc=none smtp.client-ip=209.85.128.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="e8kuwWTc" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-488a8f97f6bso3337775e9.2 for ; Sun, 17 May 2026 11:06:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041215; x=1779646015; 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=pZVKXrkAaVKO/vkAKRUgA7JaIQeAJzwGUI/xuakH4Lc=; b=e8kuwWTcZwccj0jD4T+7HgNiJOYRUI5kLQ+5qR58+Zs/0ZRHN70/Zw0apgU1rXUXLk /zwbgSN66vxI3/6kl7+2Y3QSQy2W33DThHDpqeoen2l8kzQg70zyQEf1S0dvCHAdHq2G XNwRmN6jL10kBJY+bxRywD5BKRxHJ8n3nZYl7jN41tLZwCt8Ks4xMAAv8qUegsIwWhak 3ZixZdG/DpWQ9NSRL5v2vkkuKD36VJNvcmKojvE2Imz0PDV69IvaUv4JOzMEZQBxRtKV 0oguF3cKkgKZwVVaZlPgijMkzTaoi/U33R2rJ7DIqN5aQ+LgL3tc8xRJ/iETpzGhtY3H +89Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041215; x=1779646015; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pZVKXrkAaVKO/vkAKRUgA7JaIQeAJzwGUI/xuakH4Lc=; b=GTEKsC26aqCmMnU5gAlqMN2D3YgQ9HEqQarIyYuRoc6bzo4qkfVG989adRlP+dmwCR /26z3x6zv2nIBfFlZrejKV6pA7uIGzfgK6eGvRrAtrV5OK2dZe/gC68/vXqT1PTpiG0W GMKp1goHyrPxdYDoGuxb3ADL5j4jvidhAXGbd4kQd1hw0HQliBrUwqPHk4qkRtuH+i+g 3MfkzOEad1hu4C5TOUSzFKTFkBhwdnEp163lkSW0Ngv66E1b8Vs4T+kumMr2tk1chvPD HHuuTk8+X0aTjQ2R3IilUhewgdeKIoXqNBtzOIv3gvQErba5gvu+jGklErx8wFZ0IV3y iDTw== X-Forwarded-Encrypted: i=1; AFNElJ/0cHqDliPAzIoK/1Z9bWvD8L0yJGAFQuJGKxEtfFLLsv9owL6tQzy1c+2rdOoAAETUKakIKhwWdZrCoPc=@vger.kernel.org X-Gm-Message-State: AOJu0YyEPiYEq+27NOcyelYzIolpH3HClULsMUEfhdufGxHe4K2budDl SIaaMj9p8Zyf7nmrkXzBkuiRzGOZTbxSik0JQ02ZMZqluF+RNIlAWEBK X-Gm-Gg: Acq92OEtPpLMG77Wxpw9HMYB/cH4wkBLqzg3mkTltegVvW200LMhExK49RMiTx/rXEr Dkhw6Mw6xIluT1DZxHVxbKjrheJW+JKTRyqe3JQyZxLlnxjhrsS3qMs/xSzjdK20UrxfT08YzE1 EHsemGrXk0RkkBwD7jSQlEvsVgk0aKUJCq9TFn6S3VU5Zr5FyNBWNGPemHs/yBFvF6665VyG1fv sTDcs1BoddnzlGnpmnRFTsIiWddJESHYScrYN0yclfR5Y3x+AJEJ5WNmxK6F7nGj3qUZZTlW1Zs dqqHjcres2rmE98WHtL1m91kJp6S0gocAwk4vHU6C/aOltMDnBF3pQn7dN3osq1DgvnzEqcBSGO /9f8XodJ2r7TVK+dlojOUeeOtlRWVIjtoqSiDUKumtFdTnv5N2P0EC7gF8fPw1w+Sbi9kHx5j6X SMz8O+bKFTSj2m9nqzlPhJhhnegjNBqCqMW1mWEqUeDd3xyj1hBEXj5SZ6qu3E017xAse/EPj/Z w== X-Received: by 2002:a05:600c:1f8c:b0:488:abe9:86 with SMTP id 5b1f17b1804b1-48fe631817cmr83409915e9.7.1779041215510; Sun, 17 May 2026 11:06:55 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:55 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 08/12] crypto: atmel-ecc - switch to module_i2c_driver Date: Sun, 17 May 2026 18:06:35 +0000 Message-Id: <20260517180639.9657-10-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Replace custom module init/exit functions with module_i2c_driver() for simplified driver registration. Initialization of the shared I2C client management structure is handled by the core driver and no longer performed in the ECC module init path. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-ecc.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c index e5dd77008b97..dcfc09d24497 100644 --- a/drivers/crypto/atmel-ecc.c +++ b/drivers/crypto/atmel-ecc.c @@ -392,21 +392,7 @@ static struct i2c_driver atmel_ecc_driver =3D { .id_table =3D atmel_ecc_id, }; =20 -static int __init atmel_ecc_init(void) -{ - spin_lock_init(&atmel_i2c_mgmt.i2c_list_lock); - INIT_LIST_HEAD(&atmel_i2c_mgmt.i2c_client_list); - return i2c_add_driver(&atmel_ecc_driver); -} - -static void __exit atmel_ecc_exit(void) -{ - atmel_i2c_flush_queue(); - i2c_del_driver(&atmel_ecc_driver); -} - -module_init(atmel_ecc_init); -module_exit(atmel_ecc_exit); +module_i2c_driver(atmel_ecc_driver); =20 MODULE_AUTHOR("Tudor Ambarus"); MODULE_DESCRIPTION("Microchip / Atmel ECC (I2C) driver"); --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 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 3977D3CC7CD for ; Sun, 17 May 2026 18:06:58 +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=1779041224; cv=none; b=LZVbczQ4mFwPR4A7brKRLXwggjxTWUt5133Vo0KrVRp0kJlQYdL8nTYXEC7nU/k5Vady9Ma+YJY/4BUlx/wCjDPb5CopbeIuzqoleS3IxbwZADBccMJa2JLjhqm+78nPMvsf5gZJ4Ozuhugs/U/S8qzPQae2vzNxl6JsjqVfXSY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041224; c=relaxed/simple; bh=8E8i2ov3OB5nxCGPsraNbhi7Lp2mIp0fHwCLul3Q9bg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=TYDagKYE7TiCOZGvE4OwyLA9xAZlS2FaUWZpDb5qy0hbIAVx2ik+aAw8+1XddSjNfHO4J4VYo+exF54bPTHBLSdvZYZ/0McXcnK8sDOF6ftKvAdMRpf98DuUHoWAohmsVSqO321zytmZDqKGLfwzi4e98GAhDdZp5sP8pp2CfLE= 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=GxC3Q42j; 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="GxC3Q42j" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-48d10c981e4so2538345e9.0 for ; Sun, 17 May 2026 11:06:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041217; x=1779646017; 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=UvLRNBQYDT8+Qt2zwMF/yaLEeJC75IH2Ss/ramc0Mks=; b=GxC3Q42jaiZxMVkF+JMPIaYZ4JcEjhdXDWW6v4nscAbNFEEeZa8AibaDYur8kxdsXB toj7u9c02ChHFak/MAoPkpqJQscPZv5QhL4NQvyXm05GdcMRLcYmiOERSC5ehssF1x+O M4x3EmxNAbZmeb33eRn9nnkD/cO3nwWcGml5HWzMkTlTHYHJKwrFlZ5r2fzleYscy5sT VJu619dptwYW8n1Z7DSO0rjRpbcVFf4HOOSIhOmMjRCARsk2JJcvxcInZZTwEU0qswKx ntGQ+8eItnni4JL6mfJ8QCN+SNCc+cx2rr6XQzveWzJSKNJ4AdeQhgSOpg3+havzcpYS TEiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041217; x=1779646017; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UvLRNBQYDT8+Qt2zwMF/yaLEeJC75IH2Ss/ramc0Mks=; b=s2PLNTDBdMkoyfKete9cOzN4qXL6mmTgC/hkEJ6aissiH/aiswitKGO/iL7PGYtyaH jvu12+196SV3YPpq/n/3KvLLGAfN56fq+Xir000ZiGS3I1Mj2iUkqj5x9Kpddl6R4yxl xy9JGIvn1wsmEBabJA7bLhq9m6kSPC1qtW3/W1WsYPmx6YreWJ+n/w/gFG90yhqKJo2/ QEEaQJhk+nbTh1/cp3XKRNNRDWft4aaQtUWgNDRLX2aZqwNSaSCCIA6wvOi8VHmxgCrR 0hjnaDXE5Wr4aN9mGezb8T7z+7RM2mWixtdT6dadlnkB8s17Ym5sfT6hpqLch7soSwdM e3tg== X-Forwarded-Encrypted: i=1; AFNElJ+wV/Qkh3wbjXUNnm33IkzHRZ9guanSvVNK99j0KkU9TieB6CLx5XHnj3C6EZBsFeo5YmIlYYuWqynmJ20=@vger.kernel.org X-Gm-Message-State: AOJu0YwBrrDMG4IDyx17xF2ztVYejwW3s5hSL3bPsihtkngMJVlYGe9J NUMzjovuKcoTLHcPjCumggsq9d2YaNBM9cvVwf7NtDsuQ7BzWYIqGo5r X-Gm-Gg: Acq92OE0yhOV2sHw4Nw3YB6++zNQI9KskF4bzSEqgXhtSzKKmKg4D5dmS4D45nuR9cb /ykb2TSWqViktV9vk64QfiUFEHVbpigKqRbL1pu6qWAbsONWqcMzLZPZElzX3VfvqyQiVd6eOyL iimZwJpAlGC16E4mXqWJu+n2L2esfM4SlqLLq8dOxAPWonm154vXr8OhNIi27pbwJdYmA/xudSv 9RUJHA2t6QBjP70xMgUv1VCgPaT5OaYSeliKee9m18SVeuyqWH/KrF0FAofNI9yRjkNZEmUJpkW kJxdLMkqk+xtpGErEldg1DN2cAi2lbKAvdwXj57OuBl+tUr2BCGVT07pBRoY0138zNFeRXHxup5 v6Ip6WGg4l2UfLk6lzM0CrCM9f/v7AW7g46TiR4vLkYkc2OV+NCtbejmKlOB1ago7WjHEtwspxj huSQ/KCRKGXVNJzfM8UGDBIJihI1MjtUXTLjnEkvvSGVqpgI2m0prbQDHREGVhc8g= X-Received: by 2002:a5d:5850:0:b0:453:f281:b4ff with SMTP id ffacd0b85a97d-45e5c59557dmr8853464f8f.2.1779041216533; Sun, 17 May 2026 11:06:56 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:56 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 09/12] crypto: atmel-ecc - simplify remove path and relax busy handling Date: Sun, 17 May 2026 18:06:36 +0000 Message-Id: <20260517180639.9657-11-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Simplify atmel_ecc_remove() by removing early exit logic and centralizing client retrieval and validation. Previously the driver returned early when active transform users were detected, which could leave partially initialized state without proper cleanup. Replace this with a warning when active transforms are present, but continue with full teardown of crypto registration and device cleanup. This ensures consistent removal behaviour even when the device is still in use. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-ecc.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c index dcfc09d24497..ce7a2e750ba8 100644 --- a/drivers/crypto/atmel-ecc.c +++ b/drivers/crypto/atmel-ecc.c @@ -346,21 +346,14 @@ static int atmel_ecc_probe(struct i2c_client *client) =20 static void atmel_ecc_remove(struct i2c_client *client) { - struct atmel_i2c_client_priv *i2c_priv =3D i2c_get_clientdata(client); + struct atmel_i2c_client_priv *i2c_priv; =20 - /* Return EBUSY if i2c client already allocated. */ - if (atomic_read(&i2c_priv->tfm_count)) { - /* - * After we return here, the memory backing the device is freed. - * That happens no matter what the return value of this function - * is because in the Linux device model there is no error - * handling for unbinding a driver. - * If there is still some action pending, it probably involves - * accessing the freed memory. - */ - dev_emerg(&client->dev, "Device is busy, expect memory corruption.\n"); + i2c_priv =3D i2c_get_clientdata(client); + if (WARN_ON(!i2c_priv)) return; - } + + if (atomic_read(&i2c_priv->tfm_count)) + dev_warn(&client->dev, "Device is busy, remove it anyhow\n"); =20 crypto_unregister_kpp(&atmel_ecdh_nist_p256); =20 --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.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 32E373CDBC3 for ; Sun, 17 May 2026 18:06:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041225; cv=none; b=Im1Wsz7kQzJDCItq1lBq40b+xDQUqEEJ15m0244/3Q+R2HPEwKkPJmN07T7zKVtg8hbdCI/ln+B1hRdZMf8EklmJ0mO2TEoKYpq0sW9BTdCebfe2OKoHzU8RNKgPW6XgTTGUMrjDRS6CzhzK8rh9uROBzOa+LO3CiLrGso5eI+A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041225; c=relaxed/simple; bh=HbqgJ+mU2YTcjIqMr596sW7K8qRkkeNvXVPaJb7xj4Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=cEplJCLAkwf3ogsho8lC065QOpEt4H3wY3rFpCeioGNDbg00xyG3G8oG4p9kgrsSGUKW7srliBw83DImW6F3aIjuei0jj8GHYRFcxpzfHBtliLqZIGKzI9ltCQ4B6icoIY3wpcMbBV/ERZxYLZt9kFs0t8IIG9jSAir+B5RCaZA= 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=WOY5QV7w; arc=none smtp.client-ip=209.85.128.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="WOY5QV7w" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-48fde2f2d61so2892995e9.3 for ; Sun, 17 May 2026 11:06:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041218; x=1779646018; 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=k2Lga/xnkIfsYMx9TVpbPnWyf/7tiVX1IsmYkQiqC5k=; b=WOY5QV7wWYJp4EcGpv0ddG7oJ/yabrcd4s9/73eV2EHHOXykRrble3n/0XTTmvAddQ C9x9+XvNFIeyHlTnO/oVNs9BWLudgAfIbCvJpFQPgqJyhwGMZO1WzDGFl6yrPNd6eDCB 39AJrrBsACUMrHxC396TjT9mV/ZBtdxG+kNldS+l2ODt/wnsQbZM+59EYjAcE19MqEL0 JlDCZpu4OSi0VfWdpU2qYCPjyu04ViYdU7oK42TLwTmd97A43LEimJG25EeZty+bpp0U 9V0i1vzYTPldnGlZ+S0XmTSMVMuLeNEwjtdPrr65znlM400HAgBnJyQlYUKL7UqTzoDX PSiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041218; x=1779646018; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=k2Lga/xnkIfsYMx9TVpbPnWyf/7tiVX1IsmYkQiqC5k=; b=srR2gzqjgwxpWf/NvVk6cGTyCyhkHgp7tl20FGkeUH7CjmrkcS75rZEiTg5zbYz6EI H4VbapmLbch0roEk4w6GGI1tJnkEfOOFBL6HnExWW+DU3TEOE9ZO2Wl6BAQZqJ0mv/a1 zP4FHVgKT9N70HtmHNh2X7YaozQ+EQIAp47gAclUOxX4fqEAK5pGZfgDfRLLNJb8DH0w DWThDh0Qi2/Ujq3rom77erOtcfhIDpCKEPtG4TRTxy5mBqQZOq6Tv7KlyUdN1S2ea6mi 0e82ViVsujXeCHBnkuhleS8NtDkZko/IQhsa5WXJKC9GqIebW33U9tkkM3GjmDff5t+c oD7w== X-Forwarded-Encrypted: i=1; AFNElJ9e4I9bL3+RPxZIH+swxd8JWTMkJOyDC2AhdhKkzz9GypeIMzEfeb/enrHylV942bbilbOoAyXzl2GAKHU=@vger.kernel.org X-Gm-Message-State: AOJu0YxM9l08F0/nPs1LQAFjUzHTSfgHVvkkLtIqlEB/UEujMetXQ13f iJdjKeN5Y5xKl8mzUMdqFUEuSKTmQrGQrCBM4wprupS6p3a5/TUzJkT3 X-Gm-Gg: Acq92OHHMSBVYUxqiGlDXMkbuDGHa6rK73ofmyYbVw1+TmYazXLOf88NkXrHzdHyYwK p1HhJuRD6R0feKB6k16+LK6edK8aNnT6FiJcV9lFuJbk+C2QEQcw3WVcoCDrHx3gvv9Xo63OjUX lfgk5e9hCpMiY+TBqMq9eeNE0sz8ZFkjds37rrVn6YHvbNVRgzz1AX1Th02jbjP7JpZ2wbEEWBz ZKOl9MrKOPpJksN6jX/+ashyM+pG66z3pUDxNzS5lzWO6PZIUTPnMCsKt3C7wJ361UCL6mro9BD +pjLvXZoSW6lyERALTImNhbJRo/Rpoq1j0gAodTO06d3OGjPvVN9A+ZzrXR1f6D+85TAH5lAkjl vH6wEK44ALH9Ce9s44RM+lUeI3EDLKJTcjLLCWvpjaSHJg8BJNKrDg6s4wGZrJAzF9vCneknDIL ghYcNKQyUpkH2nOiLIsacURWUmpGnuDRS+kJiJ/TtsOzGcsVYM2r5wnWYJWP7d4XtzrjscxYpem g== X-Received: by 2002:a05:6000:1845:b0:456:3af2:852e with SMTP id ffacd0b85a97d-45e5c5ab792mr8453561f8f.1.1779041217551; Sun, 17 May 2026 11:06:57 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:57 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 10/12] crypto: atmel-sha204a - guard remove path against missing client data Date: Sun, 17 May 2026 18:06:37 +0000 Message-Id: <20260517180639.9657-12-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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 I2C client private data in atmel_sha204a_remove() only after sysfs cleanup and add a NULL check before continuing device teardown. This prevents dereferencing invalid or partially initialized client state during driver removal and makes the teardown path more robust against inconsistent probe/remove sequences. No functional change intended. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-sha204a.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/atmel-sha204a.c b/drivers/crypto/atmel-sha204a.c index 613ed5e7b3f6..923e462ff6b0 100644 --- a/drivers/crypto/atmel-sha204a.c +++ b/drivers/crypto/atmel-sha204a.c @@ -213,7 +213,11 @@ static int atmel_sha204a_probe(struct i2c_client *clie= nt) =20 static void atmel_sha204a_remove(struct i2c_client *client) { - struct atmel_i2c_client_priv *i2c_priv =3D i2c_get_clientdata(client); + struct atmel_i2c_client_priv *i2c_priv; + + i2c_priv =3D i2c_get_clientdata(client); + if (WARN_ON(!i2c_priv)) + return; =20 devm_hwrng_unregister(&client->dev, &i2c_priv->hwrng); =20 --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 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 F125C3CB8E5 for ; Sun, 17 May 2026 18:07:00 +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=1779041227; cv=none; b=ZpPVJbqirmI6WMpI46TRcYSKZ7VxGl/W41zr5gXINp5HKnAo+tjerZpaRKF2s+RzJSfDdv3Zrs6KTyHDRytkzagDFzv31FkkgGx3/o2bH+EpR2kn0RSeReLRp2K9zrqX1iUBkUA7c9rPOVDxcxkrGcETD7HDbMnxPQu7kFlpSI4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041227; c=relaxed/simple; bh=8CYR6ggy/KHhCAqm6qu1i3JqF7qNai4ADGH0anF/GPA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=mv93NbsDuSMd2OVwCmV7HSnmrWEjjCe1Z+sYoestT1FLvhz7iyy0Oq4d0CZgMFP5G9JHPKd6qyheYS5cp7owshmjqD4o8MVSoaRlRlszE7H/RgMJqffRUq0MZ+Px3JuoJi9/Otn5ZppD1mChcnlbbKpGp5bRHGgcU3sZu3GY8R0= 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=AODvYy4p; 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="AODvYy4p" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-48962cd0864so2315615e9.1 for ; Sun, 17 May 2026 11:07:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041219; x=1779646019; 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=KVgxZ97arp1tDrxkndKJZ1UkHaadytuLX7zd1XhXT7c=; b=AODvYy4pxr0KI4j6J16IFsdmZP3D6lINGXT49IxHr7DGsWudppw1MRDsn0rJ6ohVco QwWuFYYrxLMD6Ob0YyobmA3h2G7wzrvqIrq+12vRA970uUUAltUYpH1uaWgRfhBXaQwb rWBlCVvccakMmcEnlUBF5nJDLgIW6PY4iuHd/H2xrUFY5lt1HlDyvfhusr5FieO6c8xY QvNJ5LSr60ce3pKG1F4HaoNPIFuCBiLvKbAS2DD6dM0MbcjZbmp8IRNWkC1qFwbPFI3V bu0/8x1RMoVNd5bwsm90yPRWUpUHcUrj+PUJzgdiMMDVKRy8mJsCDetwz42EE0ziTzfN dAFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041219; x=1779646019; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KVgxZ97arp1tDrxkndKJZ1UkHaadytuLX7zd1XhXT7c=; b=P4Q3RktMkcYp+SSNLc9w3OOpSxloe6ND1ZWscTkPKvknnNgImpQNonMABnWJoSlfeW PtjVammsFHXfZ9Z3kZnr043GFfv5CBx7Vq+eXxRB+WDKuyGbxC7kJv2Mgslr0AR2+PRd u4WATo7EvNehddBh7fwMe1+gNMTBYWVRBZX17FPE7Mii+HOlx9aC0MfegJx+sHsWsDfQ BqlEGlgwFgvAnnkVwhYfcSWdVbvdr0EHzCrG+6YNPKUMVAdGjuT9dsr4a9FeLgjIMFP1 IGzd45rGIFnIySFFgnIbcwGPhTrXK+NR7Lf2c/br9UUgzJW/VnWn0e7mPvre+EYw/P+m vSIA== X-Forwarded-Encrypted: i=1; AFNElJ+IZZrMMgAq+M376JHSyNEHI8zhuKdkPRhqFHm8A0Yf2QT0B9nlbXF0qi5NnMC43YVIKtA1M+SIqmfkp3w=@vger.kernel.org X-Gm-Message-State: AOJu0YzZ5zFf2lgBNjLQfOgKwZX5Rvk9dPq0iLf+wrC4hS4x1wDJGkQd Nu34fwv1bw77UynBuc463Nfy2c8MBwFsGa6cdNs6qSBdga2v/F/2WtRo X-Gm-Gg: Acq92OEdrD4fZuixdytjhzRA5FQOYjOJXEfuhgiZ1ma4IdMzcpm62za3nXpREIVH8Dn wwFv8FzuF5w2/ADDAtiFczlqEB4lsAf87pf9LGl3VIAsKtAU7UkZP4cvWBiNiIY8X8Xqprrx39G o6K7JVjQlGYQrpkkjIwdm653Bp9UEbCA+j5fopRoNhBWizyBVx2WlnR4/nX+/q9qtUp2w363mGX F7UeNghY7zBiQNYyZYHllEba5ozNrBxuIHm+TNUWXMx4wGXxq1nCgYvnwW2t8kifETS5pavcdpR 6V00hkqmNTJ3OTB0j5URbgGoRMHswbpQg3cnDS6sWPG++5I3nAQEETHQKDTnI188LeneRwuz6lB JGdMHAJxduHe3U32fWA9IR+ldeAG5z5UkYXHXiQ1SF85HQmHktOwM8GgUJTx+RCpc07qWZAml9T 0QRC35bBmwC8KvEjEG8k3TDJFBie9XhgfSqXGahsfzVzrSLZX0vRRF0QLTIyz2UzI= X-Received: by 2002:a05:600c:310f:b0:48e:7a10:1f5e with SMTP id 5b1f17b1804b1-48fe5fd5b3amr81048735e9.2.1779041219238; Sun, 17 May 2026 11:06:59 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:58 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 11/12] crypto: atmel - move i2c client selection to core driver Date: Sun, 17 May 2026 18:06:38 +0000 Message-Id: <20260517180639.9657-13-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Move the I2C client selection/allocation logic from the ECC-specific driver into the shared Atmel I2C core. This consolidates hardware client selection in a single place, allowing all Atmel crypto drivers to reuse the same balancing logic for selecting the least-loaded I2C client based on the current transformation count. No functional change is intended. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-ecc.c | 37 +------------------------------------ drivers/crypto/atmel-i2c.c | 36 ++++++++++++++++++++++++++++++++++++ drivers/crypto/atmel-i2c.h | 1 + 3 files changed, 38 insertions(+), 36 deletions(-) diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c index ce7a2e750ba8..f877f236552f 100644 --- a/drivers/crypto/atmel-ecc.c +++ b/drivers/crypto/atmel-ecc.c @@ -200,41 +200,6 @@ static int atmel_ecdh_compute_shared_secret(struct kpp= _request *req) return ret; } =20 -static struct i2c_client *atmel_ecc_i2c_client_alloc(void) -{ - struct atmel_i2c_client_priv *i2c_priv, *min_i2c_priv =3D NULL; - struct i2c_client *client =3D ERR_PTR(-ENODEV); - int min_tfm_cnt =3D INT_MAX; - int tfm_cnt; - - spin_lock(&atmel_i2c_mgmt.i2c_list_lock); - - if (list_empty(&atmel_i2c_mgmt.i2c_client_list)) { - spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); - return ERR_PTR(-ENODEV); - } - - list_for_each_entry(i2c_priv, &atmel_i2c_mgmt.i2c_client_list, - i2c_client_list_node) { - tfm_cnt =3D atomic_read(&i2c_priv->tfm_count); - if (tfm_cnt < min_tfm_cnt) { - min_tfm_cnt =3D tfm_cnt; - min_i2c_priv =3D i2c_priv; - } - if (!min_tfm_cnt) - break; - } - - if (min_i2c_priv) { - atomic_inc(&min_i2c_priv->tfm_count); - client =3D min_i2c_priv->client; - } - - spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); - - return client; -} - static void atmel_ecc_i2c_client_free(struct i2c_client *client) { struct atmel_i2c_client_priv *i2c_priv =3D i2c_get_clientdata(client); @@ -249,7 +214,7 @@ static int atmel_ecdh_init_tfm(struct crypto_kpp *tfm) struct atmel_ecdh_ctx *ctx =3D kpp_tfm_ctx(tfm); =20 ctx->curve_id =3D ECC_CURVE_NIST_P256; - ctx->client =3D atmel_ecc_i2c_client_alloc(); + ctx->client =3D atmel_i2c_client_alloc(); if (IS_ERR(ctx->client)) { pr_err("tfm - i2c_client binding failed\n"); return PTR_ERR(ctx->client); diff --git a/drivers/crypto/atmel-i2c.c b/drivers/crypto/atmel-i2c.c index 861af52d7a88..4beab68997c4 100644 --- a/drivers/crypto/atmel-i2c.c +++ b/drivers/crypto/atmel-i2c.c @@ -57,6 +57,42 @@ static void atmel_i2c_checksum(struct atmel_i2c_cmd *cmd) *__crc16 =3D cpu_to_le16(bitrev16(crc16(0, data, len))); } =20 +struct i2c_client *atmel_i2c_client_alloc(void) +{ + struct atmel_i2c_client_priv *i2c_priv, *min_i2c_priv =3D NULL; + struct i2c_client *client =3D ERR_PTR(-ENODEV); + int min_tfm_cnt =3D INT_MAX; + int tfm_cnt; + + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); + + if (list_empty(&atmel_i2c_mgmt.i2c_client_list)) { + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); + return ERR_PTR(-ENODEV); + } + + list_for_each_entry(i2c_priv, &atmel_i2c_mgmt.i2c_client_list, + i2c_client_list_node) { + tfm_cnt =3D atomic_read(&i2c_priv->tfm_count); + if (tfm_cnt < min_tfm_cnt) { + min_tfm_cnt =3D tfm_cnt; + min_i2c_priv =3D i2c_priv; + } + if (!min_tfm_cnt) + break; + } + + if (min_i2c_priv) { + atomic_inc(&min_i2c_priv->tfm_count); + client =3D min_i2c_priv->client; + } + + spin_unlock(&atmel_i2c_mgmt.i2c_list_lock); + + return client; +} +EXPORT_SYMBOL(atmel_i2c_client_alloc); + void atmel_i2c_init_read_config_cmd(struct atmel_i2c_cmd *cmd) { cmd->word_addr =3D COMMAND; diff --git a/drivers/crypto/atmel-i2c.h b/drivers/crypto/atmel-i2c.h index 43a0c1cfcd94..ba5a860011c8 100644 --- a/drivers/crypto/atmel-i2c.h +++ b/drivers/crypto/atmel-i2c.h @@ -190,6 +190,7 @@ void atmel_i2c_init_genkey_cmd(struct atmel_i2c_cmd *cm= d, u16 keyid); int atmel_i2c_init_ecdh_cmd(struct atmel_i2c_cmd *cmd, struct scatterlist *pubkey); =20 +struct i2c_client *atmel_i2c_client_alloc(void); void atmel_i2c_unregister_client(struct atmel_i2c_client_priv *i2c_priv); =20 #endif /* __ATMEL_I2C_H__ */ --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 061103CAE66 for ; Sun, 17 May 2026 18:07:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041228; cv=none; b=BhxkwS5XXSxm8mhnpPE4aZ1kw4ACCaIwZs3MkK+iqVvN3orudJd564foEzYyZQw4LNyeEGc/ezYxyuktZM/U89teW0YjZ3A4RelwsxJtodhUtY1cGC9+tdbGyxeup6hUzZG3+gpoFqhkc6lRaQJy+ZHcBVwj6a3f5/e7ic8I0dQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041228; c=relaxed/simple; bh=q9vahDLeF0paWqfekbQjBqfdEH/373Mc1f3Pd2pMUUY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=lmOIgeVc38Ojd6CGYN6nDsyLSa7E/ioGg5QQXQqWSOjPrsRd8ae8k7XYAOl16dLqEkULgw9WuIwkQ6k9zNUGZ7dobulDGfReDLe0CTOdKvioyRJjKqa97ZgiQMKyg1Kyj51d52CxU3Nk+0Nevhc1ZsIpnrmEqmxNDpG1nWvfsAw= 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=dKuh9FhI; arc=none smtp.client-ip=209.85.128.44 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="dKuh9FhI" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-48e72b02bf6so2319265e9.3 for ; Sun, 17 May 2026 11:07:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041220; x=1779646020; 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=UnEz4kb5yNtR6Ed+ZspZs0azXccaDtFZKA7zrYYeQpw=; b=dKuh9FhIzz4XizwKw+FsPfOH3Br6zOu+c8EYdmVrxGFV/JkVWv8GECL75gA1MbXoqk wiiuT02KBR4McjN9nw76hkYaXSfS0ZK+Q8QKWSSnN8ZJ8Y9LyDuBhfha7PoFOQErVXE9 2GtyJI863PkYH08upvx0FTM2hkxh84s/Z5EwgsuN3O466uaM0pzjjlpPQxEV4RLWsVUa xpfqAFJC61EzYwoi3XXHgGnHW5164fUtQ1nAniTBlwEv3e0po/N7ulchDv8WYmErReMx j93YqN6MFMNXOCAm0JE1jZB2JTh5oJmnDFaYpfOhQGNfqYhcIA0My9ebGfoj/UjKKdz2 cF/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041220; x=1779646020; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UnEz4kb5yNtR6Ed+ZspZs0azXccaDtFZKA7zrYYeQpw=; b=XxCmHG9KqZky7wlMYUCRVvbwinJBtqipQE2oI22IJVPGans106npO3eFZE800KVobm GnWMT+Ek3kt1jX/VDXX/rPgFKLQZzxyFacADgDcxmhpdK6ElgtZ4GhFh8DOsq6B5c4FI rb98tdmQPQEBB7fwa44tzkM7tTVAHyLi9YYgAPtxsKvctuwaUWKiJLjVNoVK+DMNdb6C wSZzzzdw8LNBEBwpcazLBwi2YBLHSYmu7Z6gbhR01S01bDM0UfCJka2S5ubSmh9ka+yS CPmw1d5ldpwPwvniU2XkDrNtRvwR66Fez+fO1AvDN+gqCrMlkVbExiu64ERNYPZ9HO7h XPQQ== X-Forwarded-Encrypted: i=1; AFNElJ/wOVn2svdeA7w5WQs3sixj3Bv3bAe9JSJN2aGmJyfnFmNP2yT6HbiDya4APRm8k/HWBuirZQluYoavYXE=@vger.kernel.org X-Gm-Message-State: AOJu0Yw8elnkXigr5hZClDPRjCO8m55WAadfdCPBPd447MhQRUnH8S+A BDVjEhPdHn5vzjRawvJUvlhxgh0v9FlQWVhiSZ//SbiAp73docj3WS6L X-Gm-Gg: Acq92OHsN8XzMM1+Hi7fyCKiSpBq+pdRRwyIPWU0tD42v5iHQ/C9eqZ8wQeh9Ca0qjj A6dVC0786TVVA+UnBOabrm+W7pJUcDyciPCMPZBJZxaqCR364yyxxE3R/7ACTMRv26syReHV6Dp XFHe+Gnqhj54HlwLlh/K/rFuUcvy09m/aYXYDeq+zGx+AKqnr46KeEeJo14W6/BoBIv3VQGAhDQ x7DNLK81a9uoqm8NJWk6Tbd4Om8tJp9KoNvtQC6yR19eVeaRlaeebr4/N7NVAQV9uiytwxO9rlX n6ozkQi0AvaTPeYZboshsRv+Lsr9A1M47r8fgetfw52jwDel0tK1Er/kqvpEeLqN2+2fbRiHnoD W/eoLlMFS3m6etlnk1kVny9n/cd0dyJSQvmJW7o+sD61UEGl3yJ17xypsgGGAmhDzVL10jPDpmz QHQWrEcewbXxP67drZpcAqJiYQzVkNnE3b1a1rA2Z/1bWpjrc4sNVZCsZgGMS5Gzs= X-Received: by 2002:a05:600c:a48:b0:489:e696:127d with SMTP id 5b1f17b1804b1-48fe63022e8mr80058775e9.5.1779041220235; Sun, 17 May 2026 11:07:00 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:59 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH 12/12] crypto: atmel - add capability-based I2C client selection Date: Sun, 17 May 2026 18:06:39 +0000 Message-Id: <20260517180639.9657-14-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Add capability filtering to the I2C client allocator to support feature-aware selection of hardware clients. Each client now exposes supported features via a capability mask. The allocator selects only clients matching the requested capability and still prefers the least-loaded device. ECC marks ECDH support during probe and requests matching clients during tfm setup. SHA204A exposes no capabilities for now. This is preparatory work for upcoming features that will extend hardware usage beyond a single algorithm type. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-ecc.c | 4 +++- drivers/crypto/atmel-i2c.c | 5 ++++- drivers/crypto/atmel-i2c.h | 8 +++++++- drivers/crypto/atmel-sha204a.c | 2 ++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c index f877f236552f..0eeee9ae6c48 100644 --- a/drivers/crypto/atmel-ecc.c +++ b/drivers/crypto/atmel-ecc.c @@ -214,7 +214,7 @@ static int atmel_ecdh_init_tfm(struct crypto_kpp *tfm) struct atmel_ecdh_ctx *ctx =3D kpp_tfm_ctx(tfm); =20 ctx->curve_id =3D ECC_CURVE_NIST_P256; - ctx->client =3D atmel_i2c_client_alloc(); + ctx->client =3D atmel_i2c_client_alloc(ATMEL_CAP_ECDH); if (IS_ERR(ctx->client)) { pr_err("tfm - i2c_client binding failed\n"); return PTR_ERR(ctx->client); @@ -286,6 +286,8 @@ static int atmel_ecc_probe(struct i2c_client *client) =20 i2c_priv =3D i2c_get_clientdata(client); =20 + i2c_priv->caps =3D BIT(ATMEL_CAP_ECDH); + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); list_add_tail(&i2c_priv->i2c_client_list_node, &atmel_i2c_mgmt.i2c_client_list); diff --git a/drivers/crypto/atmel-i2c.c b/drivers/crypto/atmel-i2c.c index 4beab68997c4..b7ee2ec37531 100644 --- a/drivers/crypto/atmel-i2c.c +++ b/drivers/crypto/atmel-i2c.c @@ -57,7 +57,7 @@ static void atmel_i2c_checksum(struct atmel_i2c_cmd *cmd) *__crc16 =3D cpu_to_le16(bitrev16(crc16(0, data, len))); } =20 -struct i2c_client *atmel_i2c_client_alloc(void) +struct i2c_client *atmel_i2c_client_alloc(enum atmel_i2c_capability cap) { struct atmel_i2c_client_priv *i2c_priv, *min_i2c_priv =3D NULL; struct i2c_client *client =3D ERR_PTR(-ENODEV); @@ -73,6 +73,9 @@ struct i2c_client *atmel_i2c_client_alloc(void) =20 list_for_each_entry(i2c_priv, &atmel_i2c_mgmt.i2c_client_list, i2c_client_list_node) { + if (!(i2c_priv->caps & BIT(cap))) + continue; + tfm_cnt =3D atomic_read(&i2c_priv->tfm_count); if (tfm_cnt < min_tfm_cnt) { min_tfm_cnt =3D tfm_cnt; diff --git a/drivers/crypto/atmel-i2c.h b/drivers/crypto/atmel-i2c.h index ba5a860011c8..70579b438256 100644 --- a/drivers/crypto/atmel-i2c.h +++ b/drivers/crypto/atmel-i2c.h @@ -115,6 +115,10 @@ struct atmel_i2c_cmd { #define ECDH_PREFIX_MODE 0x00 =20 /* Used for binding tfm objects to i2c clients. */ +enum atmel_i2c_capability { + ATMEL_CAP_ECDH =3D 0, +}; + struct atmel_i2c_client_mgmt { struct list_head i2c_client_list; spinlock_t i2c_list_lock; @@ -130,6 +134,7 @@ extern struct atmel_i2c_client_mgmt atmel_i2c_mgmt; * @wake_token_sz : size in bytes of the wake_token * @tfm_count : number of active crypto transformations on i2c c= lient * @hwrng : hold the hardware generated rng + * @caps : feature capability of the particular driver * * Reads and writes from/to the i2c client are sequential. The first byte * transmitted to the device is treated as the byte size. Any attempt to s= end @@ -146,6 +151,7 @@ struct atmel_i2c_client_priv { size_t wake_token_sz; atomic_t tfm_count ____cacheline_aligned; struct hwrng hwrng; + u32 caps; }; =20 /** @@ -190,7 +196,7 @@ void atmel_i2c_init_genkey_cmd(struct atmel_i2c_cmd *cm= d, u16 keyid); int atmel_i2c_init_ecdh_cmd(struct atmel_i2c_cmd *cmd, struct scatterlist *pubkey); =20 -struct i2c_client *atmel_i2c_client_alloc(void); +struct i2c_client *atmel_i2c_client_alloc(enum atmel_i2c_capability cap); void atmel_i2c_unregister_client(struct atmel_i2c_client_priv *i2c_priv); =20 #endif /* __ATMEL_I2C_H__ */ diff --git a/drivers/crypto/atmel-sha204a.c b/drivers/crypto/atmel-sha204a.c index 923e462ff6b0..1a28c6434669 100644 --- a/drivers/crypto/atmel-sha204a.c +++ b/drivers/crypto/atmel-sha204a.c @@ -173,6 +173,8 @@ static int atmel_sha204a_probe(struct i2c_client *clien= t) =20 i2c_priv =3D i2c_get_clientdata(client); =20 + i2c_priv->caps =3D 0; + /* add to client list */ spin_lock(&atmel_i2c_mgmt.i2c_list_lock); list_add_tail(&i2c_priv->i2c_client_list_node, --=20 2.53.0 From nobody Mon May 25 06:41:05 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.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 47A893CAA39 for ; Sun, 17 May 2026 18:06:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041211; cv=none; b=Hly94hvgncSHElgVLUGbCitssx5lKs/b9tEUARElnLdz7DCFR+zXyilQ9ZzMyDU0Wtpn60WGz08eMHOZio3N0jdVryhK2wO13xm1qg/9jexI5R92IbTtnboDVpnJsJwFjwTGFlOOK8XCN5lQDvjAlqzjQYIbEc37rr7IZbDkCDY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779041211; c=relaxed/simple; bh=q9vahDLeF0paWqfekbQjBqfdEH/373Mc1f3Pd2pMUUY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tiGi5NEPyGUnuAHywfympDWTnRtamdwPfURH4ESPUn1DFdGaAjVMdiiyh0TmSWd8+nim8ZFoxw8/QRAdaC2h68iqcE4456K0fTPx8l7vBKyyhB6ic0cYtXqKFnoAAcYvuwxZWuK23Vb/hZjxHKXtJHEjHdjhGBu5U5X7NYZNc/Y= 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=qvNUMt+V; arc=none smtp.client-ip=209.85.128.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="qvNUMt+V" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4891cd5927dso2085705e9.0 for ; Sun, 17 May 2026 11:06:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779041208; x=1779646008; 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=UnEz4kb5yNtR6Ed+ZspZs0azXccaDtFZKA7zrYYeQpw=; b=qvNUMt+V6o2pPzgY7CCODkWCDvdzRKq+HJtFK3Np+JjgoGln3kZV/a9iYeL9dfjn7b 1fssLoZ1vcKgedZhs6raVDTwx54GX9VzBpPabFehFIUBc2HnEWQjoJVG9NpwqzRyuh0h VVVAqKD0ecoc3CB5hIdc+Lo3R5E2wmFB7wzHhuRLCEKY/8RJ4sKjHnMVgOzk/8MaE9KC pE1+PZ4R6rLHugDXk1T6cc4sniwrduA2RWjDHQ+EbRMrC70tw32RLAOm561UBZ7lnr9B FLDoutzfFFQRMmtKLCW/+/17W5INK/033/w0BzzRc5ARl0IhVhFzXpKA7L3gmcI9xAiQ wD4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779041208; x=1779646008; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UnEz4kb5yNtR6Ed+ZspZs0azXccaDtFZKA7zrYYeQpw=; b=rQ/r9Mldiz8d/nLVGRZm09D1KLmbs7T5bMjRPFNw+mFAq578KaYxho8CnyG47ULj1+ sdLJpOwWmusqqQVZ481pK1iui4KK4uEWeXkxwwQROIbpooI58R30UL0NTU0YVPWcaGOL HPbVxDQsOtehZRF4uUcfMrzvmLSxqoebaY89bLRoLeZTY+llU+q3sw3eAu3uY7kj5dAY r0Nz/hDw9gtG1OxablPRQbuQqe1+WWOttyhJ/WzWzlbYyRUotdA9LxDzJYOEJv300UfU Ulrd0UGXU3efFCXBAUbMlU9CpIMqmK0je1DFx0X4qZd3GmcYeYJttywl7UgsVf7Tkxtk zMjQ== X-Forwarded-Encrypted: i=1; AFNElJ+yOUR+zSqyV6AYIzwD0xxn4Kutx5zw6kWbNgi2ORMJiFiiJNKN1Z0Dk4Q2xhxcSi2q/uoJaccAWzUHz4Y=@vger.kernel.org X-Gm-Message-State: AOJu0Yxa0GegcJcRcRIShlXq1kjKA0425zbWagS0lZB+IQzfb+tKTT4V W82XhPwRBAEPeLOu7LN+9Kuzsj95IlAd+PMExrf8+1LVx8t/Kxhvkvd0I/7Q1w== X-Gm-Gg: Acq92OF+AD9Ufc72NxT8/dBCPZoP6Mm7rDWxEAR850RJjAbuWvdVB3/Me37M0fW0lXs rTUIZrBo5wEYrVZxkTYG8NDGY/zXR8G8izikeYC9OPjElkrcSHfW+tEth2IvCwpqPQkN7pX6eZF VM6KFgbbORH5TtstqUk+o0LoMwDms201jKGQMU9Q5rEHbBhB/JeBPZGurDp3JJOhjJsM+cdF5XV OHJLKhziAZ0MAlYYS+9Zjfc6V9Djjp5yhbZem2AwSSTh7nGGwExsikODULnC3uTNyXRguKwFbL1 JdVsbda9ZTU09SwZRWVQQ5Zj4DS0I3tEMg43sSdsWxSpqaPe//XyIqdz8nzriyMUxhr2FZmDIhD gJ/QsRMDT+GaJlIp/Dj1++B6vYeQigZlqO2L0DOyBTARRmfrtFvVAHFxoWUUDj3EOpRxQDmz5RE Y7nHkmb+oEdDAtUIRwQG/IxDtxMej1oNwpr/PYZ3wlPmPnEm8fzqo87ViLf7QNTL8= X-Received: by 2002:a05:6000:29cf:b0:452:db27:b3ca with SMTP id ffacd0b85a97d-45e5c60a590mr5430759f8f.7.1779041206655; Sun, 17 May 2026 11:06:46 -0700 (PDT) Received: from menon.v.cablecom.net (84-74-0-139.dclient.hispeed.ch. [84.74.0.139]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da15a6454sm31766775f8f.34.2026.05.17.11.06.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 11:06:46 -0700 (PDT) From: Lothar Rubusch To: thorsten.blum@linux.dev, herbert@gondor.apana.org.au, davem@davemloft.net, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, claudiu.beznea@tuxon.dev Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, l.rubusch@gmail.com Subject: [PATCH] crypto: atmel - add capability-based I2C client selection Date: Sun, 17 May 2026 18:06:27 +0000 Message-Id: <20260517180639.9657-2-l.rubusch@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260517180639.9657-1-l.rubusch@gmail.com> References: <20260517180639.9657-1-l.rubusch@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" Add capability filtering to the I2C client allocator to support feature-aware selection of hardware clients. Each client now exposes supported features via a capability mask. The allocator selects only clients matching the requested capability and still prefers the least-loaded device. ECC marks ECDH support during probe and requests matching clients during tfm setup. SHA204A exposes no capabilities for now. This is preparatory work for upcoming features that will extend hardware usage beyond a single algorithm type. Signed-off-by: Lothar Rubusch --- drivers/crypto/atmel-ecc.c | 4 +++- drivers/crypto/atmel-i2c.c | 5 ++++- drivers/crypto/atmel-i2c.h | 8 +++++++- drivers/crypto/atmel-sha204a.c | 2 ++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c index f877f236552f..0eeee9ae6c48 100644 --- a/drivers/crypto/atmel-ecc.c +++ b/drivers/crypto/atmel-ecc.c @@ -214,7 +214,7 @@ static int atmel_ecdh_init_tfm(struct crypto_kpp *tfm) struct atmel_ecdh_ctx *ctx =3D kpp_tfm_ctx(tfm); =20 ctx->curve_id =3D ECC_CURVE_NIST_P256; - ctx->client =3D atmel_i2c_client_alloc(); + ctx->client =3D atmel_i2c_client_alloc(ATMEL_CAP_ECDH); if (IS_ERR(ctx->client)) { pr_err("tfm - i2c_client binding failed\n"); return PTR_ERR(ctx->client); @@ -286,6 +286,8 @@ static int atmel_ecc_probe(struct i2c_client *client) =20 i2c_priv =3D i2c_get_clientdata(client); =20 + i2c_priv->caps =3D BIT(ATMEL_CAP_ECDH); + spin_lock(&atmel_i2c_mgmt.i2c_list_lock); list_add_tail(&i2c_priv->i2c_client_list_node, &atmel_i2c_mgmt.i2c_client_list); diff --git a/drivers/crypto/atmel-i2c.c b/drivers/crypto/atmel-i2c.c index 4beab68997c4..b7ee2ec37531 100644 --- a/drivers/crypto/atmel-i2c.c +++ b/drivers/crypto/atmel-i2c.c @@ -57,7 +57,7 @@ static void atmel_i2c_checksum(struct atmel_i2c_cmd *cmd) *__crc16 =3D cpu_to_le16(bitrev16(crc16(0, data, len))); } =20 -struct i2c_client *atmel_i2c_client_alloc(void) +struct i2c_client *atmel_i2c_client_alloc(enum atmel_i2c_capability cap) { struct atmel_i2c_client_priv *i2c_priv, *min_i2c_priv =3D NULL; struct i2c_client *client =3D ERR_PTR(-ENODEV); @@ -73,6 +73,9 @@ struct i2c_client *atmel_i2c_client_alloc(void) =20 list_for_each_entry(i2c_priv, &atmel_i2c_mgmt.i2c_client_list, i2c_client_list_node) { + if (!(i2c_priv->caps & BIT(cap))) + continue; + tfm_cnt =3D atomic_read(&i2c_priv->tfm_count); if (tfm_cnt < min_tfm_cnt) { min_tfm_cnt =3D tfm_cnt; diff --git a/drivers/crypto/atmel-i2c.h b/drivers/crypto/atmel-i2c.h index ba5a860011c8..70579b438256 100644 --- a/drivers/crypto/atmel-i2c.h +++ b/drivers/crypto/atmel-i2c.h @@ -115,6 +115,10 @@ struct atmel_i2c_cmd { #define ECDH_PREFIX_MODE 0x00 =20 /* Used for binding tfm objects to i2c clients. */ +enum atmel_i2c_capability { + ATMEL_CAP_ECDH =3D 0, +}; + struct atmel_i2c_client_mgmt { struct list_head i2c_client_list; spinlock_t i2c_list_lock; @@ -130,6 +134,7 @@ extern struct atmel_i2c_client_mgmt atmel_i2c_mgmt; * @wake_token_sz : size in bytes of the wake_token * @tfm_count : number of active crypto transformations on i2c c= lient * @hwrng : hold the hardware generated rng + * @caps : feature capability of the particular driver * * Reads and writes from/to the i2c client are sequential. The first byte * transmitted to the device is treated as the byte size. Any attempt to s= end @@ -146,6 +151,7 @@ struct atmel_i2c_client_priv { size_t wake_token_sz; atomic_t tfm_count ____cacheline_aligned; struct hwrng hwrng; + u32 caps; }; =20 /** @@ -190,7 +196,7 @@ void atmel_i2c_init_genkey_cmd(struct atmel_i2c_cmd *cm= d, u16 keyid); int atmel_i2c_init_ecdh_cmd(struct atmel_i2c_cmd *cmd, struct scatterlist *pubkey); =20 -struct i2c_client *atmel_i2c_client_alloc(void); +struct i2c_client *atmel_i2c_client_alloc(enum atmel_i2c_capability cap); void atmel_i2c_unregister_client(struct atmel_i2c_client_priv *i2c_priv); =20 #endif /* __ATMEL_I2C_H__ */ diff --git a/drivers/crypto/atmel-sha204a.c b/drivers/crypto/atmel-sha204a.c index 923e462ff6b0..1a28c6434669 100644 --- a/drivers/crypto/atmel-sha204a.c +++ b/drivers/crypto/atmel-sha204a.c @@ -173,6 +173,8 @@ static int atmel_sha204a_probe(struct i2c_client *clien= t) =20 i2c_priv =3D i2c_get_clientdata(client); =20 + i2c_priv->caps =3D 0; + /* add to client list */ spin_lock(&atmel_i2c_mgmt.i2c_list_lock); list_add_tail(&i2c_priv->i2c_client_list_node, --=20 2.53.0