From nobody Sun May 10 06:28:25 2026 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0327B25949E for ; Mon, 30 Dec 2024 14:20:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735568449; cv=none; b=NIZ1V8+mwHE5RMdRFbHi4RrfeBZsjw/fqcA4w7pyblxwThdOu2haa647L1xc+5gFEdf3ETSaz0LsdyMtpKkuBxz26Vy+VDYpst0iYT9F5e/ACwJMGYHTOhE+19chFhCgDFRAIuU1ywlh/mtFCkAUAAa0wWlPBe7y74CmKTu0bSw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735568449; c=relaxed/simple; bh=Tgoi0kNlxauyETu1oJO5LRnJyFH0fnSlbbIczRwkGtw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=to75q5qKlueMzmcqgAgWRi+MMXkeMyTjqCIFF8OYfSWyiuPA/P88JrPbVoc+39fSXqIvyr51r8wd7kiD72AyQuL2hrf3GjebArlL9KBckDVEOumfuwDdYdEQJPMFWAn3LyH8d1wkJFMYMj5LEW0AwNpAjl6Nv+RahT2NruPmIos= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=mFWYTQrH; arc=none smtp.client-ip=209.85.221.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="mFWYTQrH" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-3863c36a731so7094789f8f.1 for ; Mon, 30 Dec 2024 06:20:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1735568446; x=1736173246; 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=Frlfh7t/HgPLJ+TuNqNNaRAGFefPKYKCqz5Rh+gjbNA=; b=mFWYTQrHdCBI/IGdk7T9FO5RDWYB9qFZPicZtnX4zZTY/OEdax4d+AaJEMABPkHNUW 2dSC3kD33F/Ba2/EDjsRTYWbpOa3XI7m9q6H1R42d+BId3Jq5MTFo1CRncX0JLZ8Knso rkogdMU0PIB+1OzMoTndIjMHeasI336H6mlN9idFWYW+0TjtXEoGTU9lwvio+iDQXBhT r3qraGUUpL8IB0vET5DdEN0HF96F6kwVk5moMWjGG3RCP9anOtLO8Ib8RiKrG0Puw/YC efsFz8dbAFzw/w2X7SJWhaihZrZA2HVmipcHY1B7olp6mqJRbqV4bVJH9koyeTuOLdxt QbtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735568446; x=1736173246; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Frlfh7t/HgPLJ+TuNqNNaRAGFefPKYKCqz5Rh+gjbNA=; b=F0AenX7HaV3vXuyg5tS+eqW32w42VhkILvCkmcVkb8ALoJcnps4XHXTNhuub0w2YNW 7+tp0OnC1kMZ3V24H5ja92qwLdwCdDL7KNpzNo83wDOLdtsMBTls45Pw0GjcWVM9AYOH hgEbK5/uG1fSOo5RIXcLJG3CKov/jYH5K4U77MTkf3lAf2JHgHNbW5KQJfeFtWXt2PqF IhlFv4bbU4wyOVKvPqM5oEinKp9Yt3D9a5/5kwHBKIdOgV1Ceudm/yqeNbB10JpyL0Qj yMbWMQCGD6VPsi1lfdqQ195NdUQAKRCvMzwBwAm8It3zCXajEqOfZ/OJzn94jLgQVhx9 U/gw== X-Gm-Message-State: AOJu0Yy/7nSlld2mQpK+p/WKjnbtmx1A9AdZZ+b29g1m8oiup5AXHHai QJ+BS4dAo4lFRaXU452W9RTiZODpgMkp9wusSN1Gvxl5BBFpLmS40DmMQ6CZglo= X-Gm-Gg: ASbGncvjfm6MXmpfp8nf0UnUtamIs158B/wHe380aQDVV05OmtzKSGK3tIoBescFun6 jZx1eY1GQtxW7OyEq1KLWQT+D/qu5i41QunJYywwmqh6crQGawbUnxDlr3Hlc2cPGvPNiLJdnlI grDpg+/QvYIjwlZ6IDytXKkDX5bRDOFsqEE7QrEbC1kRkDDFgRgx5zsO23mZfZyJ7bys3JRpm5H CgqivC81qYlc5o3k6rJnj+4DJCqP0h3cYm4fqWulLDIniT9iUnLC9wxcOSVwm97QOkgr2dKzdU5 yPQdcw== X-Google-Smtp-Source: AGHT+IGAuEkZNsbGMVlm873BcQJBqSSaqd+RLMayx4t4NVHDNQ+03wjJhqeLvYG8EXHCG28ksnFdRw== X-Received: by 2002:a5d:5f48:0:b0:385:faaa:9d1d with SMTP id ffacd0b85a97d-38a221fae50mr33835231f8f.35.1735568446225; Mon, 30 Dec 2024 06:20:46 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a1c8471dcsm30377536f8f.48.2024.12.30.06.20.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Dec 2024 06:20:45 -0800 (PST) From: srinivas.kandagatla@linaro.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Sascha Hauer , stable , Peng Fan , Srinivas Kandagatla Subject: [PATCH 1/6] nvmem: imx-ocotp-ele: simplify read beyond device check Date: Mon, 30 Dec 2024 14:18:56 +0000 Message-Id: <20241230141901.263976-2-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> References: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1135; i=srinivas.kandagatla@linaro.org; h=from:subject; bh=R0D9gqBxlhBscX7Wu4D4LAmpRfVgRB1VtMTuew/6uLU=; b=owEBbQGS/pANAwAKAXqh/VnHNFU3AcsmYgBncqvVtwaJSZFaPs3DmOVyXRSPdj8VPDZReH2MZ /kdZLdPFPiJATMEAAEKAB0WIQQi509axvzi9vce3Y16of1ZxzRVNwUCZ3Kr1QAKCRB6of1ZxzRV N/GzCACuuWNil9FldYji80tEkR/Kyig25DIxgSnAJjCh/kdM82pF06Jm1P0wcKN7PyAzUKRZtNB M0nI6S+/yngAgng0n1IjeMRnc73F4/RVyWKxioAxgu5hNNwhQVzKGpzwdUtx+kRFb/WXEaAECtB 5ZO+E+Z21LGs37HNtaua7I9KrdQ0jGkRevh3O3tlSNkY668BGEBDZsx9zVXPz0kofX1Asj73Kb7 BOL4wKfh0j5ZaWXRkFL8xky/Z1nYJaaWBj3nqC46iyUnCV3qFAmTWoKijAXAoSbJqjzvpbmlL57 57t28J/D1eshaqZCGE1c5ItZIus9hEFxLdlE5uxqIlNeaUTw X-Developer-Key: i=srinivas.kandagatla@linaro.org; a=openpgp; fpr=ED6472765AB36EC43B3EF97AD77E3FC0562560D6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sascha Hauer Do the read beyond device check on function entry in bytes instead of 32bit words which is easier to follow. Fixes: 22e9e6fcfb50 ("nvmem: imx: support i.MX93 OCOTP") Signed-off-by: Sascha Hauer Cc: stable Reviewed-by: Peng Fan Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/imx-ocotp-ele.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/nvmem/imx-ocotp-ele.c b/drivers/nvmem/imx-ocotp-ele.c index 1ba494497698..2e186b7d3b04 100644 --- a/drivers/nvmem/imx-ocotp-ele.c +++ b/drivers/nvmem/imx-ocotp-ele.c @@ -72,13 +72,13 @@ static int imx_ocotp_reg_read(void *context, unsigned i= nt offset, void *val, siz void *p; int i; =20 + if (offset + bytes > priv->data->size) + bytes =3D priv->data->size - offset; + index =3D offset; num_bytes =3D round_up(bytes, 4); count =3D num_bytes >> 2; =20 - if (count > ((priv->data->size >> 2) - index)) - count =3D (priv->data->size >> 2) - index; - p =3D kzalloc(num_bytes, GFP_KERNEL); if (!p) return -ENOMEM; --=20 2.25.1 From nobody Sun May 10 06:28:25 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 E4D361A4F1B for ; Mon, 30 Dec 2024 14:20:48 +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=1735568450; cv=none; b=h82OdCS096Epw2q5RNOZ/iNI2FWClOhf8fdUKj+4oKxcjz5kP5z4WAM98k+jkka0W4dduVn1chQx1NeEpwbFa5qjrAt+zqbGMrdZPVeAG6nm+iG0d1VgelcxcQ1UJaQxaznF53WR7hfOvxD9eb9EvZi2GYMMHtHH5rVC0eXZilk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735568450; c=relaxed/simple; bh=9I7jyL2QnvUDU+BBsvIQAd5+D8TUAi0i8AlBZUcpDwo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=L9Q/3dmwgWg0p/gC85JyRR5W0zI+e+pnYwiL1ktiy9+BMBKGE6NWbc9PQQquT7VMVUVM6gesju/JtuqKfskdiD4ypbfHf+5exjS+hNW35MbIbP/rCe35dZP6bFa91U9YGHYZGrKgz7H7+zejJdThXJW0bUGzoY3QgfCpBe8cQQE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Os3Fr0Fb; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Os3Fr0Fb" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-436202dd7f6so104823385e9.0 for ; Mon, 30 Dec 2024 06:20:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1735568447; x=1736173247; 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=BlujTbzK5rfh39vbXASzVBCudH8wclTQAbGEbUCVxUY=; b=Os3Fr0Fbg5SGngU7LEP0+f9rDq2KU/iPTeYohBQx0yuDeJznPAPf/+DZfQ/hty7KRT mNZTECvPqVSmdPtKnT0xDVmnnQCw1CBSzwMRIRJxDs8aokzapcRR3eZFJsWI+eg7D1Vf MOfuXlPFzzCsBG/fNt2xHxOH++WNJ178+MXXwV+LLS935UiE1IvMG6NWez3A70SU1py2 SEQeCHkDFeeU8G93c/CpgeqDsM5Quls3935ZIr1l5agIVPYY+jFht90GVYdfwjyUy9E/ Y7jKrJZjdufUvOjOzWFMdXAi1YDHtLkMFfw/E5F3A6i1Fr5waWQ03ZOdvmDoaPXMrkgg rboA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735568447; x=1736173247; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BlujTbzK5rfh39vbXASzVBCudH8wclTQAbGEbUCVxUY=; b=j/goEyKRcM/IYkV9RUHTVej2IbMLWbfwbH73av65Qedwz/vzO88vaVQ3O3uLpbSvAu dqa+0ejgZrmtQSd9kQfC1C5wt+axRTaXOiUhoLerik1N8h3m7WCkq+E5fUXKpC8zITNE juo6k4svm1a689smr1uphb5eQcHr2nQnkpZwT0C/WiJwrIQdScTANSZucdSf42oWo7ux 2eo+STUVl9nR8GcW65wAKwe5CCD3J+I7Kg8PefsIFrel+9xQCN5UO5pceXQpJev4gw3J dfYRcXxcfDHiwx+/but3wbnXdCOyN1CC9E2nK5HbkJ7MVRMT2NfalKuGL27QTw5lut9A tjIg== X-Gm-Message-State: AOJu0YyJ4YaXY9ytcJkl/S7rZKsdbwEjygQ72+FXU7o9BZ8fmYMEg/cL 04uTi9t4LuurWlCt8XK2FLUEpggc3qa1QFXe545qjYDd9GFDQBpRoJovCNgVKYo= X-Gm-Gg: ASbGncvOrRYEMoQQfLJHLAAAjRo7awWZBwYI95i5LGCYL7C/G44hOhoYyZ6KJDL+m10 8KV+dLpa5scHBk8KxRq4NEDNfVSFBfplfemhHQUby3lhyNmfnOuLKQMNET9JWz2kzj/90qEbeqF yDFm9jXqKrIVj5I2awENRPJeYrH+KCwx1oe8hj9/qZNW2IwIJxKOlHtgq4wj/sXkzt/ZXJGfqGz JuGgwJTP2jJJZnwoSJ0spOfJmSFl2aARNqj6U0eg45P98+f1gcGuyqXsk0YaBMj7qc3NFK/z0LL 0RzFIg== X-Google-Smtp-Source: AGHT+IFFBvZ2uqfM1AklevYcWtkTvpvylvGc0UjlQaBC1Blalmb6ByI8FlWOieiJh4fOYUD0qQTLBA== X-Received: by 2002:a5d:5f56:0:b0:386:1cd3:8a00 with SMTP id ffacd0b85a97d-38a223f5b41mr35029083f8f.40.1735568447295; Mon, 30 Dec 2024 06:20:47 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a1c8471dcsm30377536f8f.48.2024.12.30.06.20.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Dec 2024 06:20:46 -0800 (PST) From: srinivas.kandagatla@linaro.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Sascha Hauer , stable , Peng Fan , Srinivas Kandagatla Subject: [PATCH 2/6] nvmem: imx-ocotp-ele: fix reading from non zero offset Date: Mon, 30 Dec 2024 14:18:57 +0000 Message-Id: <20241230141901.263976-3-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> References: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1736; i=srinivas.kandagatla@linaro.org; h=from:subject; bh=JTSfMYij+Lng9dkIaYsC/y1zEYt1xpe/tt3dhA93ei8=; b=owGbwMvMwMVYtfBv5HGTUHPG02pJDOlFq6++jD18e0qflUy/+bHmWzKrOLof8BY8rbS5HO8Tc /HX53s6nYzGLAyMXAyyYoosSs/9o479efTtu9zdXphBrEwgUxi4OAVgIoIi7P9rtjJEzZxeK/D7 XL7i6Z7tNi+S9Mw0zhvU7eJ6z7lUZ6Gu9LnzqkKRSy6tvtc1YYbWfuPAT7FztZ2FHXhkZD12LJT mMrI4k+ootHf9pHtHF7xdcC4+d135uWLH9g3i5TIanewGIhMtEn48z199d/PN/1zPxe3LquSd4h TnfmJYX8Y0v/TOskeNuXYVDDzimvLhC7SZ9M54dYv0HN5r/ssrUSdwd1rXxkDVn5PmyGfXJXfl7 cm/LnjagC3pQHPrjlf6qa6yd+xmLDjF3t1ue3nm13irolWTlV/sMIltOMjsvuZF3Kz86ouLHDr5 xW1i30zx0Tc44hOlEcqeOU9mAUOsCrt1lMXRavm8F5PKAA== X-Developer-Key: i=srinivas.kandagatla@linaro.org; a=openpgp; fpr=ED6472765AB36EC43B3EF97AD77E3FC0562560D6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sascha Hauer In imx_ocotp_reg_read() the offset comes in as bytes and not as words. This means we have to divide offset by 4 to get to the correct word offset. Also the incoming offset might not be word aligned. In order to read from the OCOTP the driver aligns down the previous word boundary and reads from there. This means we have to skip this alignment offset from the temporary buffer when copying the data to the output buffer. Fixes: 22e9e6fcfb50 ("nvmem: imx: support i.MX93 OCOTP") Signed-off-by: Sascha Hauer Cc: stable Reviewed-by: Peng Fan Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/imx-ocotp-ele.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/nvmem/imx-ocotp-ele.c b/drivers/nvmem/imx-ocotp-ele.c index 2e186b7d3b04..b2d21a5f77bc 100644 --- a/drivers/nvmem/imx-ocotp-ele.c +++ b/drivers/nvmem/imx-ocotp-ele.c @@ -71,12 +71,14 @@ static int imx_ocotp_reg_read(void *context, unsigned i= nt offset, void *val, siz u32 *buf; void *p; int i; + u8 skipbytes; =20 if (offset + bytes > priv->data->size) bytes =3D priv->data->size - offset; =20 - index =3D offset; - num_bytes =3D round_up(bytes, 4); + index =3D offset >> 2; + skipbytes =3D offset - (index << 2); + num_bytes =3D round_up(bytes + skipbytes, 4); count =3D num_bytes >> 2; =20 p =3D kzalloc(num_bytes, GFP_KERNEL); @@ -100,7 +102,7 @@ static int imx_ocotp_reg_read(void *context, unsigned i= nt offset, void *val, siz *buf++ =3D readl_relaxed(reg + (i << 2)); } =20 - memcpy(val, (u8 *)p, bytes); + memcpy(val, ((u8 *)p) + skipbytes, bytes); =20 mutex_unlock(&priv->lock); =20 --=20 2.25.1 From nobody Sun May 10 06:28:25 2026 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.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 DD2621A9B3D for ; Mon, 30 Dec 2024 14:20:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735568451; cv=none; b=OPbHX2Fmf61it0ORw6sfq1t1UrPBP44MEEgM1NkekyBKkXMsE/ecRR6Dl7zQiQ1CEeRN1PsUnKDuiS93EB5ovLEki4MkYJurSbhnQaftPjU4vT1J1WPaOVgJwWfKLE77hjtLk3F40c5KQbfeLxI8o5fAL5VRN/Rn24h0ME3kaec= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735568451; c=relaxed/simple; bh=K/Uzl/llSgxR3szVbkaZzrhJzP/77Xi2uYHlf//10uY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=nmOMtr1YbKnZLKq8aI5hyrkWKhHpxTQmBBMjlJo24XK66bpGmESkI/DbPBrqG9rXWLAAZkUB6fr9i3xrr8dqX1Q0bNKJy/fg7n/vMEJFjcDO1T9JRcsRTRI4vBX6sK4eyQnNUOzx9t2j5FWVLfiVQA3nehdI0m7k2SVE9Xi6QwU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=dbOPYoG5; arc=none smtp.client-ip=209.85.221.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="dbOPYoG5" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-3862f32a33eso4308323f8f.3 for ; Mon, 30 Dec 2024 06:20:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1735568448; x=1736173248; 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=7tYDM4k1jdFUJceWJRbsjywHC88zkRNqQkmoNT1rtIo=; b=dbOPYoG5YyYS5hxFj3kkD0ZqrsrY4CBpOw4CDLDw9Jxl+JuOBBefP4TZ7v4v1fizvV GxjstfKDFKdML5xD/snaFj0IDZNLml7eb4H9JzagJnNgjpeanv9LjOm127A1T0m8Qho9 JOveK8L7VX+TvebXN7+hK3GqVC/HLVFUPvYuHtQaqP5eePule9sFdobyUk1Rk2jFQPOZ /Lj7aQaBJjYeYF9HdWl5Qt3787r7hoNJqrCtz+U8+Sr8CEDOQbh52bXbwNh02hK1wFCw YtgAADMe23mZpLWgnXrK3RR/RWPua1D/GHtUMGytRFF0/QpikJTM2cIcSVvqnVrNd1KN gvDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735568448; x=1736173248; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7tYDM4k1jdFUJceWJRbsjywHC88zkRNqQkmoNT1rtIo=; b=iQzc33ItbiAYP0/x22S+mLsaYaTizakgOaX+vXwZlpfoiSKvjec/kFDkrcqgBCIY6g pQy50T+W00GUPF3VhR4P2uV9K+qHCo4iNyhQHRIADXJGG17+dheqkWxwIAC0hnePect4 /xlLjQkON9DBJa65dw3QgV0sHGIjY5ufPr973aPlIf/Xqile9CXXXhkhG80KArWiPy/f Hf2W/tVjlAlss1CqQXjh/tF5zb7rQHdL5BO4oAKWqxbyl+6HonOFXloWAfRpKryhzTI1 x/aR3LkIv2YZ606wqxe2a20/zPSWV7CgVqX+xUhbce768pOhl+rpiYKqyI+52N91y0h/ k9Uw== X-Gm-Message-State: AOJu0YxCJ7GQ3MUfUrwAH+UYKz6ByVD7/QDd/+WqoitsXhmU559OhWMT w7E3J20Zi6PDHNY+NcGGC8MaiyYFcqeD+CefA1EKWRdQJj34/YkRuyyXw9AYLmY= X-Gm-Gg: ASbGncur3sUkK03d0nJYQcjlbssRY++i/tNLVm/qh8WFEKnzLOtFo8n09hK9sOMfBP9 AgCVCg3WK6E51r/ARaAClG0AzqO3Z2WwPSdGOmhEFEcyH4mHqvVth1slZK5/uuk+bXd1hF0OVkt 3UrVRHPCcsUeILURZzpwgOtar6tESnaF/ek//UX9EnJwp85ZIkObSH5OIMQWxweV59uSP0K9Fd/ wL88aqINJKXaI4Gs5gnOxer7C7lW+bLWKixWlUo9Lqrk2i5Ax0zcam8qZcicl8tgRpgKYkQukJe 4ROrhg== X-Google-Smtp-Source: AGHT+IGwOg2OxP7ig3qhy9b+ND6iBocbuDGjLyYPJUat/iltLveB3hXGiQ6kzBrkm3QSYQ9CLCO4bg== X-Received: by 2002:a05:6000:2c3:b0:385:f2a2:50df with SMTP id ffacd0b85a97d-38a221f9d8bmr26784098f8f.27.1735568448223; Mon, 30 Dec 2024 06:20:48 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a1c8471dcsm30377536f8f.48.2024.12.30.06.20.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Dec 2024 06:20:47 -0800 (PST) From: srinivas.kandagatla@linaro.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Sascha Hauer , stable , Peng Fan , Srinivas Kandagatla Subject: [PATCH 3/6] nvmem: imx-ocotp-ele: fix MAC address byte order Date: Mon, 30 Dec 2024 14:18:58 +0000 Message-Id: <20241230141901.263976-4-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> References: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2295; i=srinivas.kandagatla@linaro.org; h=from:subject; bh=YPFKuNMUUmbyDPYDoMdnh59Koafj8PdCe44hSDIp2wE=; b=owEBbQGS/pANAwAKAXqh/VnHNFU3AcsmYgBncqvVKwVcU89JtLZlAgAUBjMIvKfwxxTyALc+h n3cPGu+j2KJATMEAAEKAB0WIQQi509axvzi9vce3Y16of1ZxzRVNwUCZ3Kr1QAKCRB6of1ZxzRV NxahCACEtgq5lB4mqfNnjj98OFH1t7uribMVOPc7/rV40PFocTWJqQOPptEwrN3p42U8Jdg+qwx vbTSyv8lCT03nO54xkiXHbkjG3CQkJIuXYd7COtiOWYQzY4qDIMU+kVRuEbgxja3infiRpvB6cd XjS7IhNI7bNvbdVd9Hk7ojfW88lDf0WtJX/sHNrcpSIIhGCg1dbXHga2sc9r++N8/m50oM8uT3z aD3xOkmmnN0+BIEdOOrVkR8bkbGCMXONyd3lU5W2rlWo6unPZCxDSpcdEr6lwUKjm4JIdtZV1/P lsQWzY2ja8dDaqqeJj7NOmH+f7x+23J0Ui6S0WGDreQmfmBf X-Developer-Key: i=srinivas.kandagatla@linaro.org; a=openpgp; fpr=ED6472765AB36EC43B3EF97AD77E3FC0562560D6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sascha Hauer According to the i.MX93 Fusemap the two MAC addresses are stored in words 315 to 317 like this: 315 MAC1_ADDR_31_0[31:0] 316 MAC1_ADDR_47_32[47:32] MAC2_ADDR_15_0[15:0] 317 MAC2_ADDR_47_16[31:0] This means the MAC addresses are stored in reverse byte order. We have to swap the bytes before passing them to the upper layers. The storage format is consistent to the one used on i.MX6 using imx-ocotp driver which does the same byte swapping as introduced here. With this patch the MAC address on my i.MX93 TQ board correctly reads as 00:d0:93:6b:27:b8 instead of b8:27:6b:93:d0:00. Fixes: 22e9e6fcfb50 ("nvmem: imx: support i.MX93 OCOTP") Signed-off-by: Sascha Hauer Cc: stable Reviewed-by: Peng Fan Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/imx-ocotp-ele.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/nvmem/imx-ocotp-ele.c b/drivers/nvmem/imx-ocotp-ele.c index b2d21a5f77bc..422a6d53b10e 100644 --- a/drivers/nvmem/imx-ocotp-ele.c +++ b/drivers/nvmem/imx-ocotp-ele.c @@ -111,6 +111,26 @@ static int imx_ocotp_reg_read(void *context, unsigned = int offset, void *val, siz return 0; }; =20 +static int imx_ocotp_cell_pp(void *context, const char *id, int index, + unsigned int offset, void *data, size_t bytes) +{ + u8 *buf =3D data; + int i; + + /* Deal with some post processing of nvmem cell data */ + if (id && !strcmp(id, "mac-address")) + for (i =3D 0; i < bytes / 2; i++) + swap(buf[i], buf[bytes - i - 1]); + + return 0; +} + +static void imx_ocotp_fixup_dt_cell_info(struct nvmem_device *nvmem, + struct nvmem_cell_info *cell) +{ + cell->read_post_process =3D imx_ocotp_cell_pp; +} + static int imx_ele_ocotp_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; @@ -137,6 +157,8 @@ static int imx_ele_ocotp_probe(struct platform_device *= pdev) priv->config.stride =3D 1; priv->config.priv =3D priv; priv->config.read_only =3D true; + priv->config.add_legacy_fixed_of_cells =3D true; + priv->config.fixup_dt_cell_info =3D imx_ocotp_fixup_dt_cell_info; mutex_init(&priv->lock); =20 nvmem =3D devm_nvmem_register(dev, &priv->config); --=20 2.25.1 From nobody Sun May 10 06:28:25 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 0EDB51AA786 for ; Mon, 30 Dec 2024 14:20:50 +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=1735568452; cv=none; b=c/mvQkzJiOvJQRtF7Z7Gf98kRzDdQf18NAvv4L5Apjba+I3PSXnoe+EJQKDQnuCo9llILv2kUE+gom83WYawBF6csY3PKQhw0MISsx0qbcB90nN3IUw6cEvgJk7wShhJQP4xa9ze8/rDpsBIS5+P8EeLZ5PxOPFchA6HQFjzc9E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735568452; c=relaxed/simple; bh=DKGnIOAlRP6JIS6oX21AlvtHHvLrWKJq30Vygv2s340=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JFFSN/R+oKntMTipd20qd5w7gdETqnFDP2wa1mc1id8HBAN4mW/Mo9pdkHWNM0yptCpup8kSeDSLVgcpwQ1fsd0HdDiG3DS1LBfqUO4TyRINauH0JHcRQh/wW9kwW0kD5r46piw4n3QqfVCVOK4TOxnqfMDyzzZ8gY1Lm5waWIQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=t1EINYoe; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="t1EINYoe" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-436249df846so63773045e9.3 for ; Mon, 30 Dec 2024 06:20:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1735568449; x=1736173249; 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=svc2jWOBr9BjAGRj5FSw1iIFv8KCMOwQfn9KKGciI1Y=; b=t1EINYoe5YawGper8x5xpqiEG/jyBviqcsMtce2xP9gSLoJILp2DGOnhmV4CV3giQn ia+WiNpkPJ5WH2pA3Xj0EgHj0cxn72PBwNPdUX2iuEWTsB3+8V1wx7s54b2I4mwMeVSV eLLyONGFKZ9VFv4Zk3Pg/Cc+m50WfKUgpnBXvEc8r/eO6LNamY9O9jIK7/d9gxeojd8y iE3HvqNpW7+56IrsYc8r5Lwbv75U82X5ABpC5hxBrHkwjRT6k2d97h1WkOSI0DK0fSok Py77NQu5BBMpWgRe/XLPnd1DKAr0tlytYBFwuWeJCvkRuYJ2Uo13tU6ociZ5wF6ObxXP FtpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735568449; x=1736173249; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=svc2jWOBr9BjAGRj5FSw1iIFv8KCMOwQfn9KKGciI1Y=; b=FXnLlNvDviyA+qGvaEn2LNNKo7zKg/kjLFIljVf14XSs/vZy1Kv3UrUoLUJbVzTKzZ AgUGk/Oh2XDJB8HXaPNPdQQvVL+vXSHjcIZepJlpF1RrCE1D6X/JJYu4ZgaCE4S1eaVZ u9b1KGacr8ydADhpetNqZLPXQHtSNyKnYAS5NQECE/N6W4DuGYA2rm0UZeMpT0lqvsDf Ug2x2VGHrNYteW6Pi/0yRAaHSs7+zJFyBLh1IVZgiL0OGpP3pKcRKFLKdt3i202kECvC Bcee7Gil31tKwsOfDu9HIAzCi40vXmj/ykrK/Zdx7j4S2hIfuLfYpIcV9XSt82aCdpJB CYpg== X-Gm-Message-State: AOJu0Ywqv1bXx6ve/LRqKHXMu4MD++Hha8pX2+Os2ucN7axHTgwCwxCn GgQir7BqL5IF18m4HkXHCM6EcVF2suA6dFbV9twcxjGP0KHYImJWdb0DIL/w7pw= X-Gm-Gg: ASbGnctmnFH/UuCdytraO2Is+T45zy3Irzvg1+ahHDh5MKnrC01LGc5cONtjg/p7YnO PL/hTfvJnNLFZ9xpcEzaXI1OEsA3izC0P+1KCujfoH2ftq8CXWknKvAvITOUUzHhcmBqXPoov7Q 0/NVGXcER7Gm7BjKZXRBr0o1/d9yYNctoUQUuEVYOl8rNokOHJCF2LiKB/AvVyMqR1bEf7YNAxQ f37zurULEwbk2QMC2DG15uyhF05DiyledRua/867aaNQjDZ22sB7UPMe1fwWzKNCH+PJSe6nsbk 5QIxcA== X-Google-Smtp-Source: AGHT+IG81WtSFy6BIs8YOw8nx0yIj8NZF2BhIlkkHDLyxVzYDNOQ8FsBxNuK1tJMCpi+iQY/tA6SbA== X-Received: by 2002:adf:a3d9:0:b0:38a:39ad:3e2f with SMTP id ffacd0b85a97d-38a39ad4088mr14035957f8f.2.1735568449291; Mon, 30 Dec 2024 06:20:49 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a1c8471dcsm30377536f8f.48.2024.12.30.06.20.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Dec 2024 06:20:48 -0800 (PST) From: srinivas.kandagatla@linaro.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Sascha Hauer , stable , Peng Fan , Srinivas Kandagatla Subject: [PATCH 4/6] nvmem: imx-ocotp-ele: set word length to 1 Date: Mon, 30 Dec 2024 14:18:59 +0000 Message-Id: <20241230141901.263976-5-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> References: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1647; i=srinivas.kandagatla@linaro.org; h=from:subject; bh=QsXA4lXgDPS66ou21pg6YLHJjUsL9Bawrk/o44rPzm4=; b=owEBbQGS/pANAwAKAXqh/VnHNFU3AcsmYgBncqvVOGdJuwR3QnmcEPbPrY6qQjMHX999pjAcL o29HdbmCMiJATMEAAEKAB0WIQQi509axvzi9vce3Y16of1ZxzRVNwUCZ3Kr1QAKCRB6of1ZxzRV N9fbCAC5BQh0BYZjK2NJ7mOuc0+JS9zPH3bIzoB4SrhgAzwrtoV2izFgGKe7ubxiV3H69ZzJ6xD eQL0miDEHQ6kVKqJfjT9wGI0M9bcFEKe+1vhjLHvtrJ/+aWm633vV3RvjMBwgdz8jo/4JgJd+DV JB+dIyxp+sp8F07r/EwyKXOJBA8RcvI5DDoLEqD0C+eMNUHlMt1OCTuO5uTpzDUWpQZWQRCB4OZ v50cGHIX+cJAbsHA3tH6EE396rhae0iweRZlX18mD2K0VeNaJ8TVPglFpaTs0ajiw9v7Q7yta2X jQaSsu5wcME3F8qKYWHtH+v7UxVt5XiEDiztG1dqM6J/F37R X-Developer-Key: i=srinivas.kandagatla@linaro.org; a=openpgp; fpr=ED6472765AB36EC43B3EF97AD77E3FC0562560D6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sascha Hauer The ELE hardware internally has a word length of 4. However, among other things we store MAC addresses in the ELE OCOTP. With a length of 6 bytes these are naturally unaligned to the word length. Therefore we must support unaligned reads in reg_read() and indeed it works properly when reg_read() is called via nvmem_reg_read(). Setting the word size to 4 has the only visible effect that doing unaligned reads from userspace via bin_attr_nvmem_read() do not work because they are rejected by that function. Given that we have to abstract from word accesses to byte accesses in the driver, set the word size to 1. This allows bytewise accesses from userspace to be able to test what the driver has to support anyway. Fixes: 22e9e6fcfb50 ("nvmem: imx: support i.MX93 OCOTP") Signed-off-by: Sascha Hauer Cc: stable Reviewed-by: Peng Fan Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/imx-ocotp-ele.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvmem/imx-ocotp-ele.c b/drivers/nvmem/imx-ocotp-ele.c index 422a6d53b10e..ca6dd71d8a2e 100644 --- a/drivers/nvmem/imx-ocotp-ele.c +++ b/drivers/nvmem/imx-ocotp-ele.c @@ -153,7 +153,7 @@ static int imx_ele_ocotp_probe(struct platform_device *= pdev) priv->config.owner =3D THIS_MODULE; priv->config.size =3D priv->data->size; priv->config.reg_read =3D priv->data->reg_read; - priv->config.word_size =3D 4; + priv->config.word_size =3D 1; priv->config.stride =3D 1; priv->config.priv =3D priv; priv->config.read_only =3D true; --=20 2.25.1 From nobody Sun May 10 06:28:25 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 A894F1AAA0F for ; Mon, 30 Dec 2024 14:20:51 +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=1735568453; cv=none; b=CEjxPU3BK7Q9XQ2whPt9uZvOl37VIu59ylNVCt90OiQ8Qfxfa0cM86oqMSXDS9kJt+AyK2G18fAVyb9jhU7JgGozGKR/q2+ieARWkAa6FH7oUvYZE78oh/SC/HnZvu/uQUSDYPCo/qPdtjO+vwrPuoli5XDQgoIHu4C7v9UU1bk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735568453; c=relaxed/simple; bh=9sPmgt30nBGMdwfN5L62gm0t+fmgz+pvqOhAQOfBJHQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oSY++aR5stlDV4aRX3ugkuRgbp+D2GF9Oer5Jwks3HzXMLkAMIw4rZokHVUCXzIrr/mkXCUP1QUKCAKJPqfL9poy2TqY4eJmHIrQpnpCG6lD7emTCd6r5XrpQfdM53b90CUDSct6c89xTd50MLSTWZSQI74jMIH0mufS1IlUoUQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=deYJuRq2; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="deYJuRq2" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4362f61757fso92366745e9.2 for ; Mon, 30 Dec 2024 06:20:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1735568450; x=1736173250; 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=ccNwZtNnGr/4W9StK3y13dTEyPZkarz5VVc5IgE/Cww=; b=deYJuRq2rGZc7s2BVC9WutadUudfLQklL6pdLbzM+Ow+4v9yvcW+Qgz/s40m6550Fq ETRvNvAPi81gwocxvkXwImR4F30vhXSTXMjGT3DY3rKcjxBdHiJLkBTjllQNsX+H4lVj AZezNhLN8gprEY+0ZZD7ON9WoXVOhFAyFZVXIpcUQhhWb4DF7YWgmei0B45mLWJjkxuI QX+Au7nbpngGGIcaoTdfU2uNPvV5/O0T2f3grAkxyGRivKDAEJejXhM11XAjochlkp5x L8s8rkIZkXxH0kREl/Moecub4NYam8fF8KMqOey/61NMucWOdMUWzKq67UoFlRgXHsmZ CUPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735568450; x=1736173250; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ccNwZtNnGr/4W9StK3y13dTEyPZkarz5VVc5IgE/Cww=; b=vbzkr/Pk//F6rS0mBHfo0k99CbLaIECsBe2HPCgpgG9UqSo0F1HwwUNjKGjbcGu5cb KwQcrFqbySsGrtEHGXgEcVJZ9KKLvkdZnd5RHzw0lKg53B8s+EmRRXE65IaIVY00oTab qLI7M8FsRpC6LkkWVHHqFuYKzt/HFDkuuIZ/j37RWAZZ1iXPkk9oh7DTt3ia2Gl89jN5 ILb0sk1oLJoV/PiZx5TwtdiShFqG6q2tmfHpsJ07EJaM+oM69Nfk+DuMPsjaPNJy7g0F 4D2/T0DbpLHsn+L2WAyJ6wkdgUR4tmfM46ZTRiyQFO8EDAlSuP6dM1T268d6SoS3mz6G MBJA== X-Gm-Message-State: AOJu0YxBNY+zMSrLmbgB8zWCCNegaRWSwfDR98b6a8ChB0hVQVXm8FhV VTzf6YEe2CU57ZZ5E8S6LgLouRt4egpjK+Do+cj8cupsFckMcGSxK1+YMDpk+bg= X-Gm-Gg: ASbGnctpZfERL6cvXMa9AKHmGKa8X7P70Re7ZrUOiho2HX3bNt+fLPcUdwac6ciHs5f Sk8XlMsJ8JbyKJCh3HwY0t8HfzrZ4CEnHdXHxiEFoHrn+xftF1kwWfKQb5XzGuMbAN9XFZFVXOM wJ56s7EMo0SJtuxyh2JdZkyoUaKnjqXi1mAsEEWOIm7yCpakcAIR/IEvhMF0rrcbMItzVH4b7+y xuRAJN7fYE9ZlVU27eqA034+JPjBmtOV09Y8mva8nSUvsSpspAncvqJxmuY9ONOoH+EtjRMw1OX axVXCw== X-Google-Smtp-Source: AGHT+IEZaffaWtn5e6DdWpG4G/dL+kBcYQMTaGM4Gv+hwB75plnav3yPRsIBsDBwaFFwiryGINPc/w== X-Received: by 2002:a7b:c3c7:0:b0:434:a90b:94fe with SMTP id 5b1f17b1804b1-4366fb89a04mr355346625e9.10.1735568450170; Mon, 30 Dec 2024 06:20:50 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a1c8471dcsm30377536f8f.48.2024.12.30.06.20.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Dec 2024 06:20:49 -0800 (PST) From: srinivas.kandagatla@linaro.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Luca Weiss , stable@vger.kernel.org, Vladimir Zapolskiy , Srinivas Kandagatla Subject: [PATCH 5/6] nvmem: qcom-spmi-sdam: Set size in struct nvmem_config Date: Mon, 30 Dec 2024 14:19:00 +0000 Message-Id: <20241230141901.263976-6-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> References: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1349; i=srinivas.kandagatla@linaro.org; h=from:subject; bh=FL5THL4GxmLd5V3ZZ9djMFqthvMfgl1TEG7K7smrkEo=; b=owEBbQGS/pANAwAKAXqh/VnHNFU3AcsmYgBncqvVzROS27/FPVGORk5eHxHWAmoryOsWk6wj5 +WhjS06vvWJATMEAAEKAB0WIQQi509axvzi9vce3Y16of1ZxzRVNwUCZ3Kr1QAKCRB6of1ZxzRV N0BtB/4qEP5xPVdXyT6/OGlxM4X/DlvdFpdkicqFt2WRGBrEW6aW/vf7/PFV2YLENXgLCyJeAPn 5gCgehXiFEOm135kyBv9n8EZeoovMgpAImJqx++fcWAtF4rLIgGPA8wVzwu8qgRH10SeHAxW9NG +Y/asphpEeO9ujUnu5sqg8+bqTkZu3EIVMcbFCBqmDinKwUIyv37TSy7QyG24snnfKFe6URQ9UG CszLrvKCB/E57v61lZSBwn3jHbVjCBtylfkoovTCN1IjMJTYE7YCkXy0YOy7aC+tP2jXZexZaVX 8xThq757w8BmDNZe6dY1odb3rVWOibU4sYT9RvvI7Z9wv2h0 X-Developer-Key: i=srinivas.kandagatla@linaro.org; a=openpgp; fpr=ED6472765AB36EC43B3EF97AD77E3FC0562560D6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Luca Weiss Let the nvmem core know what size the SDAM is, most notably this fixes the size of /sys/bus/nvmem/devices/spmi_sdam*/nvmem being '0' and makes user space work with that file. ~ # hexdump -C -s 64 /sys/bus/nvmem/devices/spmi_sdam2/nvmem 00000040 02 01 00 00 04 00 00 00 00 00 00 00 00 00 00 00 |............= ....| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |............= ....| * 00000080 Fixes: 40ce9798794f ("nvmem: add QTI SDAM driver") Cc: stable@vger.kernel.org Signed-off-by: Luca Weiss Reviewed-by: Vladimir Zapolskiy Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/qcom-spmi-sdam.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/nvmem/qcom-spmi-sdam.c b/drivers/nvmem/qcom-spmi-sdam.c index 9aa8f42faa4c..4f1cca6eab71 100644 --- a/drivers/nvmem/qcom-spmi-sdam.c +++ b/drivers/nvmem/qcom-spmi-sdam.c @@ -144,6 +144,7 @@ static int sdam_probe(struct platform_device *pdev) sdam->sdam_config.owner =3D THIS_MODULE; sdam->sdam_config.add_legacy_fixed_of_cells =3D true; sdam->sdam_config.stride =3D 1; + sdam->sdam_config.size =3D sdam->size; sdam->sdam_config.word_size =3D 1; sdam->sdam_config.reg_read =3D sdam_read; sdam->sdam_config.reg_write =3D sdam_write; --=20 2.25.1 From nobody Sun May 10 06:28:25 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D95141ABED9 for ; Mon, 30 Dec 2024 14:20:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735568454; cv=none; b=ESAvnBBZ1jU4AM9zgPb8+ni4VYq+NsO5jbzIlDhGLdPbj0iwDYMtsx9JmuYOgvTJwwVNucCbYiqiz7f43U0MLI5XCryb1eymFhEbr+xixiBZUvYAuC6W25NkUDYhEeVsX3/5aqWrgCwBQr4vQ/4fR6et4sGPCniC12SA1yaDam8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735568454; c=relaxed/simple; bh=WQzH2nzOt0XELOhPECgQdlAzFp5KYY4CijVbF4W8c/A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bRyJUudV9ZMF5qz79e+wW+QoKvONObhpAPW5goBZ8DPjfcsOVLwjHbWI6WGtIWi/BvdK2E+bBNWKwjdYsVpp6/aJFd0z05OlZ5o+7XlR/R5rtWGxRqCralAcfs+HHXP36FLRyGKMOk4hfU7paCo0Ll87b7fwUHOVghna1X/2TCM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=o17KKDy4; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="o17KKDy4" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-43618283dedso92352645e9.3 for ; Mon, 30 Dec 2024 06:20:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1735568451; x=1736173251; 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=vXqrhvbs9T7x3lm4JhTEiWk0/q2Riu6DpR6jegYoWQM=; b=o17KKDy4FrIjW+etAh00s5swa3iTVk4oGCunkD9pzX162JlpaZM0BhRxkZI7bdZn63 AnJtQN3kfvp5Rso99Ds45YZTb+lYnNcebbhUVGYcliIVYhQGsZHMLxIo4GCnoMsLDo+L IQpXqNiBjfIUANwjZAI4gaF9cKJOfZ/dpJvP576dbdyHIqJPyRD8aCKH7zPsxSPIKw3q opFMk6jnvcA1Y5on4AKIr3poIiS4jwhoeJqo6O8UYLkBaCdQseH0ABSb8t4mIG3Ghrxr BrYq7WctO0tR1C0+z+RPqQ0D3yPlkkNTLGf9WZG+vlx2mdnvU+vkkdoZxj+1CdS9bc2f OEHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735568451; x=1736173251; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vXqrhvbs9T7x3lm4JhTEiWk0/q2Riu6DpR6jegYoWQM=; b=OXw6bGC5w3DjEgj02YHFCV+qDAOXQnIGSy3yqfIft6UMpH/DEaYjn1Ng5R/jxNyQ5s ixZfzRVdjDZBSEUM1Tof0aM4ZdJ1E07nn45njokUT4hDMPLagSMqg8PqAB53RCsBtung RybDN8TzbUKtKo8ixTNq9lPN4efNpB4SxO4xLP6CBK+9cxCAQwah61UzEIbAIA3gI1/b djObmDZ0counreOSxPuqhZ+t1Bi3RprNw14lNX8GLNHdKltPF1JM/mfI525S2spAQAJU E0kfIkwOiacxmATV0RJipGhq7vuigtP3uw3RVW2jH4gb1eMpr+64iLpcUZVl33+qnJAv uFKA== X-Gm-Message-State: AOJu0YzMr7K1zra8Diw5zLOHULWz2b2GGvthYqGyh1VsAavzWYqS213K RMtPXhDmN/2gyirLBUmYhmP8Idr1vCQEpXMJ0FzwHUZ8u8mBKKnTwdf+HeX5p9g= X-Gm-Gg: ASbGncujAboaq9+FSERiJEnBQ1jrpDjUpz86xvnkAtL0SCI285pxDs3f4VupGGwaOJz 6vNHWyCKxZG+9iNZZfqeX6wpwqqESZO3/JDpdc7FIZ6ZPT9/NwFZVYvL0mcXVPQXzOidynNjtvj 0M9X2h+rFFzRd3IFxyeD57rWCvWMkcmY/WDQy2ZxOc9Owlw3AtK2+Gu1O3+gpbNXxcbOp9dZqil lKJWJcCA1codN5O6IrGPn+r1bg0ajaQwJiowmYNBs4uudR2bMYltzeQVp/zfrZS51CBFOa0VYKL vPCLyA== X-Google-Smtp-Source: AGHT+IE1ta3+RLtcAbVtIgE6ruGPjb189G00giWmI+CbNz4RIJtuy0OVeou90Wz5humN5tA4Mqb1GQ== X-Received: by 2002:a05:6000:1787:b0:386:3c21:b1ff with SMTP id ffacd0b85a97d-38a2240ffc3mr26385979f8f.58.1735568451212; Mon, 30 Dec 2024 06:20:51 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a1c8471dcsm30377536f8f.48.2024.12.30.06.20.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Dec 2024 06:20:50 -0800 (PST) From: srinivas.kandagatla@linaro.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Jennifer Berringer , stable@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH 6/6] nvmem: core: improve range check for nvmem_cell_write() Date: Mon, 30 Dec 2024 14:19:01 +0000 Message-Id: <20241230141901.263976-7-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> References: <20241230141901.263976-1-srinivas.kandagatla@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1704; i=srinivas.kandagatla@linaro.org; h=from:subject; bh=K2O6zbN8+hoRK8sza9Q/dLbXq5Bn1/iGmBCW0k5cYBk=; b=owEBbQGS/pANAwAKAXqh/VnHNFU3AcsmYgBncqvVUc2AB3biCwM3Pad6gShL44OZKsNQ0xxoL U+bH22uvu6JATMEAAEKAB0WIQQi509axvzi9vce3Y16of1ZxzRVNwUCZ3Kr1QAKCRB6of1ZxzRV N7lnB/48Nl+2yQ6noOKRF6d779cJTtCQE426PiL8layF0FgNVRE7RZfuiaMr6RKuo6Y6Mw4bCIX hb5GlO5WyAJklbCqIo2x/xqDAor5R53KEpXJ47SCv+gUpun4pWYrdvLqXdNkNy5lP0ul5UoLO1r XBHm9eFqmAMpcZ85Vt9zqMo3O3FhV/WstqWGtHQMNvRFOkkPFmHdNH6+FnqnV071KYOzDDsLccp 2C05PqsjbgZ2sHSOxf7lv+ImIKMyNaNCWB93aeILMZwDimGhOuTF7gpIGwuZBwwj3ZCoK6glTAK B0gEq+nOAU9mU6GKuf7Uf6/lDao4PeZGPhImw/NLm5Z0PLd8 X-Developer-Key: i=srinivas.kandagatla@linaro.org; a=openpgp; fpr=ED6472765AB36EC43B3EF97AD77E3FC0562560D6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jennifer Berringer When __nvmem_cell_entry_write() is called for an nvmem cell that does not need bit shifting, it requires that the len parameter exactly matches the nvmem cell size. However, when the nvmem cell has a nonzero bit_offset, it was skipping this check. Accepting values of len larger than the cell size results in nvmem_cell_prepare_write_buffer() trying to write past the end of a heap buffer that it allocates. Add a check to avoid that problem and instead return -EINVAL when len doesn't match the number of bits expected by the nvmem cell when bit_offset is nonzero. This check uses cell->nbits in order to allow providing the smaller size to cells that are shifted into another byte by bit_offset. For example, a cell with nbits=3D8 and nonzero bit_offset would have bytes=3D2 but should accept a 1-byte write here, although no current callers depend on this. Fixes: 69aba7948cbe ("nvmem: Add a simple NVMEM framework for consumers") Cc: stable@vger.kernel.org Signed-off-by: Jennifer Berringer Signed-off-by: Srinivas Kandagatla --- drivers/nvmem/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index d6494dfc20a7..845540b57e68 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -1790,6 +1790,8 @@ static int __nvmem_cell_entry_write(struct nvmem_cell= _entry *cell, void *buf, si return -EINVAL; =20 if (cell->bit_offset || cell->nbits) { + if (len !=3D BITS_TO_BYTES(cell->nbits) && len !=3D cell->bytes) + return -EINVAL; buf =3D nvmem_cell_prepare_write_buffer(cell, buf, len); if (IS_ERR(buf)) return PTR_ERR(buf); --=20 2.25.1