From nobody Sun Feb 8 20:35:33 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 8C1943559D1 for ; Thu, 5 Feb 2026 08:30:48 +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=1770280248; cv=none; b=NR67Bq6X7Ag18Iqh3Rh3nuTLLyJBE49jEUzhpZq7CtLbSVZj3qp6YQjorlW107berDLJBhP/ZfgvIIHWVfsri2eedQ7vxzAG0Fn4UVDXXYAmSGQ4C/lHfuoLdaBhT9whsoCZAS3rRy1Jis1mYmmHzGfRo+Lr70cRig2ldSRgGsw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770280248; c=relaxed/simple; bh=8TkSK1/eLLlEVbEUY1UAY3c1MAi4HPwAonjpncHyMTA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=V7Ro+tfvcUZRemsNdgmPJ5DRJDiAt9Ktr2rTrYdUtWD1NyUPLsE6QI3PFNvUW8qW7rQNfUSMWqFnC7cOejoyzGDKVNjXAvK5I096x3s79Ckkq6mhb5fX8QKqLCY3fJQyGuoXSMKHBbI7l7rDoTTumbXwCCz9VHuqIEFZ0f7WyP8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net; spf=pass smtp.mailfrom=flipper.net; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b=odK4S9yX; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flipper.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b="odK4S9yX" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-47ee3a63300so6763485e9.2 for ; Thu, 05 Feb 2026 00:30:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flipper.net; s=google; t=1770280247; x=1770885047; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=sLD8F90NSsK4m8gb1uKCwFT9oVIxctOBS6noDdmTvjE=; b=odK4S9yXCtu6j0iZkKLkQynTMAgNTwHIsH+pYiLgW+sD2EpRliwr2Bl3HnYFmKrjt3 mUpZLOqWTjPiogH0bqc581esAs2pdZzI03+Cko/rYVMff1BvT0nbev3rqMZ96VBnFrZR lMVQ9Ctze97Jb5a+xQSHX2YxbivvtCr0+U98grTSBw4KFrESKPTiTP4KS+eMGB19mSUc rf2dVSda0kyhY9VMUd5Q7m2o0nsyvTeFO4835GrEpFnk/C17EIBsbuQPnJS56vu9rERD tay1AiU+rXki4EH9/L9oczNIR1i3OIIn99uk7xh2Gdi8ziIry+4okpJ6UD/JbLwp0qCZ l4sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770280247; x=1770885047; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=sLD8F90NSsK4m8gb1uKCwFT9oVIxctOBS6noDdmTvjE=; b=Gy+HD2F234+dd6zXCHF/mg4tsW5XRPYS9AUrBaXhLrqdggVt95NSrAor5J4TB8t2Bg IbtoDaM4WTiJk6xstHdLkqTyssPGdMQe679AP45/u27RYd++qLZb0sZ8yWNlzrNGWvvN FvOuYzrug6Di0JG5LY+Ygwo0nZ9296tAJO4eeGqTdsX1FsaW3m752eSl2npPcv0OBMe/ cXpZY6iuzcwLZlPF/gK9UYv4tzd7BGpLymxHqKIr2u1TYJ06q1Zb5YLSiOh9WJapsJIf RgbCVwGH7iMB8YKpWvOIPGyih5Ltfpz710K939GkbbRVLa7Iyvtg5y/i0BuiKB/9agfS 6Z5w== X-Forwarded-Encrypted: i=1; AJvYcCVds5Rgvez3VytNdGMghZxLV0pXIMhNSPleckJApq+rV71AFyIW0jlpxEnhsYBaBtE64Dqj3ti2lV0fI2I=@vger.kernel.org X-Gm-Message-State: AOJu0Yz7KT97ZjzCzbqnOaXxGZvB4avQSKrB3FOx006jMGC5Sa4VOiEr yOu79NgWgeUzR97d0YywWYPrKB41VqDONNr+oOdbXi7aCaQPgaHjZwgIRceA8UgCc6c= X-Gm-Gg: AZuq6aLOvDeqOx5i+sYRA8BiKyBk/oefbiutaeB5cSPA0VBxOiz346z1tg356lId4ti urrYkY73WR565Gjn/HezpqFgnulpZHOpPoEQftQpgf+vXDt/uTQXCtyGKa/R3jL7J6X3312v5vX PJOQ+WArUAH23Uaqnurja6yfhYBf+xl3K9D+XVczpvQKW9A1wTJuN8zMs4z1M+9vB7ec1iaxqlC yHyRPxFMYSE5Ed7FCmqtdyOBB0MbBysjOjzghPFOruV3/WvphCdMssFyRXkigaYST8vaHIjSFOi BxfDYPSeqAJtFruUK1Hng91fsganzuR87jaoKx/vWTx05NujRRFsS1HLpL4LC8Pvr/PxDMHkerY tWtSOKWIop2DN6tbQKJd8ZaiGOHEwSRt2gC83GkAn3sYIh9j5M/4jvmc0/UkYBMo9cAPdKmWJDN p4vMiJP81IzI/kkGI8V1HuWvkxY3WptaA9rIvpudW4zzBZod1A+XR+3uK1+UmumZE= X-Received: by 2002:a05:600c:6383:b0:477:54cd:200e with SMTP id 5b1f17b1804b1-4830e92293dmr71737305e9.1.1770280246826; Thu, 05 Feb 2026 00:30:46 -0800 (PST) Received: from alchark-surface.localdomain (bba-94-59-44-101.alshamil.net.ae. [94.59.44.101]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48317d35684sm41516915e9.7.2026.02.05.00.30.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Feb 2026 00:30:46 -0800 (PST) From: Alexey Charkov Date: Thu, 05 Feb 2026 12:30:23 +0400 Subject: [PATCH v2] scsi: ufs: core: Fix RPMB region size detection for UFS 2.2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260205-ufs-rpmb-v2-1-5e1572ee52bf@flipper.net> X-B4-Tracking: v=1; b=H4sIAB5VhGkC/23MQQ7CIBCF4as0sxYDtKK48h6mCyqDnURbMlSia bi72LXL/+XlWyEhEyY4NyswZko0TzX0roHb6KY7CvK1QUttpNJWvEISHJ+D8MqenLHWddJDvUf GQO+Nuva1R0rLzJ9Nzuq3/kGyEkoYqw5t54ajbsMlPChG5P2EC/SllC9W8524ogAAAA== X-Change-ID: 20260129-ufs-rpmb-d198a699a40d To: Alim Akhtar , Avri Altman , Bart Van Assche , "James E.J. Bottomley" , "Martin K. Petersen" , Bean Huo , Can Guo Cc: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Alexey Charkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2586; i=alchark@flipper.net; h=from:subject:message-id; bh=8TkSK1/eLLlEVbEUY1UAY3c1MAi4HPwAonjpncHyMTA=; b=owGbwMvMwCW2adGNfoHIK0sZT6slMWS2hJp8PTdJ+ducVMnvS8uYVBdJ7DFwv3BfyrSFXf6aR nzFTDPPjoksDGJcDJZiiixzvy2xnWrEN2uXh8dXmDmsTCBDpEUaGICAhYEvNzGv1EjHSM9U21DP 0FDHWMeIgYtTAKb64COGv9K/l35jkl/4OejOy5sbXf77heVpn9l2mn2HqNG7b17RpQaMDL/69xw 6yyQxI078adSENTG2E7MzgtKPd+Tqma3LyWg15QUA X-Developer-Key: i=alchark@flipper.net; a=openpgp; fpr=9DF6A43D95320E9ABA4848F5B2A2D88F1059D4A5 Older UFS spec devices (2.2 and earlier) do not expose per-region RPMB sizes, as only one RPMB region is supported. In such cases, the size of the single RPMB region can be deduced from the Logical Block Count and Logical Block Size fields in the RPMB Unit Descriptor. Add a fallback mechanism to calculate the RPMB region size from these fields if the device implements an older spec, so that the RPMB driver can work with such devices - otherwise it silently skips the whole RPMB. Section 14.1.4.6 (RPMB Unit Descriptor) Link: https://www.jedec.org/system/files/docs/JESD220C-2_2.pdf Cc: stable@vger.kernel.org Fixes: b06b8c421485 ("scsi: ufs: core: Add OP-TEE based RPMB driver for UFS= devices") Signed-off-by: Alexey Charkov --- Changes in v2: - Comment on the expected size of the RPMB partition on UFS 2.2 (thanks Bea= n) - Use a standard define for size instead of a magic number (thanks Bean) - Link to v1: https://lore.kernel.org/r/20260129-ufs-rpmb-v1-1-691534ab723f= @flipper.net --- drivers/ufs/core/ufshcd.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 52ffd0c3aa4c..32da8ecdba72 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -5249,6 +5250,20 @@ static void ufshcd_lu_init(struct ufs_hba *hba, stru= ct scsi_device *sdev) hba->dev_info.rpmb_region_size[1] =3D desc_buf[RPMB_UNIT_DESC_PARAM_REGI= ON1_SIZE]; hba->dev_info.rpmb_region_size[2] =3D desc_buf[RPMB_UNIT_DESC_PARAM_REGI= ON2_SIZE]; hba->dev_info.rpmb_region_size[3] =3D desc_buf[RPMB_UNIT_DESC_PARAM_REGI= ON3_SIZE]; + + if (hba->dev_info.wspecversion <=3D 0x0220) { + /* These older spec chips have only one RPMB region, + * sized between 128 kB minimum and 16 MB maximum. + * No per region size fields are provided, so get it + * from the logical block count and size fields for + * compatibility + */ + hba->dev_info.rpmb_region_size[0] =3D + (get_unaligned_be64(desc_buf + + RPMB_UNIT_DESC_PARAM_LOGICAL_BLK_COUNT) + << desc_buf[RPMB_UNIT_DESC_PARAM_LOGICAL_BLK_SIZE]) + / SZ_128K; + } } =20 =20 --- base-commit: 5c009020744fe129e4728e71c44a6c7816c9105e change-id: 20260129-ufs-rpmb-d198a699a40d Best regards, --=20 Alexey Charkov