diff mbox series

[v3,1/2] device-dax: fix memory and resource leak if hotplug fails

Message ID 20190425175440.9354-2-pasha.tatashin@soleen.com (mailing list archive)
State Superseded
Headers show
Series "Hotremove" persistent memory | expand

Commit Message

Pasha Tatashin April 25, 2019, 5:54 p.m. UTC
When add_memory() function fails, the resource and the memory should be
freed.

Fixes: c221c0b0308f ("device-dax: "Hotplug" persistent memory for use like normal RAM")

Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
---
 drivers/dax/kmem.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Dave Hansen April 25, 2019, 6:32 p.m. UTC | #1
On 4/25/19 10:54 AM, Pavel Tatashin wrote:
>  	rc = add_memory(numa_node, new_res->start, resource_size(new_res));
> -	if (rc)
> +	if (rc) {
> +		release_resource(new_res);
> +		kfree(new_res);
>  		return rc;
> +	}

Looks good to me:

Reviewed-by: Dave Hansen <dave.hansen@intel.com>
Pasha Tatashin April 25, 2019, 6:51 p.m. UTC | #2
On Thu, Apr 25, 2019 at 2:32 PM Dave Hansen <dave.hansen@intel.com> wrote:
>
> On 4/25/19 10:54 AM, Pavel Tatashin wrote:
> >       rc = add_memory(numa_node, new_res->start, resource_size(new_res));
> > -     if (rc)
> > +     if (rc) {
> > +             release_resource(new_res);
> > +             kfree(new_res);
> >               return rc;
> > +     }
>
> Looks good to me:
>
> Reviewed-by: Dave Hansen <dave.hansen@intel.com>

Thank you Dave.

Pasha
diff mbox series

Patch

diff --git a/drivers/dax/kmem.c b/drivers/dax/kmem.c
index a02318c6d28a..4c0131857133 100644
--- a/drivers/dax/kmem.c
+++ b/drivers/dax/kmem.c
@@ -66,8 +66,11 @@  int dev_dax_kmem_probe(struct device *dev)
 	new_res->name = dev_name(dev);
 
 	rc = add_memory(numa_node, new_res->start, resource_size(new_res));
-	if (rc)
+	if (rc) {
+		release_resource(new_res);
+		kfree(new_res);
 		return rc;
+	}
 
 	return 0;
 }