ALSA: usb-audio: Check shutdown at endpoint_set_interface()
authorTakashi Iwai <tiwai@suse.de>
Thu, 8 Aug 2024 09:15:21 +0000 (11:15 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 8 Aug 2024 09:16:15 +0000 (11:16 +0200)
The call of usb_set_interface() and a delay are superfluous when the
device has been already disconnected.  Add a disconnection check
before doing it.

Link: https://patch.msgid.link/20240808091522.31415-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/endpoint.c

index 8f65349..5680994 100644 (file)
@@ -921,6 +921,9 @@ static int endpoint_set_interface(struct snd_usb_audio *chip,
 
        if (ep->iface_ref->altset == altset)
                return 0;
+       /* already disconnected? */
+       if (unlikely(atomic_read(&chip->shutdown)))
+               return -ENODEV;
 
        usb_audio_dbg(chip, "Setting usb interface %d:%d for EP 0x%x\n",
                      ep->iface, altset, ep->ep_num);