2020-08-19 17:20:34

by Furquan Shaikh

[permalink] [raw]
Subject: [PATCH] drivers: acpi: apd: Check return value of acpi_dev_get_property

`fch_misc_setup()` uses `acpi_dev_get_property()` to read the value of
"is-rv" passed in by BIOS in ACPI tables. However, not all BIOSes
might pass in this property and hence it is important to first check
the return value of `acpi_dev_get_property()` before referencing the
object filled by it.

Signed-off-by: Furquan Shaikh <[email protected]>
---
drivers/acpi/acpi_apd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c
index 4c348377a39d..806b8ce05624 100644
--- a/drivers/acpi/acpi_apd.c
+++ b/drivers/acpi/acpi_apd.c
@@ -99,8 +99,8 @@ static int fch_misc_setup(struct apd_private_data *pdata)
if (ret < 0)
return -ENOENT;

- acpi_dev_get_property(adev, "is-rv", ACPI_TYPE_INTEGER, &obj);
- clk_data->is_rv = obj->integer.value;
+ if (!acpi_dev_get_property(adev, "is-rv", ACPI_TYPE_INTEGER, &obj))
+ clk_data->is_rv = obj->integer.value;

list_for_each_entry(rentry, &resource_list, node) {
clk_data->base = devm_ioremap(&adev->dev, rentry->res->start,
--
2.28.0.220.ged08abb693-goog


2020-08-21 18:30:20

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] drivers: acpi: apd: Check return value of acpi_dev_get_property

On Wed, Aug 19, 2020 at 7:17 PM Furquan Shaikh <[email protected]> wrote:
>
> `fch_misc_setup()` uses `acpi_dev_get_property()` to read the value of
> "is-rv" passed in by BIOS in ACPI tables. However, not all BIOSes
> might pass in this property and hence it is important to first check
> the return value of `acpi_dev_get_property()` before referencing the
> object filled by it.
>
> Signed-off-by: Furquan Shaikh <[email protected]>
> ---
> drivers/acpi/acpi_apd.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c
> index 4c348377a39d..806b8ce05624 100644
> --- a/drivers/acpi/acpi_apd.c
> +++ b/drivers/acpi/acpi_apd.c
> @@ -99,8 +99,8 @@ static int fch_misc_setup(struct apd_private_data *pdata)
> if (ret < 0)
> return -ENOENT;
>
> - acpi_dev_get_property(adev, "is-rv", ACPI_TYPE_INTEGER, &obj);
> - clk_data->is_rv = obj->integer.value;
> + if (!acpi_dev_get_property(adev, "is-rv", ACPI_TYPE_INTEGER, &obj))
> + clk_data->is_rv = obj->integer.value;
>
> list_for_each_entry(rentry, &resource_list, node) {
> clk_data->base = devm_ioremap(&adev->dev, rentry->res->start,
> --

Applied (with minor subject edits) as 5.9-rc material, thanks!