Re: [PATCH v3 3/7] drivers/acpi: convert seqno to use seqnum_ops

From: Rafael J. Wysocki
Date: Thu Feb 04 2021 - 09:07:52 EST


Hi Shuah,

First off, please indicate the component in the subject, for example:

"ACPI: extlog: convert seqno to use seqnum_ops"

On Wed, Feb 3, 2021 at 7:12 PM Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx> wrote:
>
> Sequence Number api provides interfaces for unsigned atomic up counters
> leveraging atomic_t and atomic64_t ops underneath.
>
> Convert seqno atomic counter to use seqnum_ops.

Apart from the above, it would be good to say why the change is an improvement.

It looks like the rationale is that using struct seqnum32 would allow
tools to easily detect the usage of sequence numbers, but is there
anything else in this particular case?

> Signed-off-by: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>
> ---
> drivers/acpi/acpi_extlog.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
> index 72f1fb77abcd..16a4928645a1 100644
> --- a/drivers/acpi/acpi_extlog.c
> +++ b/drivers/acpi/acpi_extlog.c
> @@ -12,6 +12,7 @@
> #include <linux/ratelimit.h>
> #include <linux/edac.h>
> #include <linux/ras.h>
> +#include <linux/seqnum_ops.h>
> #include <asm/cpu.h>
> #include <asm/mce.h>
>
> @@ -93,8 +94,7 @@ static struct acpi_hest_generic_status *extlog_elog_entry_check(int cpu, int ban
> static void __print_extlog_rcd(const char *pfx,
> struct acpi_hest_generic_status *estatus, int cpu)
> {
> - static atomic_t seqno;
> - unsigned int curr_seqno;
> + static struct seqnum32 seqno;
> char pfx_seq[64];
>
> if (!pfx) {
> @@ -103,8 +103,8 @@ static void __print_extlog_rcd(const char *pfx,
> else
> pfx = KERN_ERR;
> }
> - curr_seqno = atomic_inc_return(&seqno);
> - snprintf(pfx_seq, sizeof(pfx_seq), "%s{%u}", pfx, curr_seqno);
> + snprintf(pfx_seq, sizeof(pfx_seq), "%s{%u}", pfx,
> + seqnum32_inc(&seqno));
> printk("%s""Hardware error detected on CPU%d\n", pfx_seq, cpu);
> cper_estatus_print(pfx_seq, estatus);
> }
> --
> 2.27.0
>