@@ -73,6 +73,10 @@ static struct trace_event_file *gen_kretprobe_test;
7373#define KPROBE_GEN_TEST_ARG3 NULL
7474#endif
7575
76+ static bool trace_event_file_is_valid (struct trace_event_file * input )
77+ {
78+ return input && !IS_ERR (input );
79+ }
7680
7781/*
7882 * Test to make sure we can create a kprobe event, then add more
@@ -217,10 +221,12 @@ static int __init kprobe_event_gen_test_init(void)
217221
218222 ret = test_gen_kretprobe_cmd ();
219223 if (ret ) {
220- WARN_ON (trace_array_set_clr_event (gen_kretprobe_test -> tr ,
221- "kprobes" ,
222- "gen_kretprobe_test" , false));
223- trace_put_event_file (gen_kretprobe_test );
224+ if (trace_event_file_is_valid (gen_kretprobe_test )) {
225+ WARN_ON (trace_array_set_clr_event (gen_kretprobe_test -> tr ,
226+ "kprobes" ,
227+ "gen_kretprobe_test" , false));
228+ trace_put_event_file (gen_kretprobe_test );
229+ }
224230 WARN_ON (kprobe_event_delete ("gen_kretprobe_test" ));
225231 }
226232
@@ -229,24 +235,30 @@ static int __init kprobe_event_gen_test_init(void)
229235
230236static void __exit kprobe_event_gen_test_exit (void )
231237{
232- /* Disable the event or you can't remove it */
233- WARN_ON (trace_array_set_clr_event (gen_kprobe_test -> tr ,
234- "kprobes" ,
235- "gen_kprobe_test" , false));
238+ if (trace_event_file_is_valid (gen_kprobe_test )) {
239+ /* Disable the event or you can't remove it */
240+ WARN_ON (trace_array_set_clr_event (gen_kprobe_test -> tr ,
241+ "kprobes" ,
242+ "gen_kprobe_test" , false));
243+
244+ /* Now give the file and instance back */
245+ trace_put_event_file (gen_kprobe_test );
246+ }
236247
237- /* Now give the file and instance back */
238- trace_put_event_file (gen_kprobe_test );
239248
240249 /* Now unregister and free the event */
241250 WARN_ON (kprobe_event_delete ("gen_kprobe_test" ));
242251
243- /* Disable the event or you can't remove it */
244- WARN_ON (trace_array_set_clr_event (gen_kretprobe_test -> tr ,
245- "kprobes" ,
246- "gen_kretprobe_test" , false));
252+ if (trace_event_file_is_valid (gen_kretprobe_test )) {
253+ /* Disable the event or you can't remove it */
254+ WARN_ON (trace_array_set_clr_event (gen_kretprobe_test -> tr ,
255+ "kprobes" ,
256+ "gen_kretprobe_test" , false));
257+
258+ /* Now give the file and instance back */
259+ trace_put_event_file (gen_kretprobe_test );
260+ }
247261
248- /* Now give the file and instance back */
249- trace_put_event_file (gen_kretprobe_test );
250262
251263 /* Now unregister and free the event */
252264 WARN_ON (kprobe_event_delete ("gen_kretprobe_test" ));
0 commit comments