diff mbox series

[v2,1/4] platform/x86: int3472: Check for adev == NULL

Message ID 20241209220522.25288-1-hdegoede@redhat.com (mailing list archive)
State Accepted, archived
Headers show
Series [v2,1/4] platform/x86: int3472: Check for adev == NULL | expand

Commit Message

Hans de Goede Dec. 9, 2024, 10:05 p.m. UTC
Not all devices have an ACPI companion fwnode, so adev might be NULL. This
can e.g. (theoretically) happen when a user manually binds one of
the int3472 drivers to another i2c/platform device through sysfs.

Add a check for adev not being set and return -ENODEV in that case to
avoid a possible NULL pointer deref in skl_int3472_get_acpi_buffer().

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Changes in v2:
- Improve commit message
---
 drivers/platform/x86/intel/int3472/discrete.c | 3 +++
 drivers/platform/x86/intel/int3472/tps68470.c | 3 +++
 2 files changed, 6 insertions(+)

Comments

Ilpo Järvinen Dec. 10, 2024, 2:03 p.m. UTC | #1
On Mon, 09 Dec 2024 23:05:19 +0100, Hans de Goede wrote:

> Not all devices have an ACPI companion fwnode, so adev might be NULL. This
> can e.g. (theoretically) happen when a user manually binds one of
> the int3472 drivers to another i2c/platform device through sysfs.
> 
> Add a check for adev not being set and return -ENODEV in that case to
> avoid a possible NULL pointer deref in skl_int3472_get_acpi_buffer().
> 
> [...]


Thank you for your contribution, it has been applied to my local
review-ilpo-next branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-next branch only once I've pushed my
local branch there, which might take a while.

The list of commits applied:
[1/4] platform/x86: int3472: Check for adev == NULL
      commit: cd2fd6eab480dfc247b737cf7a3d6b009c4d0f1c
[2/4] platform/x86: int3472: Make "pin number mismatch" message a debug message
      commit: 1dd0cb9cabf37fbe20f0a66e4c3972cb21240aed
[3/4] platform/x86: int3472: Fix skl_int3472_handle_gpio_resources() return value
      commit: 6718d42b6eb28228a554db6c8973693ad5320006
[4/4] platform/x86: int3472: Debug log the sensor name
      commit: cc115abc1f9b55092c11c183ebff9ad921251609

--
 i.
diff mbox series

Patch

diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c
index d881b2cfcdfc..09fff213b091 100644
--- a/drivers/platform/x86/intel/int3472/discrete.c
+++ b/drivers/platform/x86/intel/int3472/discrete.c
@@ -336,6 +336,9 @@  static int skl_int3472_discrete_probe(struct platform_device *pdev)
 	struct int3472_cldb cldb;
 	int ret;
 
+	if (!adev)
+		return -ENODEV;
+
 	ret = skl_int3472_fill_cldb(adev, &cldb);
 	if (ret) {
 		dev_err(&pdev->dev, "Couldn't fill CLDB structure\n");
diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
index 1e107fd49f82..81ac4c691963 100644
--- a/drivers/platform/x86/intel/int3472/tps68470.c
+++ b/drivers/platform/x86/intel/int3472/tps68470.c
@@ -152,6 +152,9 @@  static int skl_int3472_tps68470_probe(struct i2c_client *client)
 	int ret;
 	int i;
 
+	if (!adev)
+		return -ENODEV;
+
 	n_consumers = skl_int3472_fill_clk_pdata(&client->dev, &clk_pdata);
 	if (n_consumers < 0)
 		return n_consumers;