On Tue, 2015-05-05 at 11:08 -0500, Rivera Jose-B46482 wrote: > > > > to read what "goto error;" does. The error handling here calls > > > > devm_kfree() which is not needed... devm_ functions automatically > > > > clean up after themselves. This seems a pattern throughout. Do a > > > > search for > > > > devm_free() and see which ones are really needed or not. > > > > > > > I know that memory allocated with devm_kzalloc() is freed at the end > > > of the lifetime of the device it is attached to. However, in error > > > paths, why wait until the device is destroyed? Why not free the memory > > > earlier so that it can be used for other purposes? > > > Why then do the devm_kfree() function exist? > > I will not remove the devm_free() calls unless the upstream maintainer > requires me to do so. The whole point of devm is to simplify (often poorly tested) error paths. You're trying to optimize the error path instead of simplify it, which doesn't make sense. devm_kfree() is for the uncommon case when you want to free the memory in a situation where the device isn't being unbound any time soon, but you still want the memory to be handled by devm for some reason. Most users of devm_kzalloc() do not use devm_kfree(): scott@snotra:~/fsl/git/linux/upstream$ git grep devm_kzalloc|wc -l 2750 scott@snotra:~/fsl/git/linux/upstream$ git grep devm_kfree|wc -l 118 -Scott _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel