diff options
| author | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
|---|---|---|
| committer | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
| commit | 79828b4fa835f73cdaf4bffa48696abdcbea9d02 (patch) | |
| tree | 5e0fa7156acb75ba603022bc807df8f2fedb97a8 /sound/usb/endpoint.c | |
| parent | 721b51fcf91898299d96f4b72cb9434cda29dce6 (diff) | |
| parent | 8c1a9d6323abf0fb1e5dad96cf3f1c783505ea5a (diff) | |
Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-fix-rt5645
Diffstat (limited to 'sound/usb/endpoint.c')
| -rw-r--r-- | sound/usb/endpoint.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index 03b074419964..e6f71894ecdc 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c @@ -355,8 +355,10 @@ static void snd_complete_urb(struct urb *urb)  	if (unlikely(urb->status == -ENOENT ||		/* unlinked */  		     urb->status == -ENODEV ||		/* device removed */  		     urb->status == -ECONNRESET ||	/* unlinked */ -		     urb->status == -ESHUTDOWN ||	/* device disabled */ -		     ep->chip->shutdown))		/* device disconnected */ +		     urb->status == -ESHUTDOWN))	/* device disabled */ +		goto exit_clear; +	/* device disconnected */ +	if (unlikely(atomic_read(&ep->chip->shutdown)))  		goto exit_clear;  	if (usb_pipeout(ep->pipe)) { @@ -529,7 +531,7 @@ static int deactivate_urbs(struct snd_usb_endpoint *ep, bool force)  {  	unsigned int i; -	if (!force && ep->chip->shutdown) /* to be sure... */ +	if (!force && atomic_read(&ep->chip->shutdown)) /* to be sure... */  		return -EBADFD;  	clear_bit(EP_FLAG_RUNNING, &ep->flags); @@ -868,7 +870,7 @@ int snd_usb_endpoint_start(struct snd_usb_endpoint *ep, bool can_sleep)  	int err;  	unsigned int i; -	if (ep->chip->shutdown) +	if (atomic_read(&ep->chip->shutdown))  		return -EBADFD;  	/* already running? */  |