2015-05-15 18:35:41

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 01/14] ipc/util.c: Use kvfree() in ipc_rcu_free()

Use kvfree() instead of open-coding it.

Signed-off-by: Pekka Enberg <[email protected]>
---
ipc/util.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/ipc/util.c b/ipc/util.c
index ff3323e..537a41c 100644
--- a/ipc/util.c
+++ b/ipc/util.c
@@ -467,10 +467,7 @@ void ipc_rcu_free(struct rcu_head *head)
{
struct ipc_rcu *p = container_of(head, struct ipc_rcu, rcu);

- if (is_vmalloc_addr(p))
- vfree(p);
- else
- kfree(p);
+ kvfree(p);
}

/**
--
2.1.0


2015-05-15 18:35:36

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 02/14] kernel/relay.c: Use kvfree() in relay_free_page_array()

Use kvfree() instead of open-coding it.

Signed-off-by: Pekka Enberg <[email protected]>
---
kernel/relay.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/kernel/relay.c b/kernel/relay.c
index e9dbaeb..0b4570c 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -81,10 +81,7 @@ static struct page **relay_alloc_page_array(unsigned int n_pages)
*/
static void relay_free_page_array(struct page **array)
{
- if (is_vmalloc_addr(array))
- vfree(array);
- else
- kfree(array);
+ kvfree(array);
}

/**
--
2.1.0

2015-05-15 18:35:44

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 03/14] cxgb3: Use kvfree() in cxgb_free_mem()

Use kvfree() instead of open-coding it.

Cc: Santosh Raspatur <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c
index b0cbb2b..76684dc 100644
--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c
+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c
@@ -1169,10 +1169,7 @@ void *cxgb_alloc_mem(unsigned long size)
*/
void cxgb_free_mem(void *addr)
{
- if (is_vmalloc_addr(addr))
- vfree(addr);
- else
- kfree(addr);
+ kvfree(addr);
}

/*
--
2.1.0

2015-05-15 18:39:35

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 04/14] cxgb4: Use kvfree() in t4_free_mem()

Use kvfree() instead of open-coding it.

Cc: Hariprasad S <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 803d91b..9143917 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -1121,10 +1121,7 @@ void *t4_alloc_mem(size_t size)
*/
void t4_free_mem(void *addr)
{
- if (is_vmalloc_addr(addr))
- vfree(addr);
- else
- kfree(addr);
+ kvfree(addr);
}

/* Send a Work Request to write the filter at a specified index. We construct
--
2.1.0

2015-05-15 18:35:48

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 05/14] ceph: Use kvfree() in ceph_put_page_vector()

Use kvfree instead of open-coding it.

Cc: "Yan, Zheng" <[email protected]>
Cc: Sage Weil <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
net/ceph/pagevec.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/net/ceph/pagevec.c b/net/ceph/pagevec.c
index 096d914..d4f5f22 100644
--- a/net/ceph/pagevec.c
+++ b/net/ceph/pagevec.c
@@ -51,10 +51,7 @@ void ceph_put_page_vector(struct page **pages, int num_pages, bool dirty)
set_page_dirty_lock(pages[i]);
put_page(pages[i]);
}
- if (is_vmalloc_addr(pages))
- vfree(pages);
- else
- kfree(pages);
+ kvfree(pages);
}
EXPORT_SYMBOL(ceph_put_page_vector);

--
2.1.0

2015-05-15 18:35:53

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 06/14] drm: Use kvfree() in drm_free_large()

Use kvfree() instead of open-coding it.

Cc: David Airlie <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
include/drm/drm_mem_util.h | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/include/drm/drm_mem_util.h b/include/drm/drm_mem_util.h
index 19a2404..e42495a 100644
--- a/include/drm/drm_mem_util.h
+++ b/include/drm/drm_mem_util.h
@@ -56,10 +56,7 @@ static __inline__ void *drm_malloc_ab(size_t nmemb, size_t size)

static __inline void drm_free_large(void *ptr)
{
- if (!is_vmalloc_addr(ptr))
- return kfree(ptr);
-
- vfree(ptr);
+ kvfree(ptr);
}

#endif
--
2.1.0

2015-05-15 18:39:12

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 07/14] drm/nouveau/gem: Use kvfree() in u_free()

Use kvfree() instead of open-coding it.

Cc: David Airlie <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
drivers/gpu/drm/nouveau/nouveau_gem.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
index 0e690bf..af1ee51 100644
--- a/drivers/gpu/drm/nouveau/nouveau_gem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
@@ -555,10 +555,7 @@ nouveau_gem_pushbuf_validate(struct nouveau_channel *chan,
static inline void
u_free(void *addr)
{
- if (!is_vmalloc_addr(addr))
- kfree(addr);
- else
- vfree(addr);
+ kvfree(addr);
}

static inline void *
--
2.1.0

2015-05-15 18:38:55

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 08/14] drivers/input/evdev.c: Use kvfree() in evdev_release()

Use kvfree() instead of open-coding it.

Cc: Dmitry Torokhov <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
drivers/input/evdev.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index a18f41b..9d35499 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -422,10 +422,7 @@ static int evdev_release(struct inode *inode, struct file *file)

evdev_detach_client(evdev, client);

- if (is_vmalloc_addr(client))
- vfree(client);
- else
- kfree(client);
+ kvfree(client);

evdev_close_device(evdev);

--
2.1.0

2015-05-15 18:38:38

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 09/14] IB/ehca: Use kvfree() in ipz_queue_{cd}tor()

Use kvfree() instead of open-coding it.

Cc: Hoang-Nam Nguyen <[email protected]>
Cc: Christoph Raisch <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
drivers/infiniband/hw/ehca/ipz_pt_fn.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/infiniband/hw/ehca/ipz_pt_fn.c b/drivers/infiniband/hw/ehca/ipz_pt_fn.c
index 8d59451..7ffc748 100644
--- a/drivers/infiniband/hw/ehca/ipz_pt_fn.c
+++ b/drivers/infiniband/hw/ehca/ipz_pt_fn.c
@@ -245,10 +245,7 @@ int ipz_queue_ctor(struct ehca_pd *pd, struct ipz_queue *queue,
ipz_queue_ctor_exit0:
ehca_gen_err("Couldn't alloc pages queue=%p "
"nr_of_pages=%x", queue, nr_of_pages);
- if (is_vmalloc_addr(queue->queue_pages))
- vfree(queue->queue_pages);
- else
- kfree(queue->queue_pages);
+ kvfree(queue->queue_pages);

return 0;
}
@@ -270,10 +267,7 @@ int ipz_queue_dtor(struct ehca_pd *pd, struct ipz_queue *queue)
free_page((unsigned long)queue->queue_pages[i]);
}

- if (is_vmalloc_addr(queue->queue_pages))
- vfree(queue->queue_pages);
- else
- kfree(queue->queue_pages);
+ kvfree(queue->queue_pages);

return 1;
}
--
2.1.0

2015-05-15 18:38:20

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 10/14] target: Use kvfree() in session alloc and free

Use kvfree() instead of open-coding it.

Cc: "Nicholas A. Bellinger" <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
drivers/target/target_core_transport.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 3fe5cb2..9c058c0 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -280,10 +280,7 @@ int transport_alloc_session_tags(struct se_session *se_sess,
if (rc < 0) {
pr_err("Unable to init se_sess->sess_tag_pool,"
" tag_num: %u\n", tag_num);
- if (is_vmalloc_addr(se_sess->sess_cmd_map))
- vfree(se_sess->sess_cmd_map);
- else
- kfree(se_sess->sess_cmd_map);
+ kvfree(se_sess->sess_cmd_map);
se_sess->sess_cmd_map = NULL;
return -ENOMEM;
}
@@ -490,10 +487,7 @@ void transport_free_session(struct se_session *se_sess)
{
if (se_sess->sess_cmd_map) {
percpu_ida_destroy(&se_sess->sess_tag_pool);
- if (is_vmalloc_addr(se_sess->sess_cmd_map))
- vfree(se_sess->sess_cmd_map);
- else
- kfree(se_sess->sess_cmd_map);
+ kvfree(se_sess->sess_cmd_map);
}
kmem_cache_free(se_sess_cache, se_sess);
}
--
2.1.0

2015-05-15 18:35:57

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 11/14] libcxgbi: Use kvfree() in cxgbi_free_big_mem()

Use kvfree() instead of open-coding it.

Cc: "James E.J. Bottomley" <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
drivers/scsi/cxgbi/libcxgbi.h | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/scsi/cxgbi/libcxgbi.h b/drivers/scsi/cxgbi/libcxgbi.h
index aba1af7..c2eb7ea 100644
--- a/drivers/scsi/cxgbi/libcxgbi.h
+++ b/drivers/scsi/cxgbi/libcxgbi.h
@@ -685,10 +685,7 @@ static inline void *cxgbi_alloc_big_mem(unsigned int size,

static inline void cxgbi_free_big_mem(void *addr)
{
- if (is_vmalloc_addr(addr))
- vfree(addr);
- else
- kfree(addr);
+ kvfree(addr);
}

static inline void cxgbi_set_iscsi_ipv4(struct cxgbi_hba *chba, __be32 ipaddr)
--
2.1.0

2015-05-15 18:37:35

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 12/14] dm: Use kvfree() in dm_kvfree()

Use kvfree() instead of open-coding it.

Cc: Alasdair Kergon <[email protected]>
Cc: Mike Snitzer <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
drivers/md/dm-stats.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c
index f478a4c..492fe6a 100644
--- a/drivers/md/dm-stats.c
+++ b/drivers/md/dm-stats.c
@@ -160,10 +160,7 @@ static void dm_kvfree(void *ptr, size_t alloc_size)

free_shared_memory(alloc_size);

- if (is_vmalloc_addr(ptr))
- vfree(ptr);
- else
- kfree(ptr);
+ kvfree(ptr);
}

static void dm_stat_free(struct rcu_head *head)
--
2.1.0

2015-05-15 18:36:28

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 13/14] bcache: Use kvfree() in various places

Use kvfree() instead of open-coding it.

Cc: Kent Overstreet <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
drivers/md/bcache/super.c | 10 ++--------
drivers/md/bcache/util.h | 10 ++--------
2 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index 4dd2bb7..94980bf 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -760,14 +760,8 @@ static void bcache_device_free(struct bcache_device *d)
bio_split_pool_free(&d->bio_split_hook);
if (d->bio_split)
bioset_free(d->bio_split);
- if (is_vmalloc_addr(d->full_dirty_stripes))
- vfree(d->full_dirty_stripes);
- else
- kfree(d->full_dirty_stripes);
- if (is_vmalloc_addr(d->stripe_sectors_dirty))
- vfree(d->stripe_sectors_dirty);
- else
- kfree(d->stripe_sectors_dirty);
+ kvfree(d->full_dirty_stripes);
+ kvfree(d->stripe_sectors_dirty);

closure_debug_destroy(&d->cl);
}
diff --git a/drivers/md/bcache/util.h b/drivers/md/bcache/util.h
index 98df757..1d04c48 100644
--- a/drivers/md/bcache/util.h
+++ b/drivers/md/bcache/util.h
@@ -52,10 +52,7 @@ struct closure;

#define free_heap(heap) \
do { \
- if (is_vmalloc_addr((heap)->data)) \
- vfree((heap)->data); \
- else \
- kfree((heap)->data); \
+ kvfree((heap)->data); \
(heap)->data = NULL; \
} while (0)

@@ -163,10 +160,7 @@ do { \

#define free_fifo(fifo) \
do { \
- if (is_vmalloc_addr((fifo)->data)) \
- vfree((fifo)->data); \
- else \
- kfree((fifo)->data); \
+ kvfree((fifo)->data); \
(fifo)->data = NULL; \
} while (0)

--
2.1.0

2015-05-15 18:36:27

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH 14/14] NTFS: Use kvfree() in ntfs_free()

Use kvfree() instead of open-coding it.

Cc: Anton Altaparmakov <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
fs/ntfs/malloc.h | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/fs/ntfs/malloc.h b/fs/ntfs/malloc.h
index a44b14c..ab172e5 100644
--- a/fs/ntfs/malloc.h
+++ b/fs/ntfs/malloc.h
@@ -85,12 +85,7 @@ static inline void *ntfs_malloc_nofs_nofail(unsigned long size)

static inline void ntfs_free(void *addr)
{
- if (!is_vmalloc_addr(addr)) {
- kfree(addr);
- /* free_page((unsigned long)addr); */
- return;
- }
- vfree(addr);
+ kvfree(addr);
}

#endif /* _LINUX_NTFS_MALLOC_H */
--
2.1.0

2015-05-15 19:19:39

by Mike Snitzer

[permalink] [raw]
Subject: Re: [PATCH 12/14] dm: Use kvfree() in dm_kvfree()

On Fri, May 15 2015 at 2:35pm -0400,
Pekka Enberg <[email protected]> wrote:

> Use kvfree() instead of open-coding it.
>
> Cc: Alasdair Kergon <[email protected]>
> Cc: Mike Snitzer <[email protected]>
> Signed-off-by: Pekka Enberg <[email protected]>

Thanks Pekka. Picked this up for 4.2.

2015-05-15 20:46:15

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH 08/14] drivers/input/evdev.c: Use kvfree() in evdev_release()

On Fri, May 15, 2015 at 09:35:17PM +0300, Pekka Enberg wrote:
> Use kvfree() instead of open-coding it.
>
> Cc: Dmitry Torokhov <[email protected]>
> Signed-off-by: Pekka Enberg <[email protected]>

Applied, thank you.

> ---
> drivers/input/evdev.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
> index a18f41b..9d35499 100644
> --- a/drivers/input/evdev.c
> +++ b/drivers/input/evdev.c
> @@ -422,10 +422,7 @@ static int evdev_release(struct inode *inode, struct file *file)
>
> evdev_detach_client(evdev, client);
>
> - if (is_vmalloc_addr(client))
> - vfree(client);
> - else
> - kfree(client);
> + kvfree(client);
>
> evdev_close_device(evdev);
>
> --
> 2.1.0
>

--
Dmitry

2015-05-18 05:46:10

by Yan, Zheng

[permalink] [raw]
Subject: Re: [PATCH 05/14] ceph: Use kvfree() in ceph_put_page_vector()


> On May 16, 2015, at 02:35, Pekka Enberg <[email protected]> wrote:
>
> Use kvfree instead of open-coding it.
>
> Cc: "Yan, Zheng" <[email protected]>
> Cc: Sage Weil <[email protected]>
> Signed-off-by: Pekka Enberg <[email protected]>
> ---
> net/ceph/pagevec.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/net/ceph/pagevec.c b/net/ceph/pagevec.c
> index 096d914..d4f5f22 100644
> --- a/net/ceph/pagevec.c
> +++ b/net/ceph/pagevec.c
> @@ -51,10 +51,7 @@ void ceph_put_page_vector(struct page **pages, int num_pages, bool dirty)
> set_page_dirty_lock(pages[i]);
> put_page(pages[i]);
> }
> - if (is_vmalloc_addr(pages))
> - vfree(pages);
> - else
> - kfree(pages);
> + kvfree(pages);
> }
> EXPORT_SYMBOL(ceph_put_page_vector);

Thanks. but Ilya Dryomov has already submitted a similar patch.

>
> --
> 2.1.0
>

2015-05-18 06:59:06

by Yan, Zheng

[permalink] [raw]
Subject: Re: [PATCH 05/14] ceph: Use kvfree() in ceph_put_page_vector()


> On May 16, 2015, at 02:35, Pekka Enberg <[email protected]> wrote:
>
> Use kvfree instead of open-coding it.
>
> Cc: "Yan, Zheng" <[email protected]>
> Cc: Sage Weil <[email protected]>
> Signed-off-by: Pekka Enberg <[email protected]>
> ---
> net/ceph/pagevec.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/net/ceph/pagevec.c b/net/ceph/pagevec.c
> index 096d914..d4f5f22 100644
> --- a/net/ceph/pagevec.c
> +++ b/net/ceph/pagevec.c
> @@ -51,10 +51,7 @@ void ceph_put_page_vector(struct page **pages, int num_pages, bool dirty)
> set_page_dirty_lock(pages[i]);
> put_page(pages[i]);
> }
> - if (is_vmalloc_addr(pages))
> - vfree(pages);
> - else
> - kfree(pages);
> + kvfree(pages);
> }
> EXPORT_SYMBOL(ceph_put_page_vector);

Thanks. but Ilya Dryomov has already submitted a similar patch.

>
> --
> 2.1.0
>

2015-05-18 07:05:48

by Yan, Zheng

[permalink] [raw]
Subject: Re: [PATCH 05/14] ceph: Use kvfree() in ceph_put_page_vector()


> On May 16, 2015, at 02:35, Pekka Enberg <[email protected]> wrote:
>
> Use kvfree instead of open-coding it.
>
> Cc: "Yan, Zheng" <[email protected]>
> Cc: Sage Weil <[email protected]>
> Signed-off-by: Pekka Enberg <[email protected]>
> ---
> net/ceph/pagevec.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/net/ceph/pagevec.c b/net/ceph/pagevec.c
> index 096d914..d4f5f22 100644
> --- a/net/ceph/pagevec.c
> +++ b/net/ceph/pagevec.c
> @@ -51,10 +51,7 @@ void ceph_put_page_vector(struct page **pages, int num_pages, bool dirty)
> set_page_dirty_lock(pages[i]);
> put_page(pages[i]);
> }
> - if (is_vmalloc_addr(pages))
> - vfree(pages);
> - else
> - kfree(pages);
> + kvfree(pages);
> }
> EXPORT_SYMBOL(ceph_put_page_vector);

Thanks. but Ilya Dryomov has already submitted a similar patch.

>
> --
> 2.1.0
>