7ef4087
From e3f9e299bf94298ddd8beb63c0786a4d7766dc86 Mon Sep 17 00:00:00 2001
7ef4087
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
7ef4087
Date: Mon, 30 Nov 2015 17:11:29 +0200
7ef4087
Subject: [PATCH 01/16] device property: always check for fwnode type
7ef4087
7ef4087
Currently the property accessors unconditionally fall back to built-in property
7ef4087
set as a last resort. Make this strict and return an error in case the type of
7ef4087
fwnode is unknown.
7ef4087
7ef4087
This is actually a follow up to the commit 4fa7508e9f1c (device property:
7ef4087
Return -ENXIO if there is no suitable FW interface).
7ef4087
7ef4087
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
7ef4087
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
7ef4087
---
7ef4087
 drivers/base/property.c | 12 +++++++-----
7ef4087
 1 file changed, 7 insertions(+), 5 deletions(-)
7ef4087
7ef4087
diff --git a/drivers/base/property.c b/drivers/base/property.c
7ef4087
index 1325ff2..09e488d 100644
7ef4087
--- a/drivers/base/property.c
7ef4087
+++ b/drivers/base/property.c
7ef4087
@@ -135,8 +135,9 @@ bool fwnode_property_present(struct fwnode_handle *fwnode, const char *propname)
7ef4087
 		return of_property_read_bool(to_of_node(fwnode), propname);
7ef4087
 	else if (is_acpi_node(fwnode))
7ef4087
 		return !acpi_node_prop_get(fwnode, propname, NULL);
7ef4087
-
7ef4087
-	return !!pset_prop_get(to_pset(fwnode), propname);
7ef4087
+	else if (is_pset(fwnode))
7ef4087
+		return !!pset_prop_get(to_pset(fwnode), propname);
7ef4087
+	return false;
7ef4087
 }
7ef4087
 EXPORT_SYMBOL_GPL(fwnode_property_present);
7ef4087
 
7ef4087
@@ -494,9 +495,10 @@ int fwnode_property_read_string(struct fwnode_handle *fwnode,
7ef4087
 	else if (is_acpi_node(fwnode))
7ef4087
 		return acpi_node_prop_read(fwnode, propname, DEV_PROP_STRING,
7ef4087
 					   val, 1);
7ef4087
-
7ef4087
-	return pset_prop_read_array(to_pset(fwnode), propname,
7ef4087
-				    DEV_PROP_STRING, val, 1);
7ef4087
+	else if (is_pset(fwnode))
7ef4087
+		return pset_prop_read_array(to_pset(fwnode), propname,
7ef4087
+					    DEV_PROP_STRING, val, 1);
7ef4087
+	return -ENXIO;
7ef4087
 }
7ef4087
 EXPORT_SYMBOL_GPL(fwnode_property_read_string);
7ef4087
 
7ef4087
-- 
7ef4087
2.5.0
7ef4087