in uio.c [1014:1036]
int __devm_uio_register_device(struct module *owner,
struct device *parent,
struct uio_info *info)
{
struct uio_info **ptr;
int ret;
ptr = devres_alloc(devm_uio_unregister_device, sizeof(*ptr),
GFP_KERNEL);
if (!ptr)
return -ENOMEM;
*ptr = info;
ret = __uio_register_device(owner, parent, info);
if (ret) {
devres_free(ptr);
return ret;
}
devres_add(parent, ptr);
return 0;
}