diff mbox series

memory: atmel-sdramc: check of_device_get_match_data() return value

Message ID 20210407154447.70540-1-krzysztof.kozlowski@canonical.com (mailing list archive)
State New, archived
Headers show
Series memory: atmel-sdramc: check of_device_get_match_data() return value | expand

Commit Message

Krzysztof Kozlowski April 7, 2021, 3:44 p.m. UTC
If the driver is probed, the of_device_get_match_data() should not
return NULL, however for sanity check its return value.

Addresses-Coverity: Dereference null return value
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
---
 drivers/memory/atmel-sdramc.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Alexandre Belloni April 7, 2021, 4:19 p.m. UTC | #1
Hi,

On 07/04/2021 17:44:47+0200, Krzysztof Kozlowski wrote:
> If the driver is probed, the of_device_get_match_data() should not
> return NULL, however for sanity check its return value.
> 

As you say, there is no way this will ever be the case, I don't see the
point of checking the return value, this adds 12 bytes for nothing...

Maybe coverity should be fixed as there are many drivers making the same
(true) assumption and I don't think this is worth the churn.

> Addresses-Coverity: Dereference null return value
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> ---
>  drivers/memory/atmel-sdramc.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/memory/atmel-sdramc.c b/drivers/memory/atmel-sdramc.c
> index 9c49d00c2a96..e09b2617f63d 100644
> --- a/drivers/memory/atmel-sdramc.c
> +++ b/drivers/memory/atmel-sdramc.c
> @@ -45,6 +45,8 @@ static int atmel_ramc_probe(struct platform_device *pdev)
>  	struct clk *clk;
>  
>  	caps = of_device_get_match_data(&pdev->dev);
> +	if (!caps)
> +		return -EINVAL;
>  
>  	if (caps->has_ddrck) {
>  		clk = devm_clk_get(&pdev->dev, "ddrck");
> -- 
> 2.25.1
>
Krzysztof Kozlowski April 7, 2021, 4:55 p.m. UTC | #2
On 07/04/2021 18:19, Alexandre Belloni wrote:
> Hi,
> 
> On 07/04/2021 17:44:47+0200, Krzysztof Kozlowski wrote:
>> If the driver is probed, the of_device_get_match_data() should not
>> return NULL, however for sanity check its return value.
>>
> 
> As you say, there is no way this will ever be the case, I don't see the
> point of checking the return value, this adds 12 bytes for nothing...
> 
> Maybe coverity should be fixed as there are many drivers making the same
> (true) assumption and I don't think this is worth the churn.

There are also several drivers having this check. To me an explicit NULL
check is better and more readable than non-obvious assumption that the
of_device_id table contains data for each entry and there is no other
bind method (like for OF+I2C drivers). Even if the case is not real,
this is nice, simple and explicit code.

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/drivers/memory/atmel-sdramc.c b/drivers/memory/atmel-sdramc.c
index 9c49d00c2a96..e09b2617f63d 100644
--- a/drivers/memory/atmel-sdramc.c
+++ b/drivers/memory/atmel-sdramc.c
@@ -45,6 +45,8 @@  static int atmel_ramc_probe(struct platform_device *pdev)
 	struct clk *clk;
 
 	caps = of_device_get_match_data(&pdev->dev);
+	if (!caps)
+		return -EINVAL;
 
 	if (caps->has_ddrck) {
 		clk = devm_clk_get(&pdev->dev, "ddrck");