]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
ftrace: Separate out the copying of a ftrace_hash from __ftrace_hash_move()
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Fri, 8 Nov 2019 17:25:46 +0000 (12:25 -0500)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Fri, 8 Nov 2019 17:25:46 +0000 (12:25 -0500)
Most of the functionality of __ftrace_hash_move() can be reused, but not all
of it. That is, __ftrace_hash_move() is used to simply make a new hash from
an existing one, using the same size as the original. Creating a dup_hash(),
where we can specify a new size will be useful when we want to create a hash
with a default size, or simply copy the old one.

Signed-off-by: Steven Rostedt (VMWare) <rostedt@goodmis.org>
kernel/trace/ftrace.c

index 89e9128652ef48706ceb4b9fcba5fd612fb7861a..76e5de8c78220baac622a7d213779bb57fd86515 100644 (file)
@@ -1372,23 +1372,15 @@ ftrace_hash_rec_enable_modify(struct ftrace_ops *ops, int filter_hash);
 static int ftrace_hash_ipmodify_update(struct ftrace_ops *ops,
                                       struct ftrace_hash *new_hash);
 
-static struct ftrace_hash *
-__ftrace_hash_move(struct ftrace_hash *src)
+static struct ftrace_hash *dup_hash(struct ftrace_hash *src, int size)
 {
        struct ftrace_func_entry *entry;
-       struct hlist_node *tn;
-       struct hlist_head *hhd;
        struct ftrace_hash *new_hash;
-       int size = src->count;
+       struct hlist_head *hhd;
+       struct hlist_node *tn;
        int bits = 0;
        int i;
 
-       /*
-        * If the new source is empty, just return the empty_hash.
-        */
-       if (ftrace_hash_empty(src))
-               return EMPTY_HASH;
-
        /*
         * Make the hash size about 1/2 the # found
         */
@@ -1413,10 +1405,23 @@ __ftrace_hash_move(struct ftrace_hash *src)
                        __add_hash_entry(new_hash, entry);
                }
        }
-
        return new_hash;
 }
 
+static struct ftrace_hash *
+__ftrace_hash_move(struct ftrace_hash *src)
+{
+       int size = src->count;
+
+       /*
+        * If the new source is empty, just return the empty_hash.
+        */
+       if (ftrace_hash_empty(src))
+               return EMPTY_HASH;
+
+       return dup_hash(src, size);
+}
+
 static int
 ftrace_hash_move(struct ftrace_ops *ops, int enable,
                 struct ftrace_hash **dst, struct ftrace_hash *src)