2023-07-18 08:49:06

by Ran Sun

[permalink] [raw]
Subject: [PATCH] floppy: add missing put_device()

The of_find_device_by_node() takes a reference to the underlying device
structure, we should release that reference.

Detected by coccinelle with the following ERROR:
./arch/sparc/include/asm/floppy_64.h:595:3-9: ERROR: missing put_device;
call of_find_device_by_node on line 589, but without a corresponding
object release within this function.

Signed-off-by: Ran Sun <[email protected]>
---
arch/sparc/include/asm/floppy_64.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/sparc/include/asm/floppy_64.h
b/arch/sparc/include/asm/floppy_64.h
index 070c8c1f5c8f..e74a4d4e6519 100644
--- a/arch/sparc/include/asm/floppy_64.h
+++ b/arch/sparc/include/asm/floppy_64.h
@@ -592,6 +592,7 @@ static unsigned long __init sun_floppy_init(void)

state_prop = of_get_property(op->dev.of_node, "status", NULL);
if (state_prop && !strncmp(state_prop, "disabled", 8))
+ put_device(&op->dev);
return 0;

FLOPPY_IRQ = op->archdata.irqs[0];


2023-07-18 09:09:43

by Kjetil Oftedal

[permalink] [raw]
Subject: Re: [PATCH] floppy: add missing put_device()

On Tue, 18 Jul 2023 at 10:15, <[email protected]> wrote:
>
> The of_find_device_by_node() takes a reference to the underlying device
> structure, we should release that reference.
>
> Detected by coccinelle with the following ERROR:
> ./arch/sparc/include/asm/floppy_64.h:595:3-9: ERROR: missing put_device;
> call of_find_device_by_node on line 589, but without a corresponding
> object release within this function.
>
> Signed-off-by: Ran Sun <[email protected]>
> ---
> arch/sparc/include/asm/floppy_64.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/sparc/include/asm/floppy_64.h
> b/arch/sparc/include/asm/floppy_64.h
> index 070c8c1f5c8f..e74a4d4e6519 100644
> --- a/arch/sparc/include/asm/floppy_64.h
> +++ b/arch/sparc/include/asm/floppy_64.h
> @@ -592,6 +592,7 @@ static unsigned long __init sun_floppy_init(void)
>
> state_prop = of_get_property(op->dev.of_node, "status", NULL);
> if (state_prop && !strncmp(state_prop, "disabled", 8))
> + put_device(&op->dev);

From the same domain as "Liubin" earlier, introducing the same kind of error
(Not adding curly braces)


> return 0;
>
> FLOPPY_IRQ = op->archdata.irqs[0];