|
@@ -2949,13 +2949,6 @@ ftrace_enabled_open(struct inode *inode, struct file *file)
|
|
|
return iter ? 0 : -ENOMEM;
|
|
|
}
|
|
|
|
|
|
-static void ftrace_filter_reset(struct ftrace_hash *hash)
|
|
|
-{
|
|
|
- mutex_lock(&ftrace_lock);
|
|
|
- ftrace_hash_clear(hash);
|
|
|
- mutex_unlock(&ftrace_lock);
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* ftrace_regex_open - initialize function tracer filter files
|
|
|
* @ops: The ftrace_ops that hold the hash filters
|
|
@@ -3720,14 +3713,16 @@ ftrace_set_hash(struct ftrace_ops *ops, unsigned char *buf, int len,
|
|
|
else
|
|
|
orig_hash = &ops->notrace_hash;
|
|
|
|
|
|
- hash = alloc_and_copy_ftrace_hash(FTRACE_HASH_DEFAULT_BITS, *orig_hash);
|
|
|
+ if (reset)
|
|
|
+ hash = alloc_ftrace_hash(FTRACE_HASH_DEFAULT_BITS);
|
|
|
+ else
|
|
|
+ hash = alloc_and_copy_ftrace_hash(FTRACE_HASH_DEFAULT_BITS, *orig_hash);
|
|
|
+
|
|
|
if (!hash) {
|
|
|
ret = -ENOMEM;
|
|
|
goto out_regex_unlock;
|
|
|
}
|
|
|
|
|
|
- if (reset)
|
|
|
- ftrace_filter_reset(hash);
|
|
|
if (buf && !ftrace_match_records(hash, buf, len)) {
|
|
|
ret = -EINVAL;
|
|
|
goto out_regex_unlock;
|