Re: [PATCH 0/6] Add an asm-generic cpuinfo_op declaration

Geert Uytterhoeven
2022-08-22T09:37:11Z

Hi Conor,

On Sun, Aug 21, 2022 at 1:36 PM Conor Dooley <mail@conchuod.ie> wrote:
> From: Conor Dooley <conor.dooley@microchip.com>
>
> RISC-V is missing a prototype for cpuinfo_op. Rather than adding yet
> another `extern const struct seq_operations cpuinfo_op;` to an arch
> specific header file, create an asm-generic variant and migrate the
> existing arch variants there too. Obv. there are other archs that use
> cpuinfo_op but don't declare it and surely also have the same warning?
> I went for the minimum change here, but would be perfectly happy to
> extend the change to all archs if this change is worthwhile. Or just
> make a header in arch/riscv, any of the three work for me!
>
> If this isn't the approach I should've gone for, any direction would
> be great :) I tried pushing this last weekend to get LKP to test it but
> I got neither a build success nor a build failure email from it, so
> I figured I may as well just send the patches..
>
> I wasn't too sure if this could be a single patch, so I split it out
> into a patch fixing the issue on RISC-V & copy-paste patches for each
> arch that I moved.

Thanks for your series!

> Conor Dooley (6):
> asm-generic: add a cpuinfo_ops definition in shared code
> microblaze: use the asm-generic version of cpuinfo_op
> s390: use the asm-generic version of cpuinfo_op
> sh: use the asm-generic version of cpuinfo_op
> sparc: use the asm-generic version of cpuinfo_op
> x86: use the asm-generic version of cpuinfo_op
>
> arch/microblaze/include/asm/processor.h | 2 +-
> arch/riscv/include/asm/processor.h | 1 +
> arch/s390/include/asm/processor.h | 2 +-
> arch/sh/include/asm/processor.h | 2 +-
> arch/sparc/include/asm/cpudata.h | 3 +--
> arch/x86/include/asm/processor.h | 2 +-
> include/asm-generic/processor.h | 7 +++++++
> 7 files changed, 13 insertions(+), 6 deletions(-)
> create mode 100644 include/asm-generic/processor.h

I was a bit surprised not to find fs/proc/cpuinfo.c in the diffstat
above. That file already has an external declaration for cpuinfo_op,
and uses it rather unconditionally (that is, if CONFIG_PROC_FS=y)
on all architectures.

So I think you can just move that to include/linux/processor.h, include
the latter everywhere, and drop all architecture-specific copies.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds