On Thu, Oct 17, 2019 at 02:49:12PM +0300, Andy Shevchenko wrote: > GCC complains about dubious bitwise OR operand: > > drivers/gpu/drm/drm_mipi_dbi.c:1024:49: warning: dubious: x | !y > CC [M] drivers/gpu/drm/drm_mipi_dbi.o > > As long as buffer is consist of byte (u8) values, we may use > simple right shift and satisfy compiler. It also reduces amount of > operations needed. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/drm_mipi_dbi.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c > index 1961f713aaab..445e88b1fc9a 100644 > --- a/drivers/gpu/drm/drm_mipi_dbi.c > +++ b/drivers/gpu/drm/drm_mipi_dbi.c > @@ -1021,7 +1021,7 @@ static int mipi_dbi_typec3_command_read(struct mipi_dbi *dbi, u8 *cmd, > unsigned int i; > > for (i = 0; i < len; i++) > - data[i] = (buf[i] << 1) | !!(buf[i + 1] & BIT(7)); > + data[i] = (buf[i] << 1) | (buf[i + 1] >> 7); You should probably have ((buf[i + 1] >> 7) & 0x1) to be super safe. Do you know anything about this code? It seems like nothing is protecting us from overrunning buf in this loop. We're just assuming that len < tr[1].len through this loop and I'm not sure what's protecting us from looking where we shouldn't. Sean > } > > MIPI_DBI_DEBUG_COMMAND(*cmd, data, len); > -- > 2.23.0 > -- Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel