[PATCH] [media] m920x: let GCC see 'ret' is used initialized

From: Paul Bolle
Date: Mon Mar 04 2013 - 08:43:42 EST


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@xxxxxxxxxx>
---
Compile tested only!

drivers/media/usb/dvb-usb/m920x.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/usb/dvb-usb/m920x.c b/drivers/media/usb/dvb-usb/m920x.c
index 92afeb2..79b31ae 100644
--- a/drivers/media/usb/dvb-usb/m920x.c
+++ b/drivers/media/usb/dvb-usb/m920x.c
@@ -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;
}
--
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/