diff options
Diffstat (limited to 'kernel/trace/ring_buffer.c')
| -rw-r--r-- | kernel/trace/ring_buffer.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index d1187ef20caf..41ca394feb22 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
| 15 | #include <linux/percpu.h> | 15 | #include <linux/percpu.h> |
| 16 | #include <linux/mutex.h> | 16 | #include <linux/mutex.h> |
| 17 | #include <linux/slab.h> | ||
| 17 | #include <linux/init.h> | 18 | #include <linux/init.h> |
| 18 | #include <linux/hash.h> | 19 | #include <linux/hash.h> |
| 19 | #include <linux/list.h> | 20 | #include <linux/list.h> |
| @@ -1209,18 +1210,19 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned nr_pages) | |||
| 1209 | 1210 | ||
| 1210 | for (i = 0; i < nr_pages; i++) { | 1211 | for (i = 0; i < nr_pages; i++) { |
| 1211 | if (RB_WARN_ON(cpu_buffer, list_empty(cpu_buffer->pages))) | 1212 | if (RB_WARN_ON(cpu_buffer, list_empty(cpu_buffer->pages))) |
| 1212 | return; | 1213 | goto out; |
| 1213 | p = cpu_buffer->pages->next; | 1214 | p = cpu_buffer->pages->next; |
| 1214 | bpage = list_entry(p, struct buffer_page, list); | 1215 | bpage = list_entry(p, struct buffer_page, list); |
| 1215 | list_del_init(&bpage->list); | 1216 | list_del_init(&bpage->list); |
| 1216 | free_buffer_page(bpage); | 1217 | free_buffer_page(bpage); |
| 1217 | } | 1218 | } |
| 1218 | if (RB_WARN_ON(cpu_buffer, list_empty(cpu_buffer->pages))) | 1219 | if (RB_WARN_ON(cpu_buffer, list_empty(cpu_buffer->pages))) |
| 1219 | return; | 1220 | goto out; |
| 1220 | 1221 | ||
| 1221 | rb_reset_cpu(cpu_buffer); | 1222 | rb_reset_cpu(cpu_buffer); |
| 1222 | rb_check_pages(cpu_buffer); | 1223 | rb_check_pages(cpu_buffer); |
| 1223 | 1224 | ||
| 1225 | out: | ||
| 1224 | spin_unlock_irq(&cpu_buffer->reader_lock); | 1226 | spin_unlock_irq(&cpu_buffer->reader_lock); |
| 1225 | } | 1227 | } |
| 1226 | 1228 | ||
| @@ -1237,7 +1239,7 @@ rb_insert_pages(struct ring_buffer_per_cpu *cpu_buffer, | |||
| 1237 | 1239 | ||
| 1238 | for (i = 0; i < nr_pages; i++) { | 1240 | for (i = 0; i < nr_pages; i++) { |
| 1239 | if (RB_WARN_ON(cpu_buffer, list_empty(pages))) | 1241 | if (RB_WARN_ON(cpu_buffer, list_empty(pages))) |
| 1240 | return; | 1242 | goto out; |
| 1241 | p = pages->next; | 1243 | p = pages->next; |
| 1242 | bpage = list_entry(p, struct buffer_page, list); | 1244 | bpage = list_entry(p, struct buffer_page, list); |
| 1243 | list_del_init(&bpage->list); | 1245 | list_del_init(&bpage->list); |
| @@ -1246,6 +1248,7 @@ rb_insert_pages(struct ring_buffer_per_cpu *cpu_buffer, | |||
| 1246 | rb_reset_cpu(cpu_buffer); | 1248 | rb_reset_cpu(cpu_buffer); |
| 1247 | rb_check_pages(cpu_buffer); | 1249 | rb_check_pages(cpu_buffer); |
| 1248 | 1250 | ||
| 1251 | out: | ||
| 1249 | spin_unlock_irq(&cpu_buffer->reader_lock); | 1252 | spin_unlock_irq(&cpu_buffer->reader_lock); |
| 1250 | } | 1253 | } |
| 1251 | 1254 | ||
