diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-07-10 05:43:06 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-07-10 05:43:06 -0400 |
| commit | 5373fdbdc1dba69aa956098650f71b731d471885 (patch) | |
| tree | 8d9f07539896a696352818820c9c5f6612370882 /kernel/trace/trace.c | |
| parent | bac0c9103b31c3dd83ad9d731dd9834e2ba75e4f (diff) | |
| parent | 4d51c7587bb13dbb2fafcad6c0b5231bd864b55f (diff) | |
Merge branch 'tracing/mmiotrace' into auto-ftrace-next
Diffstat (limited to 'kernel/trace/trace.c')
| -rw-r--r-- | kernel/trace/trace.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 9ade79369bfb..4a875600733b 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
| @@ -848,6 +848,48 @@ ftrace(struct trace_array *tr, struct trace_array_cpu *data, | |||
| 848 | trace_function(tr, data, ip, parent_ip, flags); | 848 | trace_function(tr, data, ip, parent_ip, flags); |
| 849 | } | 849 | } |
| 850 | 850 | ||
| 851 | #ifdef CONFIG_MMIOTRACE | ||
| 852 | void __trace_mmiotrace_rw(struct trace_array *tr, struct trace_array_cpu *data, | ||
| 853 | struct mmiotrace_rw *rw) | ||
| 854 | { | ||
| 855 | struct trace_entry *entry; | ||
| 856 | unsigned long irq_flags; | ||
| 857 | |||
| 858 | raw_local_irq_save(irq_flags); | ||
| 859 | __raw_spin_lock(&data->lock); | ||
| 860 | |||
| 861 | entry = tracing_get_trace_entry(tr, data); | ||
| 862 | tracing_generic_entry_update(entry, 0); | ||
| 863 | entry->type = TRACE_MMIO_RW; | ||
| 864 | entry->mmiorw = *rw; | ||
| 865 | |||
| 866 | __raw_spin_unlock(&data->lock); | ||
| 867 | raw_local_irq_restore(irq_flags); | ||
| 868 | |||
| 869 | trace_wake_up(); | ||
| 870 | } | ||
| 871 | |||
| 872 | void __trace_mmiotrace_map(struct trace_array *tr, struct trace_array_cpu *data, | ||
| 873 | struct mmiotrace_map *map) | ||
| 874 | { | ||
| 875 | struct trace_entry *entry; | ||
| 876 | unsigned long irq_flags; | ||
| 877 | |||
| 878 | raw_local_irq_save(irq_flags); | ||
| 879 | __raw_spin_lock(&data->lock); | ||
| 880 | |||
| 881 | entry = tracing_get_trace_entry(tr, data); | ||
| 882 | tracing_generic_entry_update(entry, 0); | ||
| 883 | entry->type = TRACE_MMIO_MAP; | ||
| 884 | entry->mmiomap = *map; | ||
| 885 | |||
| 886 | __raw_spin_unlock(&data->lock); | ||
| 887 | raw_local_irq_restore(irq_flags); | ||
| 888 | |||
| 889 | trace_wake_up(); | ||
| 890 | } | ||
| 891 | #endif | ||
| 892 | |||
| 851 | void __trace_stack(struct trace_array *tr, | 893 | void __trace_stack(struct trace_array *tr, |
| 852 | struct trace_array_cpu *data, | 894 | struct trace_array_cpu *data, |
| 853 | unsigned long flags, | 895 | unsigned long flags, |
