diff options
Diffstat (limited to 'drivers/media/video/gspca/gspca.c')
-rw-r--r-- | drivers/media/video/gspca/gspca.c | 6 |
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 | ||
177 | resubmit: | ||
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 | ||
239 | resubmit: | ||
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); |