diff options
Diffstat (limited to 'kernel/trace/trace_output.c')
| -rw-r--r-- | kernel/trace/trace_output.c | 137 |
1 files changed, 92 insertions, 45 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 2404c129a8c9..fc9d4dbb089e 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
| @@ -726,6 +726,9 @@ int register_ftrace_event(struct trace_event *event) | |||
| 726 | if (WARN_ON(!event)) | 726 | if (WARN_ON(!event)) |
| 727 | goto out; | 727 | goto out; |
| 728 | 728 | ||
| 729 | if (WARN_ON(!event->funcs)) | ||
| 730 | goto out; | ||
| 731 | |||
| 729 | INIT_LIST_HEAD(&event->list); | 732 | INIT_LIST_HEAD(&event->list); |
| 730 | 733 | ||
| 731 | if (!event->type) { | 734 | if (!event->type) { |
| @@ -758,14 +761,14 @@ int register_ftrace_event(struct trace_event *event) | |||
| 758 | goto out; | 761 | goto out; |
| 759 | } | 762 | } |
| 760 | 763 | ||
| 761 | if (event->trace == NULL) | 764 | if (event->funcs->trace == NULL) |
| 762 | event->trace = trace_nop_print; | 765 | event->funcs->trace = trace_nop_print; |
| 763 | if (event->raw == NULL) | 766 | if (event->funcs->raw == NULL) |
| 764 | event->raw = trace_nop_print; | 767 | event->funcs->raw = trace_nop_print; |
| 765 | if (event->hex == NULL) | 768 | if (event->funcs->hex == NULL) |
| 766 | event->hex = trace_nop_print; | 769 | event->funcs->hex = trace_nop_print; |
| 767 | if (event->binary == NULL) | 770 | if (event->funcs->binary == NULL) |
| 768 | event->binary = trace_nop_print; | 771 | event->funcs->binary = trace_nop_print; |
| 769 | 772 | ||
| 770 | key = event->type & (EVENT_HASHSIZE - 1); | 773 | key = event->type & (EVENT_HASHSIZE - 1); |
| 771 | 774 | ||
| @@ -807,13 +810,15 @@ EXPORT_SYMBOL_GPL(unregister_ftrace_event); | |||
| 807 | * Standard events | 810 | * Standard events |
| 808 | */ | 811 | */ |
| 809 | 812 | ||
| 810 | enum print_line_t trace_nop_print(struct trace_iterator *iter, int flags) | 813 | enum print_line_t trace_nop_print(struct trace_iterator *iter, int flags, |
| 814 | struct trace_event *event) | ||
| 811 | { | 815 | { |
| 812 | return TRACE_TYPE_HANDLED; | 816 | return TRACE_TYPE_HANDLED; |
| 813 | } | 817 | } |
| 814 | 818 | ||
| 815 | /* TRACE_FN */ | 819 | /* TRACE_FN */ |
| 816 | static enum print_line_t trace_fn_trace(struct trace_iterator *iter, int flags) | 820 | static enum print_line_t trace_fn_trace(struct trace_iterator *iter, int flags, |
| 821 | struct trace_event *event) | ||
| 817 | { | 822 | { |
| 818 | struct ftrace_entry *field; | 823 | struct ftrace_entry *field; |
| 819 | struct trace_seq *s = &iter->seq; | 824 | struct trace_seq *s = &iter->seq; |
| @@ -840,7 +845,8 @@ static enum print_line_t trace_fn_trace(struct trace_iterator *iter, int flags) | |||
| 840 | return TRACE_TYPE_PARTIAL_LINE; | 845 | return TRACE_TYPE_PARTIAL_LINE; |
| 841 | } | 846 | } |
| 842 | 847 | ||
| 843 | static enum print_line_t trace_fn_raw(struct trace_iterator *iter, int flags) | 848 | static enum print_line_t trace_fn_raw(struct trace_iterator *iter, int flags, |
| 849 | struct trace_event *event) | ||
| 844 | { | 850 | { |
| 845 | struct ftrace_entry *field; | 851 | struct ftrace_entry *field; |
| 846 | 852 | ||
| @@ -854,7 +860,8 @@ static enum print_line_t trace_fn_raw(struct trace_iterator *iter, int flags) | |||
| 854 | return TRACE_TYPE_HANDLED; | 860 | return TRACE_TYPE_HANDLED; |
| 855 | } | 861 | } |
| 856 | 862 | ||
| 857 | static enum print_line_t trace_fn_hex(struct trace_iterator *iter, int flags) | 863 | static enum print_line_t trace_fn_hex(struct trace_iterator *iter, int flags, |
| 864 | struct trace_event *event) | ||
| 858 | { | 865 | { |
| 859 | struct ftrace_entry *field; | 866 | struct ftrace_entry *field; |
| 860 | struct trace_seq *s = &iter->seq; | 867 | struct trace_seq *s = &iter->seq; |
| @@ -867,7 +874,8 @@ static enum print_line_t trace_fn_hex(struct trace_iterator *iter, int flags) | |||
| 867 | return TRACE_TYPE_HANDLED; | 874 | return TRACE_TYPE_HANDLED; |
| 868 | } | 875 | } |
| 869 | 876 | ||
| 870 | static enum print_line_t trace_fn_bin(struct trace_iterator *iter, int flags) | 877 | static enum print_line_t trace_fn_bin(struct trace_iterator *iter, int flags, |
| 878 | struct trace_event *event) | ||
| 871 | { | 879 | { |
| 872 | struct ftrace_entry *field; | 880 | struct ftrace_entry *field; |
| 873 | struct trace_seq *s = &iter->seq; | 881 | struct trace_seq *s = &iter->seq; |
| @@ -880,14 +888,18 @@ static enum print_line_t trace_fn_bin(struct trace_iterator *iter, int flags) | |||
| 880 | return TRACE_TYPE_HANDLED; | 888 | return TRACE_TYPE_HANDLED; |
| 881 | } | 889 | } |
| 882 | 890 | ||
| 883 | static struct trace_event trace_fn_event = { | 891 | static struct trace_event_functions trace_fn_funcs = { |
| 884 | .type = TRACE_FN, | ||
| 885 | .trace = trace_fn_trace, | 892 | .trace = trace_fn_trace, |
| 886 | .raw = trace_fn_raw, | 893 | .raw = trace_fn_raw, |
| 887 | .hex = trace_fn_hex, | 894 | .hex = trace_fn_hex, |
| 888 | .binary = trace_fn_bin, | 895 | .binary = trace_fn_bin, |
| 889 | }; | 896 | }; |
| 890 | 897 | ||
| 898 | static struct trace_event trace_fn_event = { | ||
| 899 | .type = TRACE_FN, | ||
| 900 | .funcs = &trace_fn_funcs, | ||
| 901 | }; | ||
| 902 | |||
| 891 | /* TRACE_CTX an TRACE_WAKE */ | 903 | /* TRACE_CTX an TRACE_WAKE */ |
| 892 | static enum print_line_t trace_ctxwake_print(struct trace_iterator *iter, | 904 | static enum print_line_t trace_ctxwake_print(struct trace_iterator *iter, |
| 893 | char *delim) | 905 | char *delim) |
| @@ -916,13 +928,14 @@ static enum print_line_t trace_ctxwake_print(struct trace_iterator *iter, | |||
| 916 | return TRACE_TYPE_HANDLED; | 928 | return TRACE_TYPE_HANDLED; |
| 917 | } | 929 | } |
| 918 | 930 | ||
| 919 | static enum print_line_t trace_ctx_print(struct trace_iterator *iter, int flags) | 931 | static enum print_line_t trace_ctx_print(struct trace_iterator *iter, int flags, |
| 932 | struct trace_event *event) | ||
| 920 | { | 933 | { |
| 921 | return trace_ctxwake_print(iter, "==>"); | 934 | return trace_ctxwake_print(iter, "==>"); |
| 922 | } | 935 | } |
| 923 | 936 | ||
| 924 | static enum print_line_t trace_wake_print(struct trace_iterator *iter, | 937 | static enum print_line_t trace_wake_print(struct trace_iterator *iter, |
| 925 | int flags) | 938 | int flags, struct trace_event *event) |
| 926 | { | 939 | { |
| 927 | return trace_ctxwake_print(iter, " +"); | 940 | return trace_ctxwake_print(iter, " +"); |
| 928 | } | 941 | } |
| @@ -950,12 +963,14 @@ static int trace_ctxwake_raw(struct trace_iterator *iter, char S) | |||
| 950 | return TRACE_TYPE_HANDLED; | 963 | return TRACE_TYPE_HANDLED; |
| 951 | } | 964 | } |
| 952 | 965 | ||
| 953 | static enum print_line_t trace_ctx_raw(struct trace_iterator *iter, int flags) | 966 | static enum print_line_t trace_ctx_raw(struct trace_iterator *iter, int flags, |
| 967 | struct trace_event *event) | ||
| 954 | { | 968 | { |
| 955 | return trace_ctxwake_raw(iter, 0); | 969 | return trace_ctxwake_raw(iter, 0); |
| 956 | } | 970 | } |
| 957 | 971 | ||
| 958 | static enum print_line_t trace_wake_raw(struct trace_iterator *iter, int flags) | 972 | static enum print_line_t trace_wake_raw(struct trace_iterator *iter, int flags, |
| 973 | struct trace_event *event) | ||
| 959 | { | 974 | { |
| 960 | return trace_ctxwake_raw(iter, '+'); | 975 | return trace_ctxwake_raw(iter, '+'); |
| 961 | } | 976 | } |
| @@ -984,18 +999,20 @@ static int trace_ctxwake_hex(struct trace_iterator *iter, char S) | |||
| 984 | return TRACE_TYPE_HANDLED; | 999 | return TRACE_TYPE_HANDLED; |
| 985 | } | 1000 | } |
| 986 | 1001 | ||
| 987 | static enum print_line_t trace_ctx_hex(struct trace_iterator *iter, int flags) | 1002 | static enum print_line_t trace_ctx_hex(struct trace_iterator *iter, int flags, |
| 1003 | struct trace_event *event) | ||
| 988 | { | 1004 | { |
| 989 | return trace_ctxwake_hex(iter, 0); | 1005 | return trace_ctxwake_hex(iter, 0); |
| 990 | } | 1006 | } |
| 991 | 1007 | ||
| 992 | static enum print_line_t trace_wake_hex(struct trace_iterator *iter, int flags) | 1008 | static enum print_line_t trace_wake_hex(struct trace_iterator *iter, int flags, |
| 1009 | struct trace_event *event) | ||
| 993 | { | 1010 | { |
| 994 | return trace_ctxwake_hex(iter, '+'); | 1011 | return trace_ctxwake_hex(iter, '+'); |
| 995 | } | 1012 | } |
| 996 | 1013 | ||
| 997 | static enum print_line_t trace_ctxwake_bin(struct trace_iterator *iter, | 1014 | static enum print_line_t trace_ctxwake_bin(struct trace_iterator *iter, |
| 998 | int flags) | 1015 | int flags, struct trace_event *event) |
| 999 | { | 1016 | { |
| 1000 | struct ctx_switch_entry *field; | 1017 | struct ctx_switch_entry *field; |
| 1001 | struct trace_seq *s = &iter->seq; | 1018 | struct trace_seq *s = &iter->seq; |
| @@ -1012,25 +1029,33 @@ static enum print_line_t trace_ctxwake_bin(struct trace_iterator *iter, | |||
| 1012 | return TRACE_TYPE_HANDLED; | 1029 | return TRACE_TYPE_HANDLED; |
| 1013 | } | 1030 | } |
| 1014 | 1031 | ||
| 1015 | static struct trace_event trace_ctx_event = { | 1032 | static struct trace_event_functions trace_ctx_funcs = { |
| 1016 | .type = TRACE_CTX, | ||
| 1017 | .trace = trace_ctx_print, | 1033 | .trace = trace_ctx_print, |
| 1018 | .raw = trace_ctx_raw, | 1034 | .raw = trace_ctx_raw, |
| 1019 | .hex = trace_ctx_hex, | 1035 | .hex = trace_ctx_hex, |
| 1020 | .binary = trace_ctxwake_bin, | 1036 | .binary = trace_ctxwake_bin, |
| 1021 | }; | 1037 | }; |
| 1022 | 1038 | ||
| 1023 | static struct trace_event trace_wake_event = { | 1039 | static struct trace_event trace_ctx_event = { |
| 1024 | .type = TRACE_WAKE, | 1040 | .type = TRACE_CTX, |
| 1041 | .funcs = &trace_ctx_funcs, | ||
| 1042 | }; | ||
| 1043 | |||
| 1044 | static struct trace_event_functions trace_wake_funcs = { | ||
| 1025 | .trace = trace_wake_print, | 1045 | .trace = trace_wake_print, |
| 1026 | .raw = trace_wake_raw, | 1046 | .raw = trace_wake_raw, |
| 1027 | .hex = trace_wake_hex, | 1047 | .hex = trace_wake_hex, |
| 1028 | .binary = trace_ctxwake_bin, | 1048 | .binary = trace_ctxwake_bin, |
| 1029 | }; | 1049 | }; |
| 1030 | 1050 | ||
| 1051 | static struct trace_event trace_wake_event = { | ||
| 1052 | .type = TRACE_WAKE, | ||
| 1053 | .funcs = &trace_wake_funcs, | ||
| 1054 | }; | ||
| 1055 | |||
| 1031 | /* TRACE_SPECIAL */ | 1056 | /* TRACE_SPECIAL */ |
| 1032 | static enum print_line_t trace_special_print(struct trace_iterator *iter, | 1057 | static enum print_line_t trace_special_print(struct trace_iterator *iter, |
| 1033 | int flags) | 1058 | int flags, struct trace_event *event) |
| 1034 | { | 1059 | { |
| 1035 | struct special_entry *field; | 1060 | struct special_entry *field; |
| 1036 | 1061 | ||
| @@ -1046,7 +1071,7 @@ static enum print_line_t trace_special_print(struct trace_iterator *iter, | |||
| 1046 | } | 1071 | } |
| 1047 | 1072 | ||
| 1048 | static enum print_line_t trace_special_hex(struct trace_iterator *iter, | 1073 | static enum print_line_t trace_special_hex(struct trace_iterator *iter, |
| 1049 | int flags) | 1074 | int flags, struct trace_event *event) |
| 1050 | { | 1075 | { |
| 1051 | struct special_entry *field; | 1076 | struct special_entry *field; |
| 1052 | struct trace_seq *s = &iter->seq; | 1077 | struct trace_seq *s = &iter->seq; |
| @@ -1061,7 +1086,7 @@ static enum print_line_t trace_special_hex(struct trace_iterator *iter, | |||
| 1061 | } | 1086 | } |
| 1062 | 1087 | ||
| 1063 | static enum print_line_t trace_special_bin(struct trace_iterator *iter, | 1088 | static enum print_line_t trace_special_bin(struct trace_iterator *iter, |
| 1064 | int flags) | 1089 | int flags, struct trace_event *event) |
| 1065 | { | 1090 | { |
| 1066 | struct special_entry *field; | 1091 | struct special_entry *field; |
| 1067 | struct trace_seq *s = &iter->seq; | 1092 | struct trace_seq *s = &iter->seq; |
| @@ -1075,18 +1100,22 @@ static enum print_line_t trace_special_bin(struct trace_iterator *iter, | |||
| 1075 | return TRACE_TYPE_HANDLED; | 1100 | return TRACE_TYPE_HANDLED; |
| 1076 | } | 1101 | } |
| 1077 | 1102 | ||
| 1078 | static struct trace_event trace_special_event = { | 1103 | static struct trace_event_functions trace_special_funcs = { |
| 1079 | .type = TRACE_SPECIAL, | ||
| 1080 | .trace = trace_special_print, | 1104 | .trace = trace_special_print, |
| 1081 | .raw = trace_special_print, | 1105 | .raw = trace_special_print, |
| 1082 | .hex = trace_special_hex, | 1106 | .hex = trace_special_hex, |
| 1083 | .binary = trace_special_bin, | 1107 | .binary = trace_special_bin, |
| 1084 | }; | 1108 | }; |
| 1085 | 1109 | ||
| 1110 | static struct trace_event trace_special_event = { | ||
| 1111 | .type = TRACE_SPECIAL, | ||
| 1112 | .funcs = &trace_special_funcs, | ||
| 1113 | }; | ||
| 1114 | |||
| 1086 | /* TRACE_STACK */ | 1115 | /* TRACE_STACK */ |
| 1087 | 1116 | ||
| 1088 | static enum print_line_t trace_stack_print(struct trace_iterator *iter, | 1117 | static enum print_line_t trace_stack_print(struct trace_iterator *iter, |
| 1089 | int flags) | 1118 | int flags, struct trace_event *event) |
| 1090 | { | 1119 | { |
| 1091 | struct stack_entry *field; | 1120 | struct stack_entry *field; |
| 1092 | struct trace_seq *s = &iter->seq; | 1121 | struct trace_seq *s = &iter->seq; |
| @@ -1114,17 +1143,21 @@ static enum print_line_t trace_stack_print(struct trace_iterator *iter, | |||
| 1114 | return TRACE_TYPE_PARTIAL_LINE; | 1143 | return TRACE_TYPE_PARTIAL_LINE; |
| 1115 | } | 1144 | } |
| 1116 | 1145 | ||
| 1117 | static struct trace_event trace_stack_event = { | 1146 | static struct trace_event_functions trace_stack_funcs = { |
| 1118 | .type = TRACE_STACK, | ||
| 1119 | .trace = trace_stack_print, | 1147 | .trace = trace_stack_print, |
| 1120 | .raw = trace_special_print, | 1148 | .raw = trace_special_print, |
| 1121 | .hex = trace_special_hex, | 1149 | .hex = trace_special_hex, |
| 1122 | .binary = trace_special_bin, | 1150 | .binary = trace_special_bin, |
| 1123 | }; | 1151 | }; |
| 1124 | 1152 | ||
| 1153 | static struct trace_event trace_stack_event = { | ||
| 1154 | .type = TRACE_STACK, | ||
| 1155 | .funcs = &trace_stack_funcs, | ||
| 1156 | }; | ||
| 1157 | |||
| 1125 | /* TRACE_USER_STACK */ | 1158 | /* TRACE_USER_STACK */ |
| 1126 | static enum print_line_t trace_user_stack_print(struct trace_iterator *iter, | 1159 | static enum print_line_t trace_user_stack_print(struct trace_iterator *iter, |
| 1127 | int flags) | 1160 | int flags, struct trace_event *event) |
| 1128 | { | 1161 | { |
| 1129 | struct userstack_entry *field; | 1162 | struct userstack_entry *field; |
| 1130 | struct trace_seq *s = &iter->seq; | 1163 | struct trace_seq *s = &iter->seq; |
| @@ -1143,17 +1176,22 @@ static enum print_line_t trace_user_stack_print(struct trace_iterator *iter, | |||
| 1143 | return TRACE_TYPE_PARTIAL_LINE; | 1176 | return TRACE_TYPE_PARTIAL_LINE; |
| 1144 | } | 1177 | } |
| 1145 | 1178 | ||
| 1146 | static struct trace_event trace_user_stack_event = { | 1179 | static struct trace_event_functions trace_user_stack_funcs = { |
| 1147 | .type = TRACE_USER_STACK, | ||
| 1148 | .trace = trace_user_stack_print, | 1180 | .trace = trace_user_stack_print, |
| 1149 | .raw = trace_special_print, | 1181 | .raw = trace_special_print, |
| 1150 | .hex = trace_special_hex, | 1182 | .hex = trace_special_hex, |
| 1151 | .binary = trace_special_bin, | 1183 | .binary = trace_special_bin, |
| 1152 | }; | 1184 | }; |
| 1153 | 1185 | ||
| 1186 | static struct trace_event trace_user_stack_event = { | ||
| 1187 | .type = TRACE_USER_STACK, | ||
| 1188 | .funcs = &trace_user_stack_funcs, | ||
| 1189 | }; | ||
| 1190 | |||
| 1154 | /* TRACE_BPRINT */ | 1191 | /* TRACE_BPRINT */ |
| 1155 | static enum print_line_t | 1192 | static enum print_line_t |
| 1156 | trace_bprint_print(struct trace_iterator *iter, int flags) | 1193 | trace_bprint_print(struct trace_iterator *iter, int flags, |
| 1194 | struct trace_event *event) | ||
| 1157 | { | 1195 | { |
| 1158 | struct trace_entry *entry = iter->ent; | 1196 | struct trace_entry *entry = iter->ent; |
| 1159 | struct trace_seq *s = &iter->seq; | 1197 | struct trace_seq *s = &iter->seq; |
| @@ -1178,7 +1216,8 @@ trace_bprint_print(struct trace_iterator *iter, int flags) | |||
| 1178 | 1216 | ||
| 1179 | 1217 | ||
| 1180 | static enum print_line_t | 1218 | static enum print_line_t |
| 1181 | trace_bprint_raw(struct trace_iterator *iter, int flags) | 1219 | trace_bprint_raw(struct trace_iterator *iter, int flags, |
| 1220 | struct trace_event *event) | ||
| 1182 | { | 1221 | { |
| 1183 | struct bprint_entry *field; | 1222 | struct bprint_entry *field; |
| 1184 | struct trace_seq *s = &iter->seq; | 1223 | struct trace_seq *s = &iter->seq; |
| @@ -1197,16 +1236,19 @@ trace_bprint_raw(struct trace_iterator *iter, int flags) | |||
| 1197 | return TRACE_TYPE_PARTIAL_LINE; | 1236 | return TRACE_TYPE_PARTIAL_LINE; |
| 1198 | } | 1237 | } |
| 1199 | 1238 | ||
| 1239 | static struct trace_event_functions trace_bprint_funcs = { | ||
| 1240 | .trace = trace_bprint_print, | ||
| 1241 | .raw = trace_bprint_raw, | ||
| 1242 | }; | ||
| 1200 | 1243 | ||
| 1201 | static struct trace_event trace_bprint_event = { | 1244 | static struct trace_event trace_bprint_event = { |
| 1202 | .type = TRACE_BPRINT, | 1245 | .type = TRACE_BPRINT, |
| 1203 | .trace = trace_bprint_print, | 1246 | .funcs = &trace_bprint_funcs, |
| 1204 | .raw = trace_bprint_raw, | ||
| 1205 | }; | 1247 | }; |
| 1206 | 1248 | ||
| 1207 | /* TRACE_PRINT */ | 1249 | /* TRACE_PRINT */ |
| 1208 | static enum print_line_t trace_print_print(struct trace_iterator *iter, | 1250 | static enum print_line_t trace_print_print(struct trace_iterator *iter, |
| 1209 | int flags) | 1251 | int flags, struct trace_event *event) |
| 1210 | { | 1252 | { |
| 1211 | struct print_entry *field; | 1253 | struct print_entry *field; |
| 1212 | struct trace_seq *s = &iter->seq; | 1254 | struct trace_seq *s = &iter->seq; |
| @@ -1225,7 +1267,8 @@ static enum print_line_t trace_print_print(struct trace_iterator *iter, | |||
| 1225 | return TRACE_TYPE_PARTIAL_LINE; | 1267 | return TRACE_TYPE_PARTIAL_LINE; |
| 1226 | } | 1268 | } |
| 1227 | 1269 | ||
| 1228 | static enum print_line_t trace_print_raw(struct trace_iterator *iter, int flags) | 1270 | static enum print_line_t trace_print_raw(struct trace_iterator *iter, int flags, |
| 1271 | struct trace_event *event) | ||
| 1229 | { | 1272 | { |
| 1230 | struct print_entry *field; | 1273 | struct print_entry *field; |
| 1231 | 1274 | ||
| @@ -1240,12 +1283,16 @@ static enum print_line_t trace_print_raw(struct trace_iterator *iter, int flags) | |||
| 1240 | return TRACE_TYPE_PARTIAL_LINE; | 1283 | return TRACE_TYPE_PARTIAL_LINE; |
| 1241 | } | 1284 | } |
| 1242 | 1285 | ||
| 1243 | static struct trace_event trace_print_event = { | 1286 | static struct trace_event_functions trace_print_funcs = { |
| 1244 | .type = TRACE_PRINT, | ||
| 1245 | .trace = trace_print_print, | 1287 | .trace = trace_print_print, |
| 1246 | .raw = trace_print_raw, | 1288 | .raw = trace_print_raw, |
| 1247 | }; | 1289 | }; |
| 1248 | 1290 | ||
| 1291 | static struct trace_event trace_print_event = { | ||
| 1292 | .type = TRACE_PRINT, | ||
| 1293 | .funcs = &trace_print_funcs, | ||
| 1294 | }; | ||
| 1295 | |||
| 1249 | 1296 | ||
| 1250 | static struct trace_event *events[] __initdata = { | 1297 | static struct trace_event *events[] __initdata = { |
| 1251 | &trace_fn_event, | 1298 | &trace_fn_event, |
