提交 4defe682 编写于 作者: S Steven Rostedt 提交者: Steven Rostedt

tracing/filter: Remove synchronize_sched() from __alloc_preds()

Because the filters are processed first and then activated
(added to the call), we no longer need to worry about the preds
of the filter in __alloc_preds() being used. As the filter that
is allocating preds is not activated yet.
Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
上级 75b8e982
...@@ -795,33 +795,17 @@ static int __alloc_preds(struct event_filter *filter, int n_preds) ...@@ -795,33 +795,17 @@ static int __alloc_preds(struct event_filter *filter, int n_preds)
struct filter_pred *pred; struct filter_pred *pred;
int i; int i;
if (filter->preds) { if (filter->preds)
if (filter->a_preds < n_preds) { __free_preds(filter);
/*
* We need to reallocate. filter->preds =
* We should have already have zeroed out kzalloc(sizeof(*filter->preds) * n_preds, GFP_KERNEL);
* the pred count and called synchronized_sched()
* to make sure no one is using the preds.
*/
if (WARN_ON_ONCE(filter->n_preds)) {
/* We need to reset it now */
filter->n_preds = 0;
synchronize_sched();
}
__free_preds(filter);
}
}
if (!filter->preds) {
filter->preds =
kzalloc(sizeof(*filter->preds) * n_preds, GFP_KERNEL);
filter->a_preds = n_preds;
}
if (!filter->preds) if (!filter->preds)
return -ENOMEM; return -ENOMEM;
if (WARN_ON(filter->a_preds < n_preds)) filter->a_preds = n_preds;
return -EINVAL; filter->n_preds = 0;
for (i = 0; i < n_preds; i++) { for (i = 0; i < n_preds; i++) {
pred = &filter->preds[i]; pred = &filter->preds[i];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册