From 47381d97165691f603cea77b26917fc3aad505d3 Mon Sep 17 00:00:00 2001 From: Karsten Wiese Date: Wed, 31 Jan 2007 10:05:30 +0100 Subject: [PATCH] --- yaml --- r: 47200 b: refs/heads/master c: 8fa58af7db56077d6a042fd7b9dd4c9515e1c37b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/sound/core/hwdep.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 665d20711f29..4b58fde0ae29 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 298a2c753a5ae2f0e230a57e94843d248f0033e2 +refs/heads/master: 8fa58af7db56077d6a042fd7b9dd4c9515e1c37b diff --git a/trunk/sound/core/hwdep.c b/trunk/sound/core/hwdep.c index a6a6ad0ad3c8..39c03f3dfbfa 100644 --- a/trunk/sound/core/hwdep.c +++ b/trunk/sound/core/hwdep.c @@ -156,15 +156,16 @@ static int snd_hwdep_release(struct inode *inode, struct file * file) int err = -ENXIO; struct snd_hwdep *hw = file->private_data; struct module *mod = hw->card->module; + mutex_lock(&hw->open_mutex); - if (hw->ops.release) { + if (hw->ops.release) err = hw->ops.release(hw, file); - wake_up(&hw->open_wait); - } if (hw->used > 0) hw->used--; - snd_card_file_remove(hw->card, file); mutex_unlock(&hw->open_mutex); + wake_up(&hw->open_wait); + + snd_card_file_remove(hw->card, file); module_put(mod); return err; }