Re: [PATCH 5.10 000/317] 5.10.219-rc1 review

From: Greg Kroah-Hartman
Date: Sat Jun 15 2024 - 07:00:25 EST


On Thu, Jun 13, 2024 at 03:35:23PM -0700, Nathan Chancellor wrote:
> On Thu, Jun 13, 2024 at 08:43:41PM +0530, Naresh Kamboju wrote:
> > On Thu, 13 Jun 2024 at 17:43, Greg Kroah-Hartman
> > <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> > >
> > > This is the start of the stable review cycle for the 5.10.219 release.
> > > There are 317 patches in this series, all will be posted as a response
> > > to this one. If anyone has any issues with these being applied, please
> > > let me know.
> > >
> > > Responses should be made by Sat, 15 Jun 2024 11:31:50 +0000.
> > > Anything received after that time might be too late.
> > >
> > > The whole patch series can be found in one patch at:
> > > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.219-rc1.gz
> > > or in the git tree and branch at:
> > > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
> > > and the diffstat can be found below.
> > >
> > > thanks,
> > >
> > > greg k-h
> >
> >
> > The following build errors are noticed on riscv with clang-18 toolchain
> > but gcc-12 builds pass.
> >
> > However, compared with older releases this is a build regression on
> > stable-rc 5.10.
> >
> > Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
> >
> > riscv:
> > defconfig - gcc-12 - PASS
> > defconfig - clang-18 - FAILED
> >
> > Build error:
> > ------
> > arch/riscv/kernel/stacktrace.c:75:52: error: incompatible pointer to
> > integer conversion passing 'void *' to parameter of type 'unsigned
> > long' [-Wint-conversion]
> > 75 | if
> > (unlikely(!__kernel_text_address(pc) || !fn(arg, pc)))
> > |
> > ^~~
> > include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
> > 78 | # define unlikely(x) __builtin_expect(!!(x), 0)
> > | ^
> > arch/riscv/kernel/stacktrace.c:75:57: error: incompatible integer to
> > pointer conversion passing 'unsigned long' to parameter of type 'void
> > *' [-Wint-conversion]
> > 75 | if
> > (unlikely(!__kernel_text_address(pc) || !fn(arg, pc)))
> > |
> > ^~
> > include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
> > 78 | # define unlikely(x) __builtin_expect(!!(x), 0)
> > | ^
> > 2 errors generated.
> > make[3]: *** [scripts/Makefile.build:286:
> > arch/riscv/kernel/stacktrace.o] Error 1
>
> It looks like either commit 9dd97064e21f ("riscv: Make stack walk
> callback consistent with generic code") should be applied with the
> straight from upstream copy of commit 7ecdadf7f8c6 ("riscv: stacktrace:
> Make walk_stackframe cross pt_regs frame") or the latter commit's 5.10
> backport should be modified to match the linux-5.10.y order of the
> arguments:
>
> diff --git a/arch/riscv/kernel/stacktrace.c b/arch/riscv/kernel/stacktrace.c
> index c38b20caad7c..010e4c881c8b 100644
> --- a/arch/riscv/kernel/stacktrace.c
> +++ b/arch/riscv/kernel/stacktrace.c
> @@ -72,7 +72,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
> pc = ftrace_graph_ret_addr(current, NULL, frame->ra,
> &frame->ra);
> if (pc == (unsigned long)ret_from_exception) {
> - if (unlikely(!__kernel_text_address(pc) || !fn(arg, pc)))
> + if (unlikely(!__kernel_text_address(pc) || !fn(pc, arg)))
> break;
>
> pc = ((struct pt_regs *)sp)->epc;

I'll just drop these riscv patches from 5.10.y, as odds are, no one is
using that arch in that old tree anymore. And if they are, they can
send working patches :)

thanks,

greg k-h