Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fb5902f authored by Heikki Krogerus's avatar Heikki Krogerus Committed by Rafael J. Wysocki
Browse files

device property: the secondary fwnode needs to depend on the primary



This fixes NULL pointer dereference when the primary fwnode handle
does not exist, for example with PCI devices that do not have ACPI
companion.

Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent aace7367
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ bool fwnode_property_present(struct fwnode_handle *fwnode, const char *propname)
	bool ret;

	ret = __fwnode_property_present(fwnode, propname);
	if (ret == false && fwnode->secondary)
	if (ret == false && fwnode && fwnode->secondary)
		ret = __fwnode_property_present(fwnode->secondary, propname);
	return ret;
}
@@ -423,7 +423,7 @@ EXPORT_SYMBOL_GPL(device_property_match_string);
	int _ret_;									\
	_ret_ = FWNODE_PROP_READ(_fwnode_, _propname_, _type_, _proptype_,		\
				 _val_, _nval_);					\
	if (_ret_ == -EINVAL && _fwnode_->secondary)					\
	if (_ret_ == -EINVAL && _fwnode_ && _fwnode_->secondary)			\
		_ret_ = FWNODE_PROP_READ(_fwnode_->secondary, _propname_, _type_,	\
				_proptype_, _val_, _nval_);				\
	_ret_;										\
@@ -593,7 +593,7 @@ int fwnode_property_read_string_array(struct fwnode_handle *fwnode,
	int ret;

	ret = __fwnode_property_read_string_array(fwnode, propname, val, nval);
	if (ret == -EINVAL && fwnode->secondary)
	if (ret == -EINVAL && fwnode && fwnode->secondary)
		ret = __fwnode_property_read_string_array(fwnode->secondary,
							  propname, val, nval);
	return ret;
@@ -621,7 +621,7 @@ int fwnode_property_read_string(struct fwnode_handle *fwnode,
	int ret;

	ret = __fwnode_property_read_string(fwnode, propname, val);
	if (ret == -EINVAL && fwnode->secondary)
	if (ret == -EINVAL && fwnode && fwnode->secondary)
		ret = __fwnode_property_read_string(fwnode->secondary,
						    propname, val);
	return ret;