From: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>

The rvin_digital_notify_bound() call dereferences the subdev->dev
pointer to obtain the of_node. On some error paths, this dev node can be
set as NULL. The of_node is mapped into the subdevice structure on
initialisation, so this is a safer source to compare the nodes.

Dereference the of_node from the subdev structure instead of the dev
structure.

Fixes: 83fba2c06f19 ("rcar-vin: rework how subdevice is found and
        bound")
Signed-off-by: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>
---
 drivers/media/platform/rcar-vin/rcar-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/rcar-vin/rcar-core.c 
b/drivers/media/platform/rcar-vin/rcar-core.c
index 5861ab281150..a530dc388b95 100644
--- a/drivers/media/platform/rcar-vin/rcar-core.c
+++ b/drivers/media/platform/rcar-vin/rcar-core.c
@@ -469,7 +469,7 @@ static int rvin_digital_notify_bound(struct 
v4l2_async_notifier *notifier,
 
        v4l2_set_subdev_hostdata(subdev, vin);
 
-       if (vin->digital.asd.match.of.node == subdev->dev->of_node) {
+       if (vin->digital.asd.match.of.node == subdev->of_node) {
                /* Find surce and sink pad of remote subdevice */
 
                ret = rvin_find_pad(subdev, MEDIA_PAD_FL_SOURCE);
-- 
2.7.4

Reply via email to