2022-06-02 01:17:15

by chengkaitao

[permalink] [raw]
Subject: [PATCH] virtio-mmio: fix missing put_device() when vm_cmdline_parent registration failed

From: chengkaitao <[email protected]>

The reference must be released when device_register(&vm_cmdline_parent)
failed. Add the corresponding 'put_device()' in the error handling path.

Signed-off-by: chengkaitao <[email protected]>
---
drivers/virtio/virtio_mmio.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
index 56128b9c46eb..1dd396d4bebb 100644
--- a/drivers/virtio/virtio_mmio.c
+++ b/drivers/virtio/virtio_mmio.c
@@ -688,6 +688,7 @@ static int vm_cmdline_set(const char *device,
if (!vm_cmdline_parent_registered) {
err = device_register(&vm_cmdline_parent);
if (err) {
+ put_device(&vm_cmdline_parent);
pr_err("Failed to register parent device!\n");
return err;
}
--
2.14.1



2022-06-08 09:23:48

by Jason Wang

[permalink] [raw]
Subject: Re: [PATCH] virtio-mmio: fix missing put_device() when vm_cmdline_parent registration failed

On Thu, Jun 2, 2022 at 9:12 AM chengkaitao <[email protected]> wrote:
>
> From: chengkaitao <[email protected]>
>
> The reference must be released when device_register(&vm_cmdline_parent)
> failed. Add the corresponding 'put_device()' in the error handling path.
>
> Signed-off-by: chengkaitao <[email protected]>

Acked-by: Jason Wang <[email protected]>

> ---
> drivers/virtio/virtio_mmio.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
> index 56128b9c46eb..1dd396d4bebb 100644
> --- a/drivers/virtio/virtio_mmio.c
> +++ b/drivers/virtio/virtio_mmio.c
> @@ -688,6 +688,7 @@ static int vm_cmdline_set(const char *device,
> if (!vm_cmdline_parent_registered) {
> err = device_register(&vm_cmdline_parent);
> if (err) {
> + put_device(&vm_cmdline_parent);
> pr_err("Failed to register parent device!\n");
> return err;
> }
> --
> 2.14.1
>