Commit 5b3e7e05 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

Merge branches 'device-properties-fixes' and 'acpica-fixes'

* device-properties-fixes:
  device property: fwnode->secondary may contain ERR_PTR(-ENODEV)

* acpica-fixes:
  ACPICA: Revert "Parser: Fix for SuperName method invocation"
...@@ -269,8 +269,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state, ...@@ -269,8 +269,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state,
*/ */
if (ACPI_SUCCESS(status) && if (ACPI_SUCCESS(status) &&
possible_method_call && (node->type == ACPI_TYPE_METHOD)) { possible_method_call && (node->type == ACPI_TYPE_METHOD)) {
if (GET_CURRENT_ARG_TYPE(walk_state->arg_types) == if (walk_state->opcode == AML_UNLOAD_OP) {
ARGP_SUPERNAME) {
/* /*
* acpi_ps_get_next_namestring has increased the AML pointer, * acpi_ps_get_next_namestring has increased the AML pointer,
* so we need to restore the saved AML pointer for method call. * so we need to restore the saved AML pointer for method call.
...@@ -697,7 +696,7 @@ static union acpi_parse_object *acpi_ps_get_next_field(struct acpi_parse_state ...@@ -697,7 +696,7 @@ static union acpi_parse_object *acpi_ps_get_next_field(struct acpi_parse_state
* *
* PARAMETERS: walk_state - Current state * PARAMETERS: walk_state - Current state
* parser_state - Current parser state object * parser_state - Current parser state object
* arg_type - The parser argument type (ARGP_*) * arg_type - The argument type (AML_*_ARG)
* return_arg - Where the next arg is returned * return_arg - Where the next arg is returned
* *
* RETURN: Status, and an op object containing the next argument. * RETURN: Status, and an op object containing the next argument.
...@@ -817,9 +816,9 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state, ...@@ -817,9 +816,9 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
return_ACPI_STATUS(AE_NO_MEMORY); return_ACPI_STATUS(AE_NO_MEMORY);
} }
/* super_name allows argument to be a method call */ /* To support super_name arg of Unload */
if (arg_type == ARGP_SUPERNAME) { if (walk_state->opcode == AML_UNLOAD_OP) {
status = status =
acpi_ps_get_next_namepath(walk_state, acpi_ps_get_next_namepath(walk_state,
parser_state, arg, parser_state, arg,
......
...@@ -218,7 +218,7 @@ bool fwnode_property_present(struct fwnode_handle *fwnode, const char *propname) ...@@ -218,7 +218,7 @@ bool fwnode_property_present(struct fwnode_handle *fwnode, const char *propname)
bool ret; bool ret;
ret = __fwnode_property_present(fwnode, propname); ret = __fwnode_property_present(fwnode, propname);
if (ret == false && fwnode && fwnode->secondary) if (ret == false && fwnode && !IS_ERR_OR_NULL(fwnode->secondary))
ret = __fwnode_property_present(fwnode->secondary, propname); ret = __fwnode_property_present(fwnode->secondary, propname);
return ret; return ret;
} }
...@@ -423,7 +423,7 @@ EXPORT_SYMBOL_GPL(device_property_match_string); ...@@ -423,7 +423,7 @@ EXPORT_SYMBOL_GPL(device_property_match_string);
int _ret_; \ int _ret_; \
_ret_ = FWNODE_PROP_READ(_fwnode_, _propname_, _type_, _proptype_, \ _ret_ = FWNODE_PROP_READ(_fwnode_, _propname_, _type_, _proptype_, \
_val_, _nval_); \ _val_, _nval_); \
if (_ret_ == -EINVAL && _fwnode_ && _fwnode_->secondary) \ if (_ret_ == -EINVAL && _fwnode_ && !IS_ERR_OR_NULL(_fwnode_->secondary)) \
_ret_ = FWNODE_PROP_READ(_fwnode_->secondary, _propname_, _type_, \ _ret_ = FWNODE_PROP_READ(_fwnode_->secondary, _propname_, _type_, \
_proptype_, _val_, _nval_); \ _proptype_, _val_, _nval_); \
_ret_; \ _ret_; \
...@@ -593,7 +593,7 @@ int fwnode_property_read_string_array(struct fwnode_handle *fwnode, ...@@ -593,7 +593,7 @@ int fwnode_property_read_string_array(struct fwnode_handle *fwnode,
int ret; int ret;
ret = __fwnode_property_read_string_array(fwnode, propname, val, nval); ret = __fwnode_property_read_string_array(fwnode, propname, val, nval);
if (ret == -EINVAL && fwnode && fwnode->secondary) if (ret == -EINVAL && fwnode && !IS_ERR_OR_NULL(fwnode->secondary))
ret = __fwnode_property_read_string_array(fwnode->secondary, ret = __fwnode_property_read_string_array(fwnode->secondary,
propname, val, nval); propname, val, nval);
return ret; return ret;
...@@ -621,7 +621,7 @@ int fwnode_property_read_string(struct fwnode_handle *fwnode, ...@@ -621,7 +621,7 @@ int fwnode_property_read_string(struct fwnode_handle *fwnode,
int ret; int ret;
ret = __fwnode_property_read_string(fwnode, propname, val); ret = __fwnode_property_read_string(fwnode, propname, val);
if (ret == -EINVAL && fwnode && fwnode->secondary) if (ret == -EINVAL && fwnode && !IS_ERR_OR_NULL(fwnode->secondary))
ret = __fwnode_property_read_string(fwnode->secondary, ret = __fwnode_property_read_string(fwnode->secondary,
propname, val); propname, val);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment