2015-06-10 13:07:06

by Nicholas Mc Guire

[permalink] [raw]
Subject: [PATCH RFC] drm/i2c: tda998x: dead-code or unhandled error condition ?

event API conformance testing with coccinelle spatches are being
used to locate API usage inconsistencies this triggert with:
./drivers/gpu/drm/i2c/tda998x_drv.c:1062
incorrect check for negative return

The return of wait_event_timeout is always >= 0, thus the negative
check was effectively being ignoring - as the timeout will be checked
a few lines below the error condition being checked here seems to be
wrong or this is simply dead code which would be my guess as the
timeout condition check covers the wait-queue related failure condition.

Signed-off-by: Nicholas Mc Guire <[email protected]>
---

Can't really determine what the right fix for this would be - someone
that knows this driver would need to check - in any case the current
code seems broken.

Patch was compile tested with x86_64_defconfig + CONFIG_DRM_I2C_SIL164=m

Patch is against 4.1-rc7 (localversion-next is -next-20150610)

drivers/gpu/drm/i2c/tda998x_drv.c | 4 ----
1 file changed, 4 deletions(-)

diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index fe1599d..d489a6e 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -1065,10 +1065,6 @@ static int read_edid_block(void *data, u8 *buf, unsigned int blk, size_t length)
i = wait_event_timeout(priv->wq_edid,
!priv->wq_edid_wait,
msecs_to_jiffies(100));
- if (i < 0) {
- dev_err(&priv->hdmi->dev, "read edid wait err %d\n", i);
- return i;
- }
} else {
for (i = 100; i > 0; i--) {
msleep(1);
--
1.7.10.4


2015-07-28 08:25:37

by Jean-Francois Moine

[permalink] [raw]
Subject: Re: [PATCH RFC] drm/i2c: tda998x: dead-code or unhandled error condition ?

On Wed, 10 Jun 2015 14:58:48 +0200
Nicholas Mc Guire <[email protected]> wrote:

> event API conformance testing with coccinelle spatches are being
> used to locate API usage inconsistencies this triggert with:
> ./drivers/gpu/drm/i2c/tda998x_drv.c:1062
> incorrect check for negative return
>
> The return of wait_event_timeout is always >= 0, thus the negative
> check was effectively being ignoring - as the timeout will be checked
> a few lines below the error condition being checked here seems to be
> wrong or this is simply dead code which would be my guess as the
> timeout condition check covers the wait-queue related failure condition.
>
> Signed-off-by: Nicholas Mc Guire <[email protected]>

Acked-by: Jean-Francois Moine <[email protected]>

--
Ken ar c'hentaƱ | ** Breizh ha Linux atav! **
Jef | http://moinejf.free.fr/