9 Dec
2021
9 Dec
'21
10:58 a.m.
From: Wang Qing wangqing@vivo.com
of_find_device_by_node() takes a reference to the embedded struct device which needs to be dropped when error return.
...
data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); if (!data) { + put_device(&cpu_pdev->dev);
If it's of_find_device_by_node() you need an of_node_put() since you're dropping a reference on the OF node.
Label fail will drop a reference on the OF node. Also, put_device() is called later except this branch, we just need to add put_device() here.
Thanks, Qing
ret = -ENOMEM; goto fail;