2015-08-20 10:01:47

by yalin wang

[permalink] [raw]
Subject: [PATCH] nvdimm: change to use generic kvfree()

Signed-off-by: yalin wang <[email protected]>
---
drivers/nvdimm/dimm_devs.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/nvdimm/dimm_devs.c b/drivers/nvdimm/dimm_devs.c
index c05eb80..651b8d1 100644
--- a/drivers/nvdimm/dimm_devs.c
+++ b/drivers/nvdimm/dimm_devs.c
@@ -241,10 +241,7 @@ void nvdimm_drvdata_release(struct kref *kref)
nvdimm_free_dpa(ndd, res);
nvdimm_bus_unlock(dev);

- if (ndd->data && is_vmalloc_addr(ndd->data))
- vfree(ndd->data);
- else
- kfree(ndd->data);
+ kvfree(ndd->data);
kfree(ndd);
put_device(dev);
}
--
1.9.1


2015-08-20 17:49:57

by Ross Zwisler

[permalink] [raw]
Subject: Re: [PATCH] nvdimm: change to use generic kvfree()

On Thu, 2015-08-20 at 18:00 +0800, yalin wang wrote:
> Signed-off-by: yalin wang <[email protected]>
> ---
> drivers/nvdimm/dimm_devs.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/nvdimm/dimm_devs.c b/drivers/nvdimm/dimm_devs.c
> index c05eb80..651b8d1 100644
> --- a/drivers/nvdimm/dimm_devs.c
> +++ b/drivers/nvdimm/dimm_devs.c
> @@ -241,10 +241,7 @@ void nvdimm_drvdata_release(struct kref *kref)
> nvdimm_free_dpa(ndd, res);
> nvdimm_bus_unlock(dev);
>
> - if (ndd->data && is_vmalloc_addr(ndd->data))
> - vfree(ndd->data);
> - else
> - kfree(ndd->data);
> + kvfree(ndd->data);
> kfree(ndd);
> put_device(dev);
> }

This seems fine. You're skipping the existing check to see if ndd->data is
NULL, but I think that is handled implicitly by is_vmalloc_addr() since NULL
won't be in the vmalloc address range.

Reviewed-by: Ross Zwisler <[email protected]>