aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pcmcia/pdaudiocf/pdaudiocf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pcmcia/pdaudiocf/pdaudiocf.c')
-rw-r--r--sound/pcmcia/pdaudiocf/pdaudiocf.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf.c b/sound/pcmcia/pdaudiocf/pdaudiocf.c
index adfdce7499d1..1c09e5f49da8 100644
--- a/sound/pcmcia/pdaudiocf/pdaudiocf.c
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf.c
@@ -241,12 +241,13 @@ static int pdacf_config(struct pcmcia_device *link)
241 CS_CHECK(ParseTuple, pcmcia_parse_tuple(link, &tuple, parse)); 241 CS_CHECK(ParseTuple, pcmcia_parse_tuple(link, &tuple, parse));
242 link->conf.ConfigBase = parse->config.base; 242 link->conf.ConfigBase = parse->config.base;
243 link->conf.ConfigIndex = 0x5; 243 link->conf.ConfigIndex = 0x5;
244 kfree(parse);
245 244
246 CS_CHECK(RequestIO, pcmcia_request_io(link, &link->io)); 245 CS_CHECK(RequestIO, pcmcia_request_io(link, &link->io));
247 CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); 246 CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq));
248 CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); 247 CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf));
249 248
249 kfree(parse);
250
250 if (snd_pdacf_assign_resources(pdacf, link->io.BasePort1, link->irq.AssignedIRQ) < 0) 251 if (snd_pdacf_assign_resources(pdacf, link->io.BasePort1, link->irq.AssignedIRQ) < 0)
251 goto failed; 252 goto failed;
252 253
@@ -254,6 +255,7 @@ static int pdacf_config(struct pcmcia_device *link)
254 return 0; 255 return 0;
255 256
256cs_failed: 257cs_failed:
258 kfree(parse);
257 cs_error(link, last_fn, last_ret); 259 cs_error(link, last_fn, last_ret);
258failed: 260failed:
259 pcmcia_disable_device(link); 261 pcmcia_disable_device(link);