Message ID | 20210922165600.179394-1-quic_jiles@quicinc.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | i3c: fix incorrect address slot lookup on 64-bit | expand |
On Wed, 22 Sep 2021 17:56:00 +0100, Jamie Iles wrote: > The address slot bitmap is an array of unsigned long's which are the > same size as an int on 32-bit platforms but not 64-bit. Loading the > bitmap into an int could result in the incorrect status being returned > for a slot and slots being reported as the wrong status. > > Applied, thanks! [1/1] i3c: fix incorrect address slot lookup on 64-bit commit: a3587e2c0578101900d4abbbd72ab3dad6d5568a Best regards,
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index e2e12a5585e5..426027110a79 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -345,7 +345,8 @@ struct bus_type i3c_bus_type = { static enum i3c_addr_slot_status i3c_bus_get_addr_slot_status(struct i3c_bus *bus, u16 addr) { - int status, bitpos = addr * 2; + unsigned long status; + int bitpos = addr * 2; if (addr > I2C_MAX_ADDR) return I3C_ADDR_SLOT_RSVD;
The address slot bitmap is an array of unsigned long's which are the same size as an int on 32-bit platforms but not 64-bit. Loading the bitmap into an int could result in the incorrect status being returned for a slot and slots being reported as the wrong status. Fixes: 3a379bbcea0a ("i3c: Add core I3C infrastructure") Cc: Boris Brezillon <bbrezillon@kernel.org> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Jamie Iles <quic_jiles@quicinc.com> --- drivers/i3c/master.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)