mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
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: 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>
This commit is contained in:
parent
aace7367bf
commit
0fb5902f2f
1 changed files with 4 additions and 4 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue