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];
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];