Re: [RFC PATCH v1 07/25] printk-rb: add functionality required by printk

From: Linus Torvalds
Date: Tue Feb 12 2019 - 12:16:01 EST


On Tue, Feb 12, 2019 at 6:30 AM John Ogness <john.ogness@xxxxxxxxxxxxx> wrote:
>
> + while (atomic_long_read(&rb->lost)) {
> + atomic_long_dec(&rb->lost);
> + rb->seq++;
> + }

This looks like crazy garbage. It's neither atomic nor sane.

Why isn't it something like

if (atomic_long_read(&rb->lost)) {
long lost = atomic_xchg(&rb->lost, 0);
rb->seq += lost;
}

instead?

Linus