[PATCH 0/2] printk_ringbuffer: Fix regression in get_data() and clean up data size checks
From: Petr Mladek
Date: Fri Nov 07 2025 - 14:47:57 EST
This is outcome of the long discussion about the regression caused
by 67e1b0052f6bb82 ("printk_ringbuffer: don't needlessly wrap data blocks around"),
see https://lore.kernel.org/all/69096836.a70a0220.88fb8.0006.GAE@xxxxxxxxxx/
The 1st patch fixes the regression as agreed, see
https://lore.kernel.org/all/87ecqb3qd0.fsf@xxxxxxxxxxxxxxxxxxxxx/
The 2nd patch adds a helper function to unify the checks whether
a more space is needed. I did my best to address all the concerns
about various proposed variants.
Note that I called the new helper function "need_more_space()" in the end.
It avoids all the problems with "before" vs. "lt" vs "le",
and "_safe" vs. "_sane" vs. "_bounded".
IMHO, the name "need_more_space()" fits very well in all three
locations, surprisingly even in data_realloc(). But it is possible
that you disagree. Let me know if you hate it ;-)
The patchset applies on top of printk/linux.git, branch for-6.19.
It should apply on top of linux-next as well.
Petr Mladek (2):
printk_ringbuffer: Fix check of valid data size when blk_lpos
overflows
printk_ringbuffer: Create a helper function to decide whether a more
space is needed
kernel/printk/printk_ringbuffer.c | 40 +++++++++++++++++++++++++------
1 file changed, 33 insertions(+), 7 deletions(-)
--
2.51.1