As reported by smatch:
	drivers/media/usb/gspca/zc3xx.c:5994 transfer_update() info: ignoring unreachable code.
That happens because there's a return that it is never called,
as the work queue runs an infinite loop, except when the device is
put to sleep or an error happens.
When an error happens, a break statement is enough to go out of
the loop. So, let's remove the goto, as break is the typical
instruction used to end a loop.
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
        reg07 = 0;
 
        good = 0;
-       for (;;) {
+       while (1) {
                msleep(100);
 
                /* To protect gspca_dev->usb_buf and gspca_dev->usb_err */
                mutex_lock(&gspca_dev->usb_lock);
 #ifdef CONFIG_PM
                if (gspca_dev->frozen)
-                       goto err;
+                       break;
 #endif
                if (!gspca_dev->present || !gspca_dev->streaming)
-                       goto err;
+                       break;
 
                /* Bit 0 of register 11 indicates FIFO overflow */
                gspca_dev->usb_err = 0;
                reg11 = reg_r(gspca_dev, 0x0011);
                if (gspca_dev->usb_err)
-                       goto err;
+                       break;
 
                change = reg11 & 0x01;
                if (change) {                           /* overflow */
                        gspca_dev->usb_err = 0;
                        reg_w(gspca_dev, reg07, 0x0007);
                        if (gspca_dev->usb_err)
-                               goto err;
+                               break;
                }
                mutex_unlock(&gspca_dev->usb_lock);
        }
-       return;
-err:
+
+       /* Something went wrong. Unlock and return */
        mutex_unlock(&gspca_dev->usb_lock);
 }