[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 02/15] drivers/smmu-v3: Fix impending MISRA R20.6 violation
- To: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
- From: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
- Date: Wed, 16 Apr 2025 18:51:28 +0200
- Arc-authentication-results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
- Arc-message-signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; c=relaxed/relaxed; t=1744822288; h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To: References:Message-ID:X-Sender:Organization:Content-Type: Content-Transfer-Encoding; bh=oGdLWcrEEbJpDTyFe9rk6sIAUrih6/jLp68wkchrIiA=; b=YrwPPv5LS/2WO81YzTk5VKmkTC/lAdIGlNKUrxKvBg8FTT7FkJz0hSqYcAdvIM/+QI9+ u12R7Hj6gm7Cp4UiQ5LVMyumYA+b4y9q2miMoywbO6f+HXl2/3toMPOa1DruFXAvwE1sJ Jtm2STaeLKhzRSTQ6aj0N3G25fNSqHdal3kBNwOCelkPOX90mW9tDpUmlleJAyHd2rl+N 7HNSTkEDsXoaz8hq4GK7Dms7hpDOAC0DgulBVbxVNaFYXBwvH6Mzd1aRYYS/tHsxTEIG9 04UTQx8GA2I89P9URBE+XWest+cqVx9ALrixfhOOTPm9opoEUSuaKyGd2WXlBBM2eaW7y +Uq3G7+40lDHxewIT3xjfrJor9gFjIAjUmY28ducibm488yAq2nNvIStNJqo+0RwQEpCg ZnDCHmq9fkY8S2bZeWRBaazQv1F5nIKwnsJlhcI1xCACmjvVcFQS0L6Nb1mIrrk+JkgjJ twoV70cyGzrF590sY4W6ebzf6CB1m3cJTHpmGzughousV9H7R0Ua/eagqPq1ClahNZDOH T0fPU0d4Ao/lAsd6x3wzBM6GEGQG/GCgyDd3N7VbHyGpquqUh/qgJAnxEmU3ujj4Cj9NG T1nweZz4udr9RkRAe5qxobK3fFncHcaaszOqDDAIMuY4bfEkJqz3Qv24C34O7Zk=
- Arc-seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1744822288; b=VKl6OhSBeeNm6jlKjTgKeANX6vctSJDuelbYP4urOmkrd4KW+5oKDmtoBLwPagvxd7q5 zO/gbE6VOsW+vs+CXUnCZpGu1bDb7Fnim4pNFA3qiVxWxnBOGpTJRhg0+VuiQiwlivRZ7 UhcgrdAX3F8j4acpbsFtAoFsDqYv/jHrAW1jWIixlEKzxhMv/2OIxExED+R4JeDI1aseN 9hiGUdaeQTFi3pw2UgdOg1i3N61Zn6tqNYCt3+jIAu6+zNtJ80/wZj7fI4X0LFDgDSB1K hRauwusvZYdWCMXV+fZaFt9RN5OzEQrDrgfNpGGQyXgXg4m1us6HRBRPN486M34IKoUsZ 5C7cVmYXNmfKm+ewRpr3rq/fgad/iRvh+SjJy/jSUFwzj3ZoDfBK2o3ziVXJgk3bQ03B2 F3Fit5stIkxYpHgvWXUkVUGNKNPg3oh3B6LARoxLJRitpgcyHUK1Jd2RCbT86P8nIbbp0 TgSTqZxmO2DceXVsMnw2B4vMv5brV+/nEuTONcPUz2mVFa0KJYDbQR8atfl/ZMJ1d84Bo R0JYPk7eq2I8LcPJ/sPR5a9dLdnPM1oYvwGyJO2lIsJ5QWmHh5zD1/1RmCQzKb5MI+pB9 b57GXIMhUUmnX1SzQ3rv6TrIPyikmD1gre/tZy5LA5Xq+i9r3pxDHYrlu8SgUNc=
- Authentication-results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
- Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Shawn Anastasio <sanastasio@xxxxxxxxxxxxxxxxxxxxx>, Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>, "Daniel P . Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>, Lin Liu <lin.liu@xxxxxxxxxx>
- Delivery-date: Wed, 16 Apr 2025 16:51:33 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 2025-04-16 13:58, Andrew Cooper wrote:
cpu_to_le64() is about to become a macro, at which point the #ifdef in
the
middle of it becomes undefined behaviour.
Use a logcal variable to prepare strtab, where the #ifdef is fine to
use.
No functional change.
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
for MISRA:
Reviewed-by: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
---
CC: Anthony PERARD <anthony.perard@xxxxxxxxxx>
CC: Michal Orzel <michal.orzel@xxxxxxx>
CC: Jan Beulich <jbeulich@xxxxxxxx>
CC: Julien Grall <julien@xxxxxxx>
CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
CC: Stefano Stabellini <sstabellini@xxxxxxxxxx>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
CC: Bertrand Marquis <bertrand.marquis@xxxxxxx>
CC: Shawn Anastasio <sanastasio@xxxxxxxxxxxxxxxxxxxxx>
CC: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
CC: Daniel P. Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx>
CC: Lin Liu <lin.liu@xxxxxxxxxx>
v6:
* New
Eclair log from v5:
https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/andyhhp/xen/ECLAIR_normal/xen-bswap/ARM64/9556392204/PROJECT.ecd;/by_service/MC3A2.R20.6.html
---
xen/drivers/passthrough/arm/smmu-v3.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c
b/xen/drivers/passthrough/arm/smmu-v3.c
index cee572402203..df162350578c 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -722,15 +722,17 @@ static void arm_smmu_write_strtab_ent(struct
arm_smmu_master *master, u32 sid,
}
if (s2_cfg) {
- BUG_ON(ste_live);
- dst[2] = cpu_to_le64(
+ u64 strtab =
FIELD_PREP(STRTAB_STE_2_S2VMID, s2_cfg->vmid) |
FIELD_PREP(STRTAB_STE_2_VTCR, s2_cfg->vtcr) |
#ifdef __BIG_ENDIAN
STRTAB_STE_2_S2ENDI |
#endif
STRTAB_STE_2_S2PTW | STRTAB_STE_2_S2AA64 |
- STRTAB_STE_2_S2R);
+ STRTAB_STE_2_S2R;
+
+ BUG_ON(ste_live);
+ dst[2] = cpu_to_le64(strtab);
dst[3] = cpu_to_le64(s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK);
--
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253
|