diff options
Diffstat (limited to 'kernel/trace/tracing_map.c')
| -rw-r--r-- | kernel/trace/tracing_map.c | 11 | 
1 files changed, 7 insertions, 4 deletions
diff --git a/kernel/trace/tracing_map.c b/kernel/trace/tracing_map.c index 0a689bbb78ef..305039b122fa 100644 --- a/kernel/trace/tracing_map.c +++ b/kernel/trace/tracing_map.c @@ -221,16 +221,19 @@ void tracing_map_array_free(struct tracing_map_array *a)  	if (!a)  		return; -	if (!a->pages) { -		kfree(a); -		return; -	} +	if (!a->pages) +		goto free;  	for (i = 0; i < a->n_pages; i++) {  		if (!a->pages[i])  			break;  		free_page((unsigned long)a->pages[i]);  	} + +	kfree(a->pages); + + free: +	kfree(a);  }  struct tracing_map_array *tracing_map_array_alloc(unsigned int n_elts,  |