USB: gadget: midi: Fix deadlock unbinding driver while it is in use
authorMike Lockwood <lockwood@google.com>
Thu, 29 Jan 2015 21:37:06 +0000 (13:37 -0800)
committerMike Lockwood <lockwood@google.com>
Mon, 16 Mar 2015 17:51:35 +0000 (10:51 -0700)
Using snd_card_free_when_closed rather than snd_card_free in f_midi_unbind
makes it safe to disable the driver while a userspace client has the
ALSA device open.

Change-Id: Ibc40c01e7b1ce90fc61d3ea654b4816fadfc7ffd
Signed-off-by: Mike Lockwood <lockwood@google.com>
drivers/usb/gadget/f_midi.c

index 263e721c2694cdcdc9968d0a7c8f1c5957e16e75..b91f519776ce655e05d78974e9f72537bd8995ef 100644 (file)
@@ -409,7 +409,7 @@ static void f_midi_unbind(struct usb_configuration *c, struct usb_function *f)
        card = midi->card;
        midi->card = NULL;
        if (card)
-               snd_card_free(card);
+               snd_card_free_when_closed(card);
 
        kfree(midi->id);
        midi->id = NULL;