[media] V4L2: mt9t031: don't Oops if asynchronous probing is attempted
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Tue, 30 Jul 2013 06:34:06 +0000 (03:34 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Sun, 18 Aug 2013 12:07:02 +0000 (09:07 -0300)
The mt9t031 driver hasn't yet been updated to support asynchronous
subdevice probing. If such a probing is attempted, the driver is allowed
to fail, but it shouldn't Oops. This patch fixes such a potential NULL
pointer dereference.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/i2c/soc_camera/mt9t031.c

index 47d18d0bafe7b51fae5b2775c15fa70b19a3327e..ee7bb0ffcecbe79c7d8b076ba5428a965a06ecfb 100644 (file)
@@ -594,9 +594,12 @@ static int mt9t031_s_power(struct v4l2_subdev *sd, int on)
                ret = soc_camera_power_on(&client->dev, ssdd, mt9t031->clk);
                if (ret < 0)
                        return ret;
-               vdev->dev.type = &mt9t031_dev_type;
+               if (vdev)
+                       /* Not needed during probing, when vdev isn't available yet */
+                       vdev->dev.type = &mt9t031_dev_type;
        } else {
-               vdev->dev.type = NULL;
+               if (vdev)
+                       vdev->dev.type = NULL;
                soc_camera_power_off(&client->dev, ssdd, mt9t031->clk);
        }