Re: Kernel Oops on alpha with kernel version >=6.9.x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Magnus,

On Fri, 2024-12-06 at 16:39 +0100, Magnus Lindholm wrote:
> It looks like the variable used as loop counter is the value put on the stack
> overwriting the return value for scsi_host_dev_release. When adding
> a reference to the address of this variable or when it is declared
> volatile, stack
> corruption does NOT occur.
> 
> When examining the disassembly of the code generated from kernel/rcu/tree.o
> the most significant difference I can see is that in the case of a
> corrupted stack
> the frame pointer register $fp is used to hold a reference to the loop
> count variable
> but in the case with no stack corruption a regular "saved register" is
> used for the
> reference. Is it possible that the frame pointer is somehow altered
> during the execution
> of the code? not really sure how linux/alpha/gcc treats the frame pointer. I've
> tried altering -fomit-frame-pointer/-f-no-omit-frame-pointer but so
> far not getting
> anywhere with that...

Could this maybe a compiler bug? What about building the kernel with an older GCC version from [1]?

Adrian

> [1] https://mirrors.edge.kernel.org/pub/tools/crosstool/

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux