aboutsummaryrefslogtreecommitdiffstats
path: root/sound/oss/au1550_ac97.c
diff options
context:
space:
mode:
authorDomen Puncer <domen.puncer@ultra.si>2006-06-25 08:49:27 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-25 13:01:25 -0400
commit5e37ed37b1a70a65185736fbec543ca4ad64a673 (patch)
treedc78a3dcd683303464af6355e0147714525dc955 /sound/oss/au1550_ac97.c
parent7d93a1a53a72aa704a8fef6e0fb4f6c6cd6aa07a (diff)
[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/au1550_ac97.c')
-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)
213 } 213 }
214 if (i == POLL_COUNT) { 214 if (i == POLL_COUNT) {
215 err("rdcodec: read poll expired!"); 215 err("rdcodec: read poll expired!");
216 return 0; 216 data = 0;
217 goto out;
217 } 218 }
218 219
219 /* wait for command done? 220 /* wait for command done?
@@ -226,7 +227,8 @@ rdcodec(struct ac97_codec *codec, u8 addr)
226 } 227 }
227 if (i == POLL_COUNT) { 228 if (i == POLL_COUNT) {
228 err("rdcodec: read cmdwait expired!"); 229 err("rdcodec: read cmdwait expired!");
229 return 0; 230 data = 0;
231 goto out;
230 } 232 }
231 233
232 data = au_readl(PSC_AC97CDC) & 0xffff; 234 data = au_readl(PSC_AC97CDC) & 0xffff;
@@ -237,6 +239,7 @@ rdcodec(struct ac97_codec *codec, u8 addr)
237 au_writel(PSC_AC97EVNT_CD, PSC_AC97EVNT); 239 au_writel(PSC_AC97EVNT_CD, PSC_AC97EVNT);
238 au_sync(); 240 au_sync();
239 241
242 out:
240 spin_unlock_irqrestore(&s->lock, flags); 243 spin_unlock_irqrestore(&s->lock, flags);
241 244
242 return data; 245 return data;