summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Delvare <jdelvare@suse.de>2013-10-10 08:04:06 +0200
committerWolfram Sang <wsa@the-dreams.de>2013-10-10 10:22:31 +0200
commit47b6e477ed4ecacddd1f82d04d686026e08dc3db (patch)
treef9e03f3e28a24d9c4197d5483dd22585de74c583
parent6d2cfb109725b748f47a242f87be9c31bf7e42c0 (diff)
downloadlinux-47b6e477ed4ecacddd1f82d04d686026e08dc3db.tar.gz
linux-47b6e477ed4ecacddd1f82d04d686026e08dc3db.tar.bz2
linux-47b6e477ed4ecacddd1f82d04d686026e08dc3db.zip
i2c: Not all adapters have a parent
The code in acpi_i2c_register_devices() assumes that all i2c adapters have a parent. This is not necessarily the case, for example the i2c-stub driver instantiate a virtual i2c adapter without a parent. Check for this to avoid a NULL pointer deference. Signed-off-by: Jean Delvare <jdelvare@suse.de> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
-rw-r--r--drivers/i2c/i2c-core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 29d3f045a2bf..3be58f89ac77 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -1134,6 +1134,9 @@ static void acpi_i2c_register_devices(struct i2c_adapter *adap)
acpi_handle handle;
acpi_status status;
+ if (!adap->dev.parent)
+ return;
+
handle = ACPI_HANDLE(adap->dev.parent);
if (!handle)
return;