diff options
Diffstat (limited to 'kernel/trace/trace_boot.c')
| -rw-r--r-- | kernel/trace/trace_boot.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/kernel/trace/trace_boot.c b/kernel/trace/trace_boot.c index a29ef23ffb47..19bfc75d467e 100644 --- a/kernel/trace/trace_boot.c +++ b/kernel/trace/trace_boot.c | |||
| @@ -41,14 +41,12 @@ void disable_boot_trace(void) | |||
| 41 | 41 | ||
| 42 | static int boot_trace_init(struct trace_array *tr) | 42 | static int boot_trace_init(struct trace_array *tr) |
| 43 | { | 43 | { |
| 44 | int cpu; | ||
| 45 | boot_trace = tr; | 44 | boot_trace = tr; |
| 46 | 45 | ||
| 47 | if (!tr) | 46 | if (!tr) |
| 48 | return 0; | 47 | return 0; |
| 49 | 48 | ||
| 50 | for_each_cpu(cpu, cpu_possible_mask) | 49 | tracing_reset_online_cpus(tr); |
| 51 | tracing_reset(tr, cpu); | ||
| 52 | 50 | ||
| 53 | tracing_sched_switch_assign_trace(tr); | 51 | tracing_sched_switch_assign_trace(tr); |
| 54 | return 0; | 52 | return 0; |
| @@ -132,6 +130,7 @@ struct tracer boot_tracer __read_mostly = | |||
| 132 | void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) | 130 | void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) |
| 133 | { | 131 | { |
| 134 | struct ring_buffer_event *event; | 132 | struct ring_buffer_event *event; |
| 133 | struct ring_buffer *buffer; | ||
| 135 | struct trace_boot_call *entry; | 134 | struct trace_boot_call *entry; |
| 136 | struct trace_array *tr = boot_trace; | 135 | struct trace_array *tr = boot_trace; |
| 137 | 136 | ||
| @@ -144,13 +143,14 @@ void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) | |||
| 144 | sprint_symbol(bt->func, (unsigned long)fn); | 143 | sprint_symbol(bt->func, (unsigned long)fn); |
| 145 | preempt_disable(); | 144 | preempt_disable(); |
| 146 | 145 | ||
| 147 | event = trace_buffer_lock_reserve(tr, TRACE_BOOT_CALL, | 146 | buffer = tr->buffer; |
| 147 | event = trace_buffer_lock_reserve(buffer, TRACE_BOOT_CALL, | ||
| 148 | sizeof(*entry), 0, 0); | 148 | sizeof(*entry), 0, 0); |
| 149 | if (!event) | 149 | if (!event) |
| 150 | goto out; | 150 | goto out; |
| 151 | entry = ring_buffer_event_data(event); | 151 | entry = ring_buffer_event_data(event); |
| 152 | entry->boot_call = *bt; | 152 | entry->boot_call = *bt; |
| 153 | trace_buffer_unlock_commit(tr, event, 0, 0); | 153 | trace_buffer_unlock_commit(buffer, event, 0, 0); |
| 154 | out: | 154 | out: |
| 155 | preempt_enable(); | 155 | preempt_enable(); |
| 156 | } | 156 | } |
| @@ -158,6 +158,7 @@ void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) | |||
| 158 | void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) | 158 | void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) |
| 159 | { | 159 | { |
| 160 | struct ring_buffer_event *event; | 160 | struct ring_buffer_event *event; |
| 161 | struct ring_buffer *buffer; | ||
| 161 | struct trace_boot_ret *entry; | 162 | struct trace_boot_ret *entry; |
| 162 | struct trace_array *tr = boot_trace; | 163 | struct trace_array *tr = boot_trace; |
| 163 | 164 | ||
| @@ -167,13 +168,14 @@ void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) | |||
| 167 | sprint_symbol(bt->func, (unsigned long)fn); | 168 | sprint_symbol(bt->func, (unsigned long)fn); |
| 168 | preempt_disable(); | 169 | preempt_disable(); |
| 169 | 170 | ||
| 170 | event = trace_buffer_lock_reserve(tr, TRACE_BOOT_RET, | 171 | buffer = tr->buffer; |
| 172 | event = trace_buffer_lock_reserve(buffer, TRACE_BOOT_RET, | ||
| 171 | sizeof(*entry), 0, 0); | 173 | sizeof(*entry), 0, 0); |
| 172 | if (!event) | 174 | if (!event) |
| 173 | goto out; | 175 | goto out; |
| 174 | entry = ring_buffer_event_data(event); | 176 | entry = ring_buffer_event_data(event); |
| 175 | entry->boot_ret = *bt; | 177 | entry->boot_ret = *bt; |
| 176 | trace_buffer_unlock_commit(tr, event, 0, 0); | 178 | trace_buffer_unlock_commit(buffer, event, 0, 0); |
| 177 | out: | 179 | out: |
| 178 | preempt_enable(); | 180 | preempt_enable(); |
| 179 | } | 181 | } |
