summaryrefslogtreecommitdiffstats
path: root/0001-device-property-always-check-for-fwnode-type.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-device-property-always-check-for-fwnode-type.patch')
-rw-r--r--0001-device-property-always-check-for-fwnode-type.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/0001-device-property-always-check-for-fwnode-type.patch b/0001-device-property-always-check-for-fwnode-type.patch
new file mode 100644
index 000000000..c62956b73
--- /dev/null
+++ b/0001-device-property-always-check-for-fwnode-type.patch
@@ -0,0 +1,51 @@
+From e3f9e299bf94298ddd8beb63c0786a4d7766dc86 Mon Sep 17 00:00:00 2001
+From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Date: Mon, 30 Nov 2015 17:11:29 +0200
+Subject: [PATCH 01/16] device property: always check for fwnode type
+
+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 | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/base/property.c b/drivers/base/property.c
+index 1325ff2..09e488d 100644
+--- a/drivers/base/property.c
++++ b/drivers/base/property.c
+@@ -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);
+
+--
+2.5.0
+