kernel/drivers/net/wireless/atmel/atmel_cs.c
.. .. @@ -73,6 +73,7 @@ 73 73 static int atmel_probe(struct pcmcia_device *p_dev) 74 74 { 75 75 struct local_info *local; 76 + int ret;76 77 77 78 dev_dbg(&p_dev->dev, "atmel_attach()\n"); 78 79 .. .. @@ -83,8 +84,16 @@ 83 84 84 85 p_dev->priv = local; 85 86 86 - return atmel_config(p_dev);87 -} /* atmel_attach */87 + ret = atmel_config(p_dev);88 + if (ret)89 + goto err_free_priv;90 +91 + return 0;92 +93 +err_free_priv:94 + kfree(p_dev->priv);95 + return ret;96 +}88 97 89 98 static void atmel_detach(struct pcmcia_device *link) 90 99 {