diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index d2dd71d04b8ac626631b1fdb175e56bca4cddc40..3dd3b97d8049aef5e388bda198e83fb404e66aad 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -5080,6 +5080,9 @@ ftrace_mod_callback(struct trace_array *tr, struct ftrace_hash *hash,
 	char *func;
 	int ret;
 
+	if (!tr)
+		return -ENODEV;
+
 	/* match_records() modifies func, and we need the original */
 	func = kstrdup(func_orig, GFP_KERNEL);
 	if (!func)