2018-03-06 10:13:25

by Arvind Yadav

[permalink] [raw]
Subject: [PATCH] xen: xenbus: use put_device() instead of kfree()

Never directly free @dev after calling device_register(), even
if it returned an error! Always use put_device() to give up the
reference initialized.

Signed-off-by: Arvind Yadav <[email protected]>
---
drivers/xen/xenbus/xenbus_probe.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 74888ca..ec9eb4f 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -466,8 +466,11 @@ int xenbus_probe_node(struct xen_bus_type *bus,

/* Register with generic device framework. */
err = device_register(&xendev->dev);
- if (err)
+ if (err) {
+ put_device(&xendev->dev);
+ xendev = NULL;
goto fail;
+ }

return 0;
fail:
--
1.9.1



2018-03-06 11:02:22

by Juergen Gross

[permalink] [raw]
Subject: Re: [PATCH] xen: xenbus: use put_device() instead of kfree()

On 06/03/18 11:10, Arvind Yadav wrote:
> Never directly free @dev after calling device_register(), even
> if it returned an error! Always use put_device() to give up the
> reference initialized.
>
> Signed-off-by: Arvind Yadav <[email protected]>

Reviewed-by: Juergen Gross <[email protected]>


Juergen

2018-03-08 14:33:12

by Juergen Gross

[permalink] [raw]
Subject: Re: [PATCH] xen: xenbus: use put_device() instead of kfree()

On 06/03/18 11:10, Arvind Yadav wrote:
> Never directly free @dev after calling device_register(), even
> if it returned an error! Always use put_device() to give up the
> reference initialized.
>
> Signed-off-by: Arvind Yadav <[email protected]>

Committed to xen/tip.git for-linus-4.16a


Juergen