net: use simple_free()
Subsystems (2)
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 <[email protected]>
---
net/core/request_sock.c +3 -18
@@ -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); }
Quoted 2 lines · Lai Jiangshan
simple_free()free the memory bykfree(), orvfree()if it is vmalloc addr.simple_free()is simpler than current codes.
Where is corresponding alloc chunk?
Quoted 45 lines
net/core/request_sock.c +2
-18@@ -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); }