Messages in this thread Patch in this message | | | Date | Sun, 16 Nov 2008 12:34:04 +0800 | From | Lai Jiangshan <> | Subject | [PATCH 5/7] net: use simple_free() |
| |
simple_free() free the memory by kfree(), or vfree() if it is vmalloc addr. simple_free() is simpler than current codes.
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> --- diff --git a/net/core/request_sock.c b/net/core/request_sock.c index 7552495..53fd8a7 100644 --- a/net/core/request_sock.c +++ b/net/core/request_sock.c @@ -16,6 +16,7 @@ #include <linux/slab.h> #include <linux/string.h> #include <linux/vmalloc.h> +#include <linux/mm.h> #include <net/request_sock.h> @@ -71,22 +72,11 @@ int reqsk_queue_alloc(struct request_sock_queue *queue, void __reqsk_queue_destroy(struct request_sock_queue *queue) { - struct listen_sock *lopt; - size_t lopt_size; - /* * this is an error recovery path only * no locking needed and the lopt is not NULL */ - - lopt = queue->listen_opt; - lopt_size = sizeof(struct listen_sock) + - lopt->nr_table_entries * sizeof(struct request_sock *); - - if (lopt_size > PAGE_SIZE) - vfree(lopt); - else - kfree(lopt); + simple_free(queue->listen_opt); } static inline struct listen_sock *reqsk_queue_yank_listen_sk( @@ -106,8 +96,6 @@ void reqsk_queue_destroy(struct request_sock_queue *queue) { /* make all the listen_opt local to us */ struct listen_sock *lopt = reqsk_queue_yank_listen_sk(queue); - size_t lopt_size = sizeof(struct listen_sock) + - lopt->nr_table_entries * sizeof(struct request_sock *); if (lopt->qlen != 0) { unsigned int i; @@ -124,9 +112,6 @@ void reqsk_queue_destroy(struct request_sock_queue *queue) } WARN_ON(lopt->qlen != 0); - if (lopt_size > PAGE_SIZE) - vfree(lopt); - else - kfree(lopt); + simple_free(lopt); }
| |