[media] v4l: subdev: Clean up properly in subdev devnode registration error path
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Sun, 15 Jan 2017 19:05:30 +0000 (17:05 -0200)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 3 Feb 2017 16:23:38 +0000 (14:23 -0200)
Set the subdev devnode pointer right after registration to ensure that
later errors won't skip the subdev when unregistering all devnodes.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/v4l2-core/v4l2-device.c

index 62bbed7..f364cc1 100644 (file)
@@ -253,6 +253,7 @@ int v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev)
                        kfree(vdev);
                        goto clean_up;
                }
+               sd->devnode = vdev;
 #if defined(CONFIG_MEDIA_CONTROLLER)
                sd->entity.info.dev.major = VIDEO_MAJOR;
                sd->entity.info.dev.minor = vdev->minor;
@@ -270,7 +271,6 @@ int v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev)
                        }
                }
 #endif
-               sd->devnode = vdev;
        }
        return 0;