Re: [PATCH v4 6/6] percpu/x86: Enable strict percpu checks via named AS qualifiers
From: Uros Bizjak
Date: Wed Apr 09 2025 - 07:45:05 EST
On Wed, Apr 9, 2025 at 1:07 PM Jiri Slaby <jirislaby@xxxxxxxxxx> wrote:
>
> On 27. 01. 25, 17:05, Uros Bizjak wrote:
> > This patch declares percpu variables in __seg_gs/__seg_fs named AS
> > and keeps them named AS qualified until they are dereferenced with
> > percpu accessor. This approach enables various compiler check
> > for cross-namespace variable assignments.
>
> So this causes modpost to fail to version some symbols:
>
> > WARNING: modpost: EXPORT symbol "xen_vcpu_id" [vmlinux] version generation failed, symbol will not be versioned.
> > Is "xen_vcpu_id" prototyped in <asm/asm-prototypes.h>?
> > WARNING: modpost: EXPORT symbol "irq_stat" [vmlinux] version generation failed, symbol will not be versioned.
> > Is "irq_stat" prototyped in <asm/asm-prototypes.h>?
> > WARNING: modpost: EXPORT symbol "fred_rsp0" [vmlinux] version generation failed, symbol will not be versioned.
> > Is "fred_rsp0" prototyped in <asm/asm-prototypes.h>?
> > WARNING: modpost: EXPORT symbol "cpu_dr7" [vmlinux] version generation failed, symbol will not be versioned.
> > Is "cpu_dr7" prototyped in <asm/asm-prototypes.h>?
> > WARNING: modpost: EXPORT symbol "cpu_tss_rw" [vmlinux] version generation failed, symbol will not be versioned.
> > Is "cpu_tss_rw" prototyped in <asm/asm-prototypes.h>?
> > WARNING: modpost: EXPORT symbol "__tss_limit_invalid" [vmlinux] version generation failed, symbol will not be versioned.
> > Is "__tss_limit_invalid" prototyped in <asm/asm-prototypes.h>?
> > WARNING: modpost: EXPORT symbol "irq_fpu_usable" [vmlinux] version generation failed, symbol will not be versioned.
> > Is "irq_fpu_usable" prototyped in <asm/asm-prototypes.h>?
> > WARNING: modpost: EXPORT symbol "cpu_info" [vmlinux] version generation failed, symbol will not be versioned.
> > Is "cpu_info" prototyped in <asm/asm-prototypes.h>?
> > WARNING: modpost: EXPORT symbol "gdt_page" [vmlinux] version generation failed, symbol will not be versioned.
> > Is "gdt_page" prototyped in <asm/asm-prototypes.h>?
> > ...
>
> That happens both with 6.15-rc1 and today's -next. Ideas?
https://lore.kernel.org/lkml/20250404102535.705090-1-ubizjak@xxxxxxxxx/
Uros.