Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: typec: wusb3801: fix fwnode refcount leak in wusb3801_probe()

I got the following report while doing fault injection test:

OF: ERROR: memory leak, expected refcount 1 instead of 4,
of_node_get()/of_node_put() unbalanced - destroy cset entry:
attach overlay node /i2c/tcpc@60/connector

If wusb3801_hw_init() fails, fwnode_handle_put() needs be called to
avoid refcount leak.

Fixes: d016cbe4d7ac ("usb: typec: Support the WUSB3801 port controller")
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20221203071027.3808308-1-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Yang Yingliang and committed by
Greg Kroah-Hartman
dc18a4c7 c35ca10f

+1 -1
+1 -1
drivers/usb/typec/wusb3801.c
··· 364 364 /* Initialize the hardware with the devicetree settings. */ 365 365 ret = wusb3801_hw_init(wusb3801); 366 366 if (ret) 367 - return ret; 367 + goto err_put_connector; 368 368 369 369 wusb3801->cap.revision = USB_TYPEC_REV_1_2; 370 370 wusb3801->cap.accessory[0] = TYPEC_ACCESSORY_AUDIO;