[media] m920x: let GCC see 'ret' is used initialized
authorPaul Bolle <pebolle@tiscali.nl>
Mon, 4 Mar 2013 12:43:20 +0000 (09:43 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 18 Mar 2013 20:35:24 +0000 (17:35 -0300)
Since commit 7543f344e9b06afe86b55a2620f5c11b38bd5642 ("[media] m920x:
factor out a m920x_write_seq() function") building m920x.o triggers this
GCC warning:
    drivers/media/usb/dvb-usb/m920x.c: In function ‘m920x_probe’:
    drivers/media/usb/dvb-usb/m920x.c:91:6: warning: ‘ret’ may be used uninitialized in this function [-Wuninitialized]
This warning is caused by m920x_write_seq(), which is apparently inlined
into m920x_probe(). It is clear why GCC thinks 'ret' may be used
uninitialized. But in practice the first seq->address will always be
non-zero when this function is called. That means we can change the
while()-do{} loop into a do{}-while() loop. And that suffices to make
GCC see that 'ret' will not be used uninitialized.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/usb/dvb-usb/m920x.c

index 92afeb20650f653cebb5c4a5167cf15b2ffd1d08..79b31ae66a9c53b0f5c237869f039a2edfb1134f 100644 (file)
@@ -68,13 +68,13 @@ static inline int m920x_write_seq(struct usb_device *udev, u8 request,
                                  struct m920x_inits *seq)
 {
        int ret;
-       while (seq->address) {
+       do {
                ret = m920x_write(udev, request, seq->data, seq->address);
                if (ret != 0)
                        return ret;
 
                seq++;
-       }
+       } while (seq->address);
 
        return ret;
 }