forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/net/wireless/atmel/atmel_cs.c
....@@ -73,6 +73,7 @@
7373 static int atmel_probe(struct pcmcia_device *p_dev)
7474 {
7575 struct local_info *local;
76
+ int ret;
7677
7778 dev_dbg(&p_dev->dev, "atmel_attach()\n");
7879
....@@ -83,8 +84,16 @@
8384
8485 p_dev->priv = local;
8586
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
+}
8897
8998 static void atmel_detach(struct pcmcia_device *link)
9099 {
....@@ -117,11 +126,9 @@
117126
118127 static int atmel_config(struct pcmcia_device *link)
119128 {
120
- struct local_info *dev;
121129 int ret;
122130 const struct pcmcia_device_id *did;
123131
124
- dev = link->priv;
125132 did = dev_get_drvdata(&link->dev);
126133
127134 dev_dbg(&link->dev, "atmel_config\n");