diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 0e53d46544b829b06eaff3c6325559741a80b1ce..2a8d8a294345a258baca50b8a6b272c1ac0fc658 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -7580,6 +7580,7 @@ allocate_trace_buffer(struct trace_array *tr, struct trace_buffer *buf, int size
 	buf->data = alloc_percpu(struct trace_array_cpu);
 	if (!buf->data) {
 		ring_buffer_free(buf->buffer);
+		buf->buffer = NULL;
 		return -ENOMEM;
 	}