| From af7dc20b954e77999afc5029c989894a662e68c5 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 22 Sep 2021 17:57:18 +0100 |
| Subject: i2c: acpi: fix resource leak in reconfiguration device addition |
| |
| From: Jamie Iles <quic_jiles@quicinc.com> |
| |
| [ Upstream commit 6558b646ce1c2a872fe1c2c7cb116f05a2c1950f ] |
| |
| acpi_i2c_find_adapter_by_handle() calls bus_find_device() which takes a |
| reference on the adapter which is never released which will result in a |
| reference count leak and render the adapter unremovable. Make sure to |
| put the adapter after creating the client in the same manner that we do |
| for OF. |
| |
| Fixes: 525e6fabeae2 ("i2c / ACPI: add support for ACPI reconfigure notifications") |
| Signed-off-by: Jamie Iles <quic_jiles@quicinc.com> |
| Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> |
| [wsa: fixed title] |
| Signed-off-by: Wolfram Sang <wsa@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/i2c/i2c-core-acpi.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c |
| index 8ba4122fb340..8288cfb44cb2 100644 |
| --- a/drivers/i2c/i2c-core-acpi.c |
| +++ b/drivers/i2c/i2c-core-acpi.c |
| @@ -395,6 +395,7 @@ static int i2c_acpi_notify(struct notifier_block *nb, unsigned long value, |
| break; |
| |
| i2c_acpi_register_device(adapter, adev, &info); |
| + put_device(&adapter->dev); |
| break; |
| case ACPI_RECONFIG_DEVICE_REMOVE: |
| if (!acpi_device_enumerated(adev)) |
| -- |
| 2.33.0 |
| |