diff options
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r-- | kernel/trace/trace.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 3271916ff033..d14fe49e9638 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -831,6 +831,40 @@ ftrace(struct trace_array *tr, struct trace_array_cpu *data, | |||
831 | trace_function(tr, data, ip, parent_ip, flags); | 831 | trace_function(tr, data, ip, parent_ip, flags); |
832 | } | 832 | } |
833 | 833 | ||
834 | #ifdef CONFIG_MMIOTRACE | ||
835 | void __trace_mmiotrace_rw(struct trace_array *tr, struct trace_array_cpu *data, | ||
836 | struct mmiotrace_rw *rw) | ||
837 | { | ||
838 | struct trace_entry *entry; | ||
839 | unsigned long irq_flags; | ||
840 | |||
841 | spin_lock_irqsave(&data->lock, irq_flags); | ||
842 | entry = tracing_get_trace_entry(tr, data); | ||
843 | tracing_generic_entry_update(entry, 0); | ||
844 | entry->type = TRACE_MMIO_RW; | ||
845 | entry->mmiorw = *rw; | ||
846 | spin_unlock_irqrestore(&data->lock, irq_flags); | ||
847 | |||
848 | trace_wake_up(); | ||
849 | } | ||
850 | |||
851 | void __trace_mmiotrace_map(struct trace_array *tr, struct trace_array_cpu *data, | ||
852 | struct mmiotrace_map *map) | ||
853 | { | ||
854 | struct trace_entry *entry; | ||
855 | unsigned long irq_flags; | ||
856 | |||
857 | spin_lock_irqsave(&data->lock, irq_flags); | ||
858 | entry = tracing_get_trace_entry(tr, data); | ||
859 | tracing_generic_entry_update(entry, 0); | ||
860 | entry->type = TRACE_MMIO_MAP; | ||
861 | entry->mmiomap = *map; | ||
862 | spin_unlock_irqrestore(&data->lock, irq_flags); | ||
863 | |||
864 | trace_wake_up(); | ||
865 | } | ||
866 | #endif | ||
867 | |||
834 | void __trace_stack(struct trace_array *tr, | 868 | void __trace_stack(struct trace_array *tr, |
835 | struct trace_array_cpu *data, | 869 | struct trace_array_cpu *data, |
836 | unsigned long flags, | 870 | unsigned long flags, |