Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e92e4478 authored by LABBE Corentin's avatar LABBE Corentin Committed by Philipp Zabel
Browse files

gpu: ipu-v3: fix a possible NULL dereference



of_match_device could return NULL, and so cause a NULL pointer
dereference later.

For fixing this problem, we use of_device_get_match_data(), this will
simplify the code a little by using a standard function for
getting the match data.

Testing the return value of of_device_get_match_data is also necessary
for avoiding a second NULL deref later on devtype.

Signed-off-by: default avatarLABBE Corentin <clabbe.montjoie@gmail.com>
Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
parent c15d493c
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -1355,8 +1355,6 @@ EXPORT_SYMBOL_GPL(ipu_dump);


static int ipu_probe(struct platform_device *pdev)
static int ipu_probe(struct platform_device *pdev)
{
{
	const struct of_device_id *of_id =
			of_match_device(imx_ipu_dt_ids, &pdev->dev);
	struct device_node *np = pdev->dev.of_node;
	struct device_node *np = pdev->dev.of_node;
	struct ipu_soc *ipu;
	struct ipu_soc *ipu;
	struct resource *res;
	struct resource *res;
@@ -1364,7 +1362,9 @@ static int ipu_probe(struct platform_device *pdev)
	int i, ret, irq_sync, irq_err;
	int i, ret, irq_sync, irq_err;
	const struct ipu_devtype *devtype;
	const struct ipu_devtype *devtype;


	devtype = of_id->data;
	devtype = of_device_get_match_data(&pdev->dev);
	if (!devtype)
		return -EINVAL;


	irq_sync = platform_get_irq(pdev, 0);
	irq_sync = platform_get_irq(pdev, 0);
	irq_err = platform_get_irq(pdev, 1);
	irq_err = platform_get_irq(pdev, 1);