Re: linux-next: Tree for Jul 14

From: Nathan Chancellor
Date: Thu Jul 14 2022 - 17:24:19 EST


Dropping the next list and Stephen as these issues are likely present on
mainline as well.

On Thu, Jul 14, 2022 at 07:26:27PM +0100, Sudip Mukherjee wrote:
> Hi Nathan,
>
> On Thu, Jul 14, 2022 at 5:29 PM Nathan Chancellor <nathan@xxxxxxxxxx> wrote:
> >
> > On Thu, Jul 14, 2022 at 05:21:32PM +0100, Sudip Mukherjee wrote:
> > > Hi Nathan,
> > >
> > > On Thu, Jul 14, 2022 at 5:05 PM Nathan Chancellor <nathan@xxxxxxxxxx> wrote:
> > > >
> > > > Hi Sudip,
> > > >
> > > > On Thu, Jul 14, 2022 at 12:07:06PM +0100, Sudip Mukherjee (Codethink) wrote:
> > > > > Hi Stephen,
> > > > >
> > > > > On Thu, Jul 14, 2022 at 06:55:14PM +1000, Stephen Rothwell wrote:
> > > > > > Hi all,
> > > > > >
> > > > > > Changes since 20220713:
> > > > >
> > > > > Build failures on next-20220714:
> > > >
> > > > <snip>
> > > >
>
> <snip>
>
> >
> > Sure! I am not sure that we have tested mips or powerpc allmodconfig now
> > that I am thinking about it but we'll certainly take a look at any
> > issues that come from them and see what we can do.
>
> The build errors from powerpc allmodconfig with clang:

Thanks for testing!

> 1)
> Error: External symbol 'memset' referenced from prom_init.c

Good to know this is not clang specific.

> 2)
> drivers/clk/qcom/gpucc-sm8350.c:111:2: error: initializer element is
> not a compile-time constant
> gpu_cc_parent,
> ^~~~~~~~~~~~~
> drivers/clk/qcom/gpucc-sm8350.c:126:2: error: initializer element is
> not a compile-time constant
> gpu_cc_parent,
> ^~~~~~~~~~~~~
> 3)
> sound/soc/intel/avs/path.c:815:18: error: stack frame size (2672)
> exceeds limit (2048) in 'avs_path_create'
> [-Werror,-Wframe-larger-than]
> struct avs_path *avs_path_create(struct avs_dev *adev, u32 dma_id,
> ^

Right so this one is the one I linked early that impacts arm64 (also
arm and riscv). It appears to be related to KASAN + FORTIFY_SOURCE and I
have a diff that works but I am not sure if it is acceptable. I guess I
should just submit it and see.

> 4)
> drivers/net/ethernet/mellanox/mlx4/main.c:3332:12: error: stack frame
> size (2128) exceeds limit (2048) in 'mlx4_load_one'
> [-Werror,-Wframe-larger-than]
> static int mlx4_load_one(struct pci_dev *pdev, int pci_dev_data,
> ^
> 5)
> In file included from drivers/scsi/BusLogic.c:51:
> drivers/scsi/FlashPoint.c:1712:12: error: stack frame size (2896)
> exceeds limit (2048) in 'FlashPoint_HandleInterrupt'
> [-Werror,-Wframe-larger-than]
> static int FlashPoint_HandleInterrupt(void *pcard)
> ^
> 6)
> drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c:1093:12: error: stack frame size
> (2128) exceeds limit (2048) in 'vcn_v3_0_start'
> [-Werror,-Wframe-larger-than]

I don't see any large variables on the stack in these functions so I am
guessing we are just getting murdered by inlining in combination with
KASAN instrumentation, as KASAN gets turned on by allmodconfig.
Unfortunately, this has been an issue for a long time:

https://github.com/ClangBuiltLinux/linux/issues/39

It has not been as bad with CONFIG_KASAN_STACK force disabled for clang
but it is still there for certain architectures, namely ARCH=arm. I
would be curious to see if all those -Wframe-larger-than instances
disappear with CONFIG_KASAN disabled.

Cheers,
Nathan