]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
printk: ringbuffer: fix errors in comments
authorLoïc Grégoire <loicgre@gmail.com>
Sat, 28 Mar 2026 02:18:54 +0000 (22:18 -0400)
committerPetr Mladek <pmladek@suse.com>
Tue, 31 Mar 2026 15:40:23 +0000 (17:40 +0200)
The printk ringbuffer implementation is described in the comment as
using three ringbuffers, but the current implementation uses two (desc
and data). Update the comment so it matches the code.

Fix few more known issues in the comments.

Signed-off-by: Loïc Grégoire <loicgre@gmail.com>
Reviewed-by: John Ogness <john.ogness@linutronix.de>
Link: https://patch.msgid.link/20260328021855.53956-1-loicgre@gmail.com
[pmladek@suse.com: Fixed few more issues in the comments by John Ogness.]
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
kernel/printk/printk_ringbuffer.c
kernel/printk/printk_ringbuffer.h

index aa4b39e94cfa2a8a38be00c6de2f319784f15795..85c0c854b3ce2cdab81f7b6962edf730430a2f3c 100644 (file)
@@ -14,7 +14,7 @@
  *
  * Data Structure
  * --------------
- * The printk_ringbuffer is made up of 3 internal ringbuffers:
+ * The printk_ringbuffer is made up of 2 internal ringbuffers:
  *
  *   desc_ring
  *     A ring of descriptors and their meta data (such as sequence number,
  *
  *     prb_rec_init_rd(&r, &info, &text_buf[0], sizeof(text_buf));
  *
- *     prb_for_each_record(0, &test_rb, &seq, &r) {
+ *     prb_for_each_record(0, &test_rb, seq, &r) {
  *             if (info.seq != seq)
  *                     pr_warn("lost %llu records\n", info.seq - seq);
  *
@@ -1368,7 +1368,7 @@ static struct prb_desc *desc_reopen_last(struct prb_desc_ring *desc_ring,
         *
         * WMB from _prb_commit:A to _prb_commit:B
         *    matching
-        * MB If desc_reopen_last:A to prb_reserve_in_last:A
+        * MB from desc_reopen_last:A to prb_reserve_in_last:A
         */
        if (!atomic_long_try_cmpxchg(&d->state_var, &prev_state_val,
                        DESC_SV(id, desc_reserved))) { /* LMM(desc_reopen_last:A) */
@@ -1773,9 +1773,9 @@ static void _prb_commit(struct prb_reserved_entry *e, unsigned long state_val)
         *
         *    Relies on:
         *
-        *    MB _prb_commit:B to prb_commit:A
+        *    MB from _prb_commit:B to prb_commit:A
         *       matching
-        *    MB desc_reserve:D to desc_make_final:A
+        *    MB from desc_reserve:D to desc_make_final:A
         */
        if (!atomic_long_try_cmpxchg(&d->state_var, &prev_state_val,
                        DESC_SV(e->id, state_val))) { /* LMM(_prb_commit:B) */
@@ -2038,7 +2038,7 @@ u64 prb_first_seq(struct printk_ringbuffer *rb)
                 *
                 * MB from desc_push_tail:B to desc_reserve:F
                 *    matching
-                * RMB prb_first_seq:B to prb_first_seq:A
+                * RMB from prb_first_seq:B to prb_first_seq:A
                 */
                smp_rmb(); /* LMM(prb_first_seq:C) */
        }
index 4f4949700676239b645b34d438c7bbd8db8354ad..4c6411b3582dd4725b4e2772cf7c135971c0758f 100644 (file)
@@ -383,7 +383,7 @@ for ((s) = from; prb_read_valid(rb, s, r); (s) = (r)->info->seq + 1)
  *
  * This is a macro for conveniently iterating over a ringbuffer.
  * Note that @s may not be the sequence number of the record on each
- * iteration. For the sequence number, @r->info->seq should be checked.
+ * iteration. For the sequence number, @i->seq should be checked.
  *
  * Context: Any context.
  */