• Steven Rostedt (Google)'s avatar
    ring-buffer: Add test if range of boot buffer is valid · c76883f1
    Steven Rostedt (Google) authored
    Add a test against the ring buffer memory range to see if it has valid
    data. The ring_buffer_meta structure is given a new field called
    "first_buffer" which holds the address of the first sub-buffer. This is
    used to both determine if the other fields are valid as well as finding
    the offset between the old addresses of the sub-buffer from the previous
    boot to the new addresses of the current boot.
    
    Since the values for nr_subbufs and subbuf_size is to be the same, check
    if the values in the meta page match the values calculated.
    
    Take the range of the first_buffer and the total size of all the buffers
    and make sure the saved head_buffer and commit_buffer fall in the range.
    
    Iterate through all the sub-buffers to make sure that the values in the
    sub-buffer "commit" field (the field that holds the amount of data on the
    sub-buffer) is within the end of the sub-buffer. Also check the index
    array to make sure that all the indexes are within nr_subbufs.
    
    Link: https://lkml.kernel.org/r/20240612232026.013843655@goodmis.org
    
    
    
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Vincent Donnefort <vdonnefort@google.com>
    Cc: Joel Fernandes <joel@joelfernandes.org>
    Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vineeth Pillai <vineeth@bitbyteword.org>
    Cc: Youssef Esmat <youssefesmat@google.com>
    Cc: Beau Belgrave <beaub@linux.microsoft.com>
    Cc: Alexander Graf <graf@amazon.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "Paul E. McKenney" <paulmck@kernel.org>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: Ross Zwisler <zwisler@google.com>
    Cc: Kees Cook <keescook@chromium.org>
    Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    c76883f1
ring_buffer.c 197 KB