device property: always check for fwnode type
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 30 Nov 2015 15:11:29 +0000 (17:11 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 7 Dec 2015 01:29:22 +0000 (02:29 +0100)
Currently the property accessors unconditionally fall back to built-in property
set as a last resort. Make this strict and return an error in case the type of
fwnode is unknown.

This is actually a follow up to the commit 4fa7508e9f1c (device property:
Return -ENXIO if there is no suitable FW interface).

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/base/property.c

index 1325ff225cc4a5b37a7c0b3fe0b3d7946c37811e..09e488db59ea50a4921a16ff769b381431a00497 100644 (file)
@@ -135,8 +135,9 @@ bool fwnode_property_present(struct fwnode_handle *fwnode, const char *propname)
                return of_property_read_bool(to_of_node(fwnode), propname);
        else if (is_acpi_node(fwnode))
                return !acpi_node_prop_get(fwnode, propname, NULL);
-
-       return !!pset_prop_get(to_pset(fwnode), propname);
+       else if (is_pset(fwnode))
+               return !!pset_prop_get(to_pset(fwnode), propname);
+       return false;
 }
 EXPORT_SYMBOL_GPL(fwnode_property_present);
 
@@ -494,9 +495,10 @@ int fwnode_property_read_string(struct fwnode_handle *fwnode,
        else if (is_acpi_node(fwnode))
                return acpi_node_prop_read(fwnode, propname, DEV_PROP_STRING,
                                           val, 1);
-
-       return pset_prop_read_array(to_pset(fwnode), propname,
-                                   DEV_PROP_STRING, val, 1);
+       else if (is_pset(fwnode))
+               return pset_prop_read_array(to_pset(fwnode), propname,
+                                           DEV_PROP_STRING, val, 1);
+       return -ENXIO;
 }
 EXPORT_SYMBOL_GPL(fwnode_property_read_string);