aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca/gspca.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/gspca/gspca.c')
-rw-r--r--drivers/media/video/gspca/gspca.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index ebaa2425fb5..3298e33c782 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -138,7 +138,7 @@ static void fill_frame(struct gspca_dev *gspca_dev,
138 if (!gspca_dev->frozen) 138 if (!gspca_dev->frozen)
139#endif 139#endif
140 PDEBUG(D_ERR|D_PACK, "urb status: %d", urb->status); 140 PDEBUG(D_ERR|D_PACK, "urb status: %d", urb->status);
141 return; 141 goto resubmit;
142 } 142 }
143 pkt_scan = gspca_dev->sd_desc->pkt_scan; 143 pkt_scan = gspca_dev->sd_desc->pkt_scan;
144 for (i = 0; i < urb->number_of_packets; i++) { 144 for (i = 0; i < urb->number_of_packets; i++) {
@@ -174,6 +174,7 @@ static void fill_frame(struct gspca_dev *gspca_dev,
174 pkt_scan(gspca_dev, frame, data, len); 174 pkt_scan(gspca_dev, frame, data, len);
175 } 175 }
176 176
177resubmit:
177 /* resubmit the URB */ 178 /* resubmit the URB */
178 st = usb_submit_urb(urb, GFP_ATOMIC); 179 st = usb_submit_urb(urb, GFP_ATOMIC);
179 if (st < 0) 180 if (st < 0)
@@ -220,7 +221,7 @@ static void bulk_irq(struct urb *urb)
220 if (!gspca_dev->frozen) 221 if (!gspca_dev->frozen)
221#endif 222#endif
222 PDEBUG(D_ERR|D_PACK, "urb status: %d", urb->status); 223 PDEBUG(D_ERR|D_PACK, "urb status: %d", urb->status);
223 return; 224 goto resubmit;
224 } 225 }
225 226
226 /* check the availability of the frame buffer */ 227 /* check the availability of the frame buffer */
@@ -235,6 +236,7 @@ static void bulk_irq(struct urb *urb)
235 urb->actual_length); 236 urb->actual_length);
236 } 237 }
237 238
239resubmit:
238 /* resubmit the URB */ 240 /* resubmit the URB */
239 if (gspca_dev->cam.bulk_nurbs != 0) { 241 if (gspca_dev->cam.bulk_nurbs != 0) {
240 st = usb_submit_urb(urb, GFP_ATOMIC); 242 st = usb_submit_urb(urb, GFP_ATOMIC);