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: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
75b8e98263
commit
4defe682d8
1 changed files with 7 additions and 23 deletions
|
@ -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];
|
||||||
|
|
Loading…
Reference in a new issue