Skip to content

Commit

Permalink
device property: the secondary fwnode needs to depend on the primary
Browse files Browse the repository at this point in the history
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: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Heikki Krogerus authored and Rafael J. Wysocki committed Jan 1, 2016
1 parent aace736 commit 0fb5902
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/base/property.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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_; \
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 0fb5902

Please sign in to comment.