mbox series

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

Message ID 20220821113512.2056409-1-mail@conchuod.ie
Headers show
Series Add an asm-generic cpuinfo_op declaration | expand

Message

Conor Dooley Aug. 21, 2022, 11:35 a.m. UTC
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,
Conor.

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

Comments

Geert Uytterhoeven Aug. 22, 2022, 9:36 a.m. UTC | #1
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
Conor Dooley Aug. 22, 2022, 10:05 a.m. UTC | #2
On 22/08/2022 10:36, Geert Uytterhoeven wrote:
> On Sun, Aug 21, 2022 at 1:36 PM Conor Dooley <mail@conchuod.ie> wrote:
>>   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.

Hey Geert,
This is the sort of thing I was really hoping to hear, so fine by
me.. When you say "everywhere", I assume you mean in every arch
and not just the ones listed here that already have it in an arch
specific header?

Thanks,
Conor.
Geert Uytterhoeven Aug. 22, 2022, 10:45 a.m. UTC | #3
Hi Conor,

On Mon, Aug 22, 2022 at 12:05 PM <Conor.Dooley@microchip.com> wrote:
> On 22/08/2022 10:36, Geert Uytterhoeven wrote:
> > On Sun, Aug 21, 2022 at 1:36 PM Conor Dooley <mail@conchuod.ie> wrote:
> >>   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.
>
> This is the sort of thing I was really hoping to hear, so fine by
> me.. When you say "everywhere", I assume you mean in every arch
> and not just the ones listed here that already have it in an arch
> specific header?

Yes, above every user, to silence the sparse "foo was not
declared. Should it be static?" warnings.

Thanks!

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