]> git.baikalelectronics.ru Git - kernel.git/commit
drm/bridge: ti-sn65dsi86: fix a ternary type promotion bug
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 18 May 2021 09:19:30 +0000 (12:19 +0300)
committerRobert Foss <robert.foss@linaro.org>
Tue, 18 May 2021 13:27:14 +0000 (15:27 +0200)
commit7edd6d7ffddb8b8f6cb4c39c4664a35266625240
tree5dcda05824022efb37a71cbaeb6cc05c90bc95dd
parent0230e39f20b50dcc676d5cec97de2cf626995411
drm/bridge: ti-sn65dsi86: fix a ternary type promotion bug

The ti_sn_aux_transfer() function returns ssize_t (signed long).  It's
supposed to return negative error codes or the number of bytes
transferred.  The "ret" variable is int and the "len" variable is
unsigned int.

The problem is that with a ternary like this, the negative int is first
type promoted to unsigned int to match "len" at this point it is a high
positive value.  Then when it is type promoted to ssize_t (s64) it
remains a high positive value instead of sign extending and becoming a
negative again.

Fix this by removing the ternary.

Fixes: 12dc02dc10f4 ("drm/bridge: ti-sn65dsi86: If refclk, DP AUX can happen w/out pre-enable")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/YKOGogHasIyvF8nj@mwanda
drivers/gpu/drm/bridge/ti-sn65dsi86.c