@@ -205,36 +205,34 @@ static int fun_probe(struct platform_device *ofdev)
205
205
int size ;
206
206
int i ;
207
207
208
- fun = kzalloc ( sizeof (* fun ), GFP_KERNEL );
208
+ fun = devm_kzalloc ( & ofdev -> dev , sizeof (* fun ), GFP_KERNEL );
209
209
if (!fun )
210
210
return - ENOMEM ;
211
211
212
212
ret = of_address_to_resource (ofdev -> dev .of_node , 0 , & io_res );
213
213
if (ret ) {
214
214
dev_err (& ofdev -> dev , "can't get IO base\n" );
215
- goto err1 ;
215
+ return ret ;
216
216
}
217
217
218
218
ret = fsl_upm_find (io_res .start , & fun -> upm );
219
219
if (ret ) {
220
220
dev_err (& ofdev -> dev , "can't find UPM\n" );
221
- goto err1 ;
221
+ return ret ;
222
222
}
223
223
224
224
prop = of_get_property (ofdev -> dev .of_node , "fsl,upm-addr-offset" ,
225
225
& size );
226
226
if (!prop || size != sizeof (uint32_t )) {
227
227
dev_err (& ofdev -> dev , "can't get UPM address offset\n" );
228
- ret = - EINVAL ;
229
- goto err1 ;
228
+ return - EINVAL ;
230
229
}
231
230
fun -> upm_addr_offset = * prop ;
232
231
233
232
prop = of_get_property (ofdev -> dev .of_node , "fsl,upm-cmd-offset" , & size );
234
233
if (!prop || size != sizeof (uint32_t )) {
235
234
dev_err (& ofdev -> dev , "can't get UPM command offset\n" );
236
- ret = - EINVAL ;
237
- goto err1 ;
235
+ return - EINVAL ;
238
236
}
239
237
fun -> upm_cmd_offset = * prop ;
240
238
@@ -244,7 +242,7 @@ static int fun_probe(struct platform_device *ofdev)
244
242
fun -> mchip_count = size / sizeof (uint32_t );
245
243
if (fun -> mchip_count >= NAND_MAX_CHIPS ) {
246
244
dev_err (& ofdev -> dev , "too much multiple chips\n" );
247
- goto err1 ;
245
+ return - EINVAL ;
248
246
}
249
247
for (i = 0 ; i < fun -> mchip_count ; i ++ )
250
248
fun -> mchip_offsets [i ] = be32_to_cpu (prop [i ]);
@@ -306,8 +304,6 @@ static int fun_probe(struct platform_device *ofdev)
306
304
break ;
307
305
gpio_free (fun -> rnb_gpio [i ]);
308
306
}
309
- err1 :
310
- kfree (fun );
311
307
312
308
return ret ;
313
309
}
@@ -330,8 +326,6 @@ static int fun_remove(struct platform_device *ofdev)
330
326
gpio_free (fun -> rnb_gpio [i ]);
331
327
}
332
328
333
- kfree (fun );
334
-
335
329
return 0 ;
336
330
}
337
331
0 commit comments