diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index 7c3a0a138af2..5276b3f228e7 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c @@ -1343,11 +1343,10 @@ int snd_usb_endpoint_set_params(struct snd_usb_audio *chip, const struct audioformat *fmt = ep->cur_audiofmt; int err; - mutex_lock(&chip->mutex); /* release old buffers, if any */ err = release_urbs(ep, false); if (err < 0) - goto unlock; + return err; ep->datainterval = fmt->datainterval; ep->maxpacksize = fmt->maxpacksize; @@ -1385,16 +1384,13 @@ int snd_usb_endpoint_set_params(struct snd_usb_audio *chip, usb_audio_dbg(chip, "Set up %d URBS, ret=%d\n", ep->nurbs, err); if (err < 0) - goto unlock; + return err; /* some unit conversions in runtime */ ep->maxframesize = ep->maxpacksize / ep->cur_frame_bytes; ep->curframesize = ep->curpacksize / ep->cur_frame_bytes; - err = update_clock_ref_rate(chip, ep); - unlock: - mutex_unlock(&chip->mutex); - return err; + return update_clock_ref_rate(chip, ep); } static int init_sample_rate(struct snd_usb_audio *chip,