diff options
author | Domen Puncer <domen.puncer@ultra.si> | 2006-06-25 08:49:27 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 13:01:25 -0400 |
commit | 5e37ed37b1a70a65185736fbec543ca4ad64a673 (patch) | |
tree | dc78a3dcd683303464af6355e0147714525dc955 /sound/oss/au1550_ac97.c | |
parent | 7d93a1a53a72aa704a8fef6e0fb4f6c6cd6aa07a (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.c | 7 |
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; |