Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1395662

[PATCH v6 1/9] input: max8997-haptic: Fix NULL pointer dereference

From Krzysztof Kozlowski <k.kozlowski@samsung.com>
Newsgroups linux.kernel
Subject [PATCH v6 1/9] input: max8997-haptic: Fix NULL pointer dereference
Date 2016-05-06 09:30 +0200
Message-ID <rvImZ-P0-7@gated-at.bofh.it> (permalink)
References <rvIn0-P0-19@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Marek Szyprowski <m.szyprowski@samsung.com>

NULL pointer derefence happens when booting with DTB because the
platform data for haptic device is not set in supplied data from parent
MFD device.

The MFD device creates only platform data (from Device Tree) for itself,
not for haptic child.

Unable to handle kernel NULL pointer dereference at virtual address 0000009c
pgd = c0004000
	[0000009c] *pgd=00000000
	Internal error: Oops: 5 [#1] PREEMPT SMP ARM
	(max8997_haptic_probe) from [<c03f9cec>] (platform_drv_probe+0x4c/0xb0)
	(platform_drv_probe) from [<c03f8440>] (driver_probe_device+0x214/0x2c0)
	(driver_probe_device) from [<c03f8598>] (__driver_attach+0xac/0xb0)
	(__driver_attach) from [<c03f67ac>] (bus_for_each_dev+0x68/0x9c)
	(bus_for_each_dev) from [<c03f7a38>] (bus_add_driver+0x1a0/0x218)
	(bus_add_driver) from [<c03f8db0>] (driver_register+0x78/0xf8)
	(driver_register) from [<c0101774>] (do_one_initcall+0x90/0x1d8)
	(do_one_initcall) from [<c0a00dbc>] (kernel_init_freeable+0x15c/0x1fc)
	(kernel_init_freeable) from [<c06bb5b4>] (kernel_init+0x8/0x114)
	(kernel_init) from [<c0107938>] (ret_from_fork+0x14/0x3c)

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: <stable@vger.kernel.org>
Fixes: 104594b01ce7 ("Input: add driver support for MAX8997-haptic")
[k.kozlowski: Write commit message, add CC-stable]
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
---
 drivers/input/misc/max8997_haptic.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/input/misc/max8997_haptic.c b/drivers/input/misc/max8997_haptic.c
index a806ba3818f7..8d6326d7e7be 100644
--- a/drivers/input/misc/max8997_haptic.c
+++ b/drivers/input/misc/max8997_haptic.c
@@ -255,12 +255,14 @@ static int max8997_haptic_probe(struct platform_device *pdev)
 	struct max8997_dev *iodev = dev_get_drvdata(pdev->dev.parent);
 	const struct max8997_platform_data *pdata =
 					dev_get_platdata(iodev->dev);
-	const struct max8997_haptic_platform_data *haptic_pdata =
-					pdata->haptic_pdata;
+	const struct max8997_haptic_platform_data *haptic_pdata = NULL;
 	struct max8997_haptic *chip;
 	struct input_dev *input_dev;
 	int error;
 
+	if (pdata)
+		haptic_pdata = pdata->haptic_pdata;
+
 	if (!haptic_pdata) {
 		dev_err(&pdev->dev, "no haptic platform data\n");
 		return -EINVAL;
-- 
1.9.1

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v6 0/9] mfd: max8997: Add regmap support Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-05-06 09:30 +0200
  [PATCH v6 1/9] input: max8997-haptic: Fix NULL pointer dereference Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-05-06 09:30 +0200
    [PATCH v6 4/9] mfd: max8997: Change irq names to upper case Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-05-06 09:30 +0200
    [PATCH v6 8/9] ARM: dts: exynos: Fix regulator name to avoid forbidden  character on exynos4210-trats Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-05-06 09:30 +0200
    [PATCH v6 3/9] mfd: max8997: handle IRQs using regmap Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-05-06 09:30 +0200
    [PATCH v6 6/9] rtc: max8997: Check for ERRNO of regmap_irq_get_virq() Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-05-06 09:30 +0200
      Re: [PATCH v6 6/9] rtc: max8997: Check for ERRNO of  regmap_irq_get_virq() Alexandre Belloni <alexandre.belloni@free-electrons.com> - 2016-05-07 08:50 +0200
    [PATCH v6 9/9] ARM: dts: exynos: Add interrupt line to MAX8997 PMIC on  exynos4210-trats Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-05-06 09:30 +0200
    [PATCH v6 5/9] extcon: max8997: Fix handling error code of  regmap_irq_get_virq() Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-05-06 09:30 +0200
      Re: [PATCH v6 5/9] extcon: max8997: Fix handling error code of  regmap_irq_get_virq() Chanwoo Choi <cw00.choi@samsung.com> - 2016-05-10 03:30 +0200
    [PATCH v6 7/9] extcon: max8997: Fix inconsistent indenting Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-05-06 09:40 +0200
      Re: [PATCH v6 7/9] extcon: max8997: Fix inconsistent indenting Chanwoo Choi <cw00.choi@samsung.com> - 2016-05-10 03:30 +0200
    Re: [PATCH v6 2/9] mfd: max8997: Use regmap to access registers Jacek Anaszewski <j.anaszewski@samsung.com> - 2016-05-06 10:10 +0200
    Re: [PATCH v6 1/9] input: max8997-haptic: Fix NULL pointer  dereference Dmitry Torokhov <dmitry.torokhov@gmail.com> - 2016-05-09 18:40 +0200
  Re: [PATCH v6 0/9] mfd: max8997: Add regmap support Lee Jones <lee.jones@linaro.org> - 2016-05-09 09:40 +0200

csiph-web