Skip to content

Commit

Permalink
tracing/filter: Remove synchronize_sched() from __alloc_preds()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Steven Rostedt authored and Steven Rostedt committed Feb 8, 2011
1 parent 75b8e98 commit 4defe68
Showing 1 changed file with 7 additions and 23 deletions.
30 changes: 7 additions & 23 deletions kernel/trace/trace_events_filter.c
Original file line number Diff line number Diff line change
Expand Up @@ -795,33 +795,17 @@ static int __alloc_preds(struct event_filter *filter, int n_preds)
struct filter_pred *pred;
int i;

if (filter->preds) {
if (filter->a_preds < n_preds) {
/*
* We need to reallocate.
* We should have already have zeroed out
* 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)
__free_preds(filter);

filter->preds =
kzalloc(sizeof(*filter->preds) * n_preds, GFP_KERNEL);

if (!filter->preds) {
filter->preds =
kzalloc(sizeof(*filter->preds) * n_preds, GFP_KERNEL);
filter->a_preds = n_preds;
}
if (!filter->preds)
return -ENOMEM;

if (WARN_ON(filter->a_preds < n_preds))
return -EINVAL;
filter->a_preds = n_preds;
filter->n_preds = 0;

for (i = 0; i < n_preds; i++) {
pred = &filter->preds[i];
Expand Down

0 comments on commit 4defe68

Please sign in to comment.