This series fixes a missing call to of_node_put() in two steps: first adding the call (compatible with all affected kernels), and then moving to a more robust approach once the issue is fixed.
Signed-off-by: Javier Carrasco javier.carrasco.cruz@gmail.com --- Javier Carrasco (2): Bluetooth: btbcm: fix missing of_node_put() in btbcm_get_board_name() Bluetooth: btbcm: automate node cleanup in btbcm_get_board_name()
drivers/bluetooth/btbcm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) --- base-commit: 6fb2fa9805c501d9ade047fc511961f3273cdcb5 change-id: 20241030-bluetooth-btbcm-node-cleanup-23d21a73870c
Best regards,
Add the missing call lto of_node_put(root) in the early return to decrement the refcount and avoid leaking the resource.
Cc: stable@vger.kernel.org Fixes: 63fac3343b99 ("Bluetooth: btbcm: Support per-board firmware variants") Signed-off-by: Javier Carrasco javier.carrasco.cruz@gmail.com --- drivers/bluetooth/btbcm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c index eef00467905e..400c2663d6b0 100644 --- a/drivers/bluetooth/btbcm.c +++ b/drivers/bluetooth/btbcm.c @@ -549,8 +549,10 @@ static const char *btbcm_get_board_name(struct device *dev) if (!root) return NULL;
- if (of_property_read_string_index(root, "compatible", 0, &tmp)) + if (of_property_read_string_index(root, "compatible", 0, &tmp)) { + of_node_put(root); return NULL; + }
/* get rid of any '/' in the compatible string */ board_type = devm_kstrdup(dev, tmp, GFP_KERNEL);
linux-stable-mirror@lists.linaro.org