|
Takashi Iwai |
4828aa |
From f18f98110f2b179792cb70d85cba697320a3790f Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
4828aa |
From: Jamie Iles <quic_jiles@quicinc.com>
|
|
Takashi Iwai |
4828aa |
Date: Wed, 22 Sep 2021 17:56:00 +0100
|
|
Takashi Iwai |
4828aa |
Subject: [PATCH] i3c: fix incorrect address slot lookup on 64-bit
|
|
Takashi Iwai |
4828aa |
Git-commit: f18f98110f2b179792cb70d85cba697320a3790f
|
|
Takashi Iwai |
4828aa |
Patch-mainline: v5.17-rc1
|
|
Takashi Iwai |
4828aa |
References: git-fixes
|
|
Takashi Iwai |
4828aa |
|
|
Takashi Iwai |
4828aa |
The address slot bitmap is an array of unsigned long's which are the
|
|
Takashi Iwai |
4828aa |
same size as an int on 32-bit platforms but not 64-bit. Loading the
|
|
Takashi Iwai |
4828aa |
bitmap into an int could result in the incorrect status being returned
|
|
Takashi Iwai |
4828aa |
for a slot and slots being reported as the wrong status.
|
|
Takashi Iwai |
4828aa |
|
|
Takashi Iwai |
4828aa |
Fixes: 3a379bbcea0a ("i3c: Add core I3C infrastructure")
|
|
Takashi Iwai |
4828aa |
Cc: Boris Brezillon <bbrezillon@kernel.org>
|
|
Takashi Iwai |
4828aa |
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
|
|
Takashi Iwai |
4828aa |
Signed-off-by: Jamie Iles <quic_jiles@quicinc.com>
|
|
Takashi Iwai |
4828aa |
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
|
|
Takashi Iwai |
4828aa |
Link: https://lore.kernel.org/r/20210922165600.179394-1-quic_jiles@quicinc.com
|
|
Takashi Iwai |
4828aa |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
4828aa |
|
|
Takashi Iwai |
4828aa |
---
|
|
Takashi Iwai |
4828aa |
drivers/i3c/master.c | 3 ++-
|
|
Takashi Iwai |
4828aa |
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
Takashi Iwai |
4828aa |
|
|
Takashi Iwai |
4828aa |
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
|
|
Takashi Iwai |
4828aa |
index c3b4c677b442..dfe18dcd008d 100644
|
|
Takashi Iwai |
4828aa |
--- a/drivers/i3c/master.c
|
|
Takashi Iwai |
4828aa |
+++ b/drivers/i3c/master.c
|
|
Takashi Iwai |
4828aa |
@@ -343,7 +343,8 @@ struct bus_type i3c_bus_type = {
|
|
Takashi Iwai |
4828aa |
static enum i3c_addr_slot_status
|
|
Takashi Iwai |
4828aa |
i3c_bus_get_addr_slot_status(struct i3c_bus *bus, u16 addr)
|
|
Takashi Iwai |
4828aa |
{
|
|
Takashi Iwai |
4828aa |
- int status, bitpos = addr * 2;
|
|
Takashi Iwai |
4828aa |
+ unsigned long status;
|
|
Takashi Iwai |
4828aa |
+ int bitpos = addr * 2;
|
|
Takashi Iwai |
4828aa |
|
|
Takashi Iwai |
4828aa |
if (addr > I2C_MAX_ADDR)
|
|
Takashi Iwai |
4828aa |
return I3C_ADDR_SLOT_RSVD;
|
|
Takashi Iwai |
4828aa |
--
|
|
Takashi Iwai |
4828aa |
2.31.1
|
|
Takashi Iwai |
4828aa |
|