diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2023-09-23 05:35:55 -0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2023-09-23 05:35:55 -0400 |
commit | 5804c19b80bf625c6a9925317f845e497434d6d3 (patch) | |
tree | ba4a0bf9cac721e2bf898e3be5ab64773da5a9d2 /kernel/trace/ring_buffer.c | |
parent | 916e3e5f26abc165437950daff370c0693572ef4 (diff) | |
parent | 071ef070ca77e6dfe33fd78afa293e83422f0411 (diff) | |
download | linux-5804c19b80bf625c6a9925317f845e497434d6d3.tar.gz linux-5804c19b80bf625c6a9925317f845e497434d6d3.tar.bz2 linux-5804c19b80bf625c6a9925317f845e497434d6d3.zip |
Merge tag 'kvm-riscv-fixes-6.6-1' of https://github.com/kvm-riscv/linux into HEAD
KVM/riscv fixes for 6.6, take #1
- Fix KVM_GET_REG_LIST API for ISA_EXT registers
- Fix reading ISA_EXT register of a missing extension
- Fix ISA_EXT register handling in get-reg-list test
- Fix filtering of AIA registers in get-reg-list test
Diffstat (limited to 'kernel/trace/ring_buffer.c')
-rw-r--r-- | kernel/trace/ring_buffer.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 78502d4c7214..a1651edc48d5 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -2198,6 +2198,8 @@ int ring_buffer_resize(struct trace_buffer *buffer, unsigned long size, err = -ENOMEM; goto out_err; } + + cond_resched(); } cpus_read_lock(); @@ -2388,6 +2390,11 @@ rb_iter_head_event(struct ring_buffer_iter *iter) */ commit = rb_page_commit(iter_head_page); smp_rmb(); + + /* An event needs to be at least 8 bytes in size */ + if (iter->head > commit - 8) + goto reset; + event = __rb_page_index(iter_head_page, iter->head); length = rb_event_length(event); |