diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2019-04-23 12:40:20 +0200 |
---|---|---|
committer | Boris Brezillon <boris.brezillon@collabora.com> | 2019-05-06 08:15:02 +0200 |
commit | 476c7e1d34f2a03b1aa5a924c50703053fe5f77c (patch) | |
tree | 4b78b80c72c9e9a18e0bd34f352696b330af5f11 /drivers/visorbus/visorbus_private.h | |
parent | i3c: master: dw: remove dead code from dw_i3c_master_*_xfers() (diff) | |
download | linux-476c7e1d34f2a03b1aa5a924c50703053fe5f77c.tar.xz linux-476c7e1d34f2a03b1aa5a924c50703053fe5f77c.zip |
i3c: Fix a shift wrap bug in i3c_bus_set_addr_slot_status()
The problem here is that addr can be I3C_BROADCAST_ADDR (126). That
means we're shifting by (126 * 2) % 64 which is 60. The
I3C_ADDR_SLOT_STATUS_MASK is an enum which is an unsigned int in GCC
so shifts greater than 31 are undefined.
Fixes: 3a379bbcea0a ("i3c: Add core I3C infrastructure")
Cc: <stable@vger.kernel.org>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Diffstat (limited to 'drivers/visorbus/visorbus_private.h')
0 files changed, 0 insertions, 0 deletions