[PATCH 4.9 20/44] i2c: add missing of_node_put in i2c_mux_del_adapters

From: Greg Kroah-Hartman
Date: Thu Mar 16 2017 - 10:57:22 EST


4.9-stable review patch. If anyone has any objections, please let me know.

------------------

From: Qi Hou <qi.hou@xxxxxxxxxxxxx>

commit 2e1e4949f9dfb053122785cd73540bb1e61f768b upstream.

Refcount of of_node is increased with of_node_get() in i2c_mux_add_adapter().
It must be decreased with of_node_put() in i2c_mux_del_adapters().

Signed-off-by: Qi Hou <qi.hou@xxxxxxxxxxxxx>
Reviewed-by: Zhang Xiao <xiao.zhang@xxxxxxxxxxxxx>
Signed-off-by: Peter Rosin <peda@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/i2c/i2c-mux.c | 2 ++
1 file changed, 2 insertions(+)

--- a/drivers/i2c/i2c-mux.c
+++ b/drivers/i2c/i2c-mux.c
@@ -429,6 +429,7 @@ void i2c_mux_del_adapters(struct i2c_mux
while (muxc->num_adapters) {
struct i2c_adapter *adap = muxc->adapter[--muxc->num_adapters];
struct i2c_mux_priv *priv = adap->algo_data;
+ struct device_node *np = adap->dev.of_node;

muxc->adapter[muxc->num_adapters] = NULL;

@@ -438,6 +439,7 @@ void i2c_mux_del_adapters(struct i2c_mux

sysfs_remove_link(&priv->adap.dev.kobj, "mux_device");
i2c_del_adapter(adap);
+ of_node_put(np);
kfree(priv);
}
}