summaryrefslogtreecommitdiff
path: root/sound/oss
diff options
context:
space:
mode:
authorDomen Puncer <domen.puncer@ultra.si>2006-06-25 16:49:27 +0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-25 21:01:25 +0400
commit5e37ed37b1a70a65185736fbec543ca4ad64a673 (patch)
treedc78a3dcd683303464af6355e0147714525dc955 /sound/oss
parent7d93a1a53a72aa704a8fef6e0fb4f6c6cd6aa07a (diff)
downloadlinux-5e37ed37b1a70a65185736fbec543ca4ad64a673.tar.xz
[PATCH] au1550_ac97: spin_unlock in error path
Error paths didn't spin_unlock. Signed-off-by: Domen Puncer <domen.puncer@ultra.si> Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'sound/oss')
-rw-r--r--sound/oss/au1550_ac97.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/oss/au1550_ac97.c b/sound/oss/au1550_ac97.c
index 9011abe241ab..2e009427d633 100644
--- a/sound/oss/au1550_ac97.c
+++ b/sound/oss/au1550_ac97.c
@@ -213,7 +213,8 @@ rdcodec(struct ac97_codec *codec, u8 addr)
}
if (i == POLL_COUNT) {
err("rdcodec: read poll expired!");
- return 0;
+ data = 0;
+ goto out;
}
/* wait for command done?
@@ -226,7 +227,8 @@ rdcodec(struct ac97_codec *codec, u8 addr)
}
if (i == POLL_COUNT) {
err("rdcodec: read cmdwait expired!");
- return 0;
+ data = 0;
+ goto out;
}
data = au_readl(PSC_AC97CDC) & 0xffff;
@@ -237,6 +239,7 @@ rdcodec(struct ac97_codec *codec, u8 addr)
au_writel(PSC_AC97EVNT_CD, PSC_AC97EVNT);
au_sync();
+ out:
spin_unlock_irqrestore(&s->lock, flags);
return data;