diff options
| -rw-r--r-- | kernel/trace/trace_events_filter.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c index 816d3d074979..d6e7926dcd26 100644 --- a/kernel/trace/trace_events_filter.c +++ b/kernel/trace/trace_events_filter.c | |||
| @@ -1686,7 +1686,7 @@ static int replace_system_preds(struct event_subsystem *system, | |||
| 1686 | * replace the filter for the call. | 1686 | * replace the filter for the call. |
| 1687 | */ | 1687 | */ |
| 1688 | filter = call->filter; | 1688 | filter = call->filter; |
| 1689 | call->filter = filter_item->filter; | 1689 | rcu_assign_pointer(call->filter, filter_item->filter); |
| 1690 | filter_item->filter = filter; | 1690 | filter_item->filter = filter; |
| 1691 | 1691 | ||
| 1692 | fail = false; | 1692 | fail = false; |
| @@ -1741,7 +1741,7 @@ int apply_event_filter(struct ftrace_event_call *call, char *filter_string) | |||
| 1741 | filter = call->filter; | 1741 | filter = call->filter; |
| 1742 | if (!filter) | 1742 | if (!filter) |
| 1743 | goto out_unlock; | 1743 | goto out_unlock; |
| 1744 | call->filter = NULL; | 1744 | RCU_INIT_POINTER(call->filter, NULL); |
| 1745 | /* Make sure the filter is not being used */ | 1745 | /* Make sure the filter is not being used */ |
| 1746 | synchronize_sched(); | 1746 | synchronize_sched(); |
| 1747 | __free_filter(filter); | 1747 | __free_filter(filter); |
| @@ -1782,7 +1782,7 @@ out: | |||
| 1782 | * string | 1782 | * string |
| 1783 | */ | 1783 | */ |
| 1784 | tmp = call->filter; | 1784 | tmp = call->filter; |
| 1785 | call->filter = filter; | 1785 | rcu_assign_pointer(call->filter, filter); |
| 1786 | if (tmp) { | 1786 | if (tmp) { |
| 1787 | /* Make sure the call is done with the filter */ | 1787 | /* Make sure the call is done with the filter */ |
| 1788 | synchronize_sched(); | 1788 | synchronize_sched(); |
