]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
media: v4l2-fwnode: use the cached value instead of getting again
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 31 Oct 2017 18:18:03 +0000 (14:18 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 1 Nov 2017 09:10:36 +0000 (05:10 -0400)
There is a get/put operation in order to get firmware is_available
data there at the __v4l2_async_notifier_parse_fwnode_endpoints()
function. However, instead of using it, the code just reads again
without the lock. That's a bug, as dev_fwnode isn't guaranteed
to be there once fwnode_handle_put() has been called on it.

This solves this smatch warning:

drivers/media/v4l2-core/v4l2-fwnode.c:453:8: warning: variable 'is_available' set but not used [-Wunused-but-set-variable]
   bool is_available;
        ^~~~~~~~~~~~

Fixes: 9ca465312132 ("media: v4l: fwnode: Support generic parsing of graph endpoints in a device")
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/v4l2-core/v4l2-fwnode.c

index 3b9c6afb49a3478a5cf6525d5efb9b38863c5839..681b192420d922f7677d32802672c9af2c810e86 100644 (file)
@@ -455,8 +455,7 @@ static int __v4l2_async_notifier_parse_fwnode_endpoints(
                dev_fwnode = fwnode_graph_get_port_parent(fwnode);
                is_available = fwnode_device_is_available(dev_fwnode);
                fwnode_handle_put(dev_fwnode);
-
-               if (!fwnode_device_is_available(dev_fwnode))
+               if (!is_available)
                        continue;
 
                if (WARN_ON(notifier->num_subdevs >= notifier->max_subdevs)) {