From: Mike Lockwood Date: Thu, 29 Jan 2015 21:37:06 +0000 (-0800) Subject: USB: gadget: midi: Fix deadlock unbinding driver while it is in use X-Git-Tag: firefly_0821_release~4090^2~42 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=261230ce54cfc119efe643fc1d128e431d1678d3;p=firefly-linux-kernel-4.4.55.git USB: gadget: midi: Fix deadlock unbinding driver while it is in use 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 --- diff --git a/drivers/usb/gadget/f_midi.c b/drivers/usb/gadget/f_midi.c index 263e721c2694..b91f519776ce 100644 --- a/drivers/usb/gadget/f_midi.c +++ b/drivers/usb/gadget/f_midi.c @@ -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;