From: Mauro Carvalho Chehab <m.che...@samsung.com>

gcc knows nothing about jiffies. So, it produces this error:

        drivers/media/usb/em28xx/em28xx-i2c.c: In function 
‘em28xx_i2c_recv_bytes’:
        drivers/media/usb/em28xx/em28xx-i2c.c:274:5: warning: ‘ret’ may be used 
uninitialized in this function [-Wmaybe-uninitialized]

It is a false positive, however, removing it is as easy as replacing
a while by a do/while construction.

Signed-off-by: Mauro Carvalho Chehab <m.che...@samsung.com>
---
 drivers/media/usb/em28xx/em28xx-i2c.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c 
b/drivers/media/usb/em28xx/em28xx-i2c.c
index 26f7b0a2e83a..d972e2f67214 100644
--- a/drivers/media/usb/em28xx/em28xx-i2c.c
+++ b/drivers/media/usb/em28xx/em28xx-i2c.c
@@ -241,7 +241,7 @@ static int em28xx_i2c_recv_bytes(struct em28xx *dev, u16 
addr, u8 *buf, u16 len)
         * Zero length reads always succeed, even if no device is connected
         */
 
-       while (time_is_after_jiffies(timeout)) {
+       do {
                /* Read data from i2c device */
                ret = dev->em28xx_read_reg_req_len(dev, 2, addr, buf, len);
                if (ret < 0) {
@@ -270,7 +270,8 @@ static int em28xx_i2c_recv_bytes(struct em28xx *dev, u16 
addr, u8 *buf, u16 len)
                if (ret != 0x10)
                        break;
                msleep(5);
-       }
+       } while (time_is_after_jiffies(timeout));
+
        if (ret == 0x10) {
                em28xx_warn("I2C transfer timeout on read from addr 0x%02x", 
addr);
                return -ENODEV;
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to