|
@@ -674,7 +674,7 @@ dotry:
|
|
inurb->transfer_buffer_length =
|
|
inurb->transfer_buffer_length =
|
|
inurb->number_of_packets *
|
|
inurb->number_of_packets *
|
|
inurb->iso_frame_desc[0].length;
|
|
inurb->iso_frame_desc[0].length;
|
|
- preempt_disable();
|
|
|
|
|
|
+
|
|
if (u == 0) {
|
|
if (u == 0) {
|
|
int now;
|
|
int now;
|
|
struct usb_device *dev = inurb->dev;
|
|
struct usb_device *dev = inurb->dev;
|
|
@@ -686,19 +686,17 @@ dotry:
|
|
}
|
|
}
|
|
err = usb_submit_urb(inurb, GFP_ATOMIC);
|
|
err = usb_submit_urb(inurb, GFP_ATOMIC);
|
|
if (err < 0) {
|
|
if (err < 0) {
|
|
- preempt_enable();
|
|
|
|
snd_printk(KERN_ERR"usb_submit_urb(sk->inurb[%i])"
|
|
snd_printk(KERN_ERR"usb_submit_urb(sk->inurb[%i])"
|
|
" returned %i\n", u, err);
|
|
" returned %i\n", u, err);
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
err = usb_submit_urb(outurb, GFP_ATOMIC);
|
|
err = usb_submit_urb(outurb, GFP_ATOMIC);
|
|
if (err < 0) {
|
|
if (err < 0) {
|
|
- preempt_enable();
|
|
|
|
snd_printk(KERN_ERR"usb_submit_urb(sk->outurb[%i])"
|
|
snd_printk(KERN_ERR"usb_submit_urb(sk->outurb[%i])"
|
|
" returned %i\n", u, err);
|
|
" returned %i\n", u, err);
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
- preempt_enable();
|
|
|
|
|
|
+
|
|
if (inurb->start_frame != outurb->start_frame) {
|
|
if (inurb->start_frame != outurb->start_frame) {
|
|
snd_printd(KERN_DEBUG
|
|
snd_printd(KERN_DEBUG
|
|
"u[%i] start_frames differ in:%u out:%u\n",
|
|
"u[%i] start_frames differ in:%u out:%u\n",
|