2019-03-22 21:56:17

by Aditya Pakki

[permalink] [raw]
Subject: [PATCH v2] firmware: arm_scmi: Fix to replace of_match_device

of_match_device can return NULL if no matching device is found.
This patch replaces the function with of_device_get_match_data.
and returns -EINVAL in such a scenario.

Signed-off-by: Aditya Pakki <[email protected]>

---
v1: Replace of_match_device with of_device_get_match_data
---
drivers/firmware/arm_scmi/driver.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c
index 8f952f2f1a29..a44852a1d5bc 100644
--- a/drivers/firmware/arm_scmi/driver.c
+++ b/drivers/firmware/arm_scmi/driver.c
@@ -798,7 +798,9 @@ static int scmi_probe(struct platform_device *pdev)
return -EINVAL;
}

- desc = of_match_device(scmi_of_match, dev)->data;
+ desc = of_device_get_match_data(dev);
+ if (!desc)
+ return -EINVAL;

info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL);
if (!info)
--
2.17.1



2019-03-25 11:10:53

by Steven Price

[permalink] [raw]
Subject: Re: [PATCH v2] firmware: arm_scmi: Fix to replace of_match_device

On 22/03/2019 21:55, Aditya Pakki wrote:
> of_match_device can return NULL if no matching device is found.
> This patch replaces the function with of_device_get_match_data.
> and returns -EINVAL in such a scenario.
>
> Signed-off-by: Aditya Pakki <[email protected]>

Reviewed-by: Steven Price <[email protected]>

>
> ---
> v1: Replace of_match_device with of_device_get_match_data
> ---
> drivers/firmware/arm_scmi/driver.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c
> index 8f952f2f1a29..a44852a1d5bc 100644
> --- a/drivers/firmware/arm_scmi/driver.c
> +++ b/drivers/firmware/arm_scmi/driver.c
> @@ -798,7 +798,9 @@ static int scmi_probe(struct platform_device *pdev)
> return -EINVAL;
> }
>
> - desc = of_match_device(scmi_of_match, dev)->data;
> + desc = of_device_get_match_data(dev);
> + if (!desc)
> + return -EINVAL;
>
> info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL);
> if (!info)
>


2019-04-10 18:43:53

by Sudeep Holla

[permalink] [raw]
Subject: Re: [PATCH v2] firmware: arm_scmi: Fix to replace of_match_device

On Fri, Mar 22, 2019 at 04:55:03PM -0500, Aditya Pakki wrote:
> of_match_device can return NULL if no matching device is found.
> This patch replaces the function with of_device_get_match_data.
> and returns -EINVAL in such a scenario.
>
> Signed-off-by: Aditya Pakki <[email protected]>
>
> ---
> v1: Replace of_match_device with of_device_get_match_data
> ---
> drivers/firmware/arm_scmi/driver.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c
> index 8f952f2f1a29..a44852a1d5bc 100644
> --- a/drivers/firmware/arm_scmi/driver.c
> +++ b/drivers/firmware/arm_scmi/driver.c
> @@ -798,7 +798,9 @@ static int scmi_probe(struct platform_device *pdev)
> return -EINVAL;
> }
>
> - desc = of_match_device(scmi_of_match, dev)->data;

probe won't be called be there's no match. And we mandate data in the
driver, so this should never happen.

> + desc = of_device_get_match_data(dev);

Having said that, I am happy to use the above function.

> + if (!desc)
> + return -EINVAL;
>

NULL check seems totally unnecessary, but it's in probe so I am fine.
Applied with updates to subject and commit message.

--
Regards,
Sudeep