On Sat, May 08, 2004 at 09:18:22AM +0200, Ralf Baechle wrote: > On Fri, May 07, 2004 at 06:10:31PM -0700, Jun Sun wrote: > > > I got a bunch of segfaults which are due to HAS_LLSCD cpu operating > > on a semaphore which is aligned along 4-byte boundary instead of the > > desired 8-byte boundary. > > Dare to give a complete version number? I've dumped 2.4 on all my systems > months ago and never have seen this problem except with slab debugging > enabled - but that side effect of slab debugging is known since years. > Kernel is yesterday's CVS. gcc is 3.3.1. config is ddb5477. No additional patch. See below. In any case if you look at the uart code you should see there is a problem already. 'state' is allocated through kmalloc() which only gives 4-byte alignement. The only puzzling thing is that why this did not show up before. Maybe kmalloc() was giving 8-byte aligned block? VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 6 EXTRAVERSION =-rc3 NAME=Zonked Quokka [jsun@orion linux]$ mipsel-linux-gcc -v Reading specs from /opt/mvl-installs/pe040201/montavista/pro/devkit/mips/fp_le/bin/../lib/gcc-lib/mipsel-hardhat-linux/3.3.1/specs Configured with: ../configure --host=i686-pc-linux-gnu --target=mipsel-hardhat-linux --prefix=/opt/montavista/devkit/mips/fp_le --exec-prefix=/opt/montavista/devkit/mips/fp_le --bindir=/opt/montavista/devkit/mips/fp_le/bin --sbindir=/opt/montavista/devkit/mips/fp_le/sbin --sysconfdir=/opt/montavista/devkit/mips/fp_le/etc --datadir=/opt/montavista/devkit/mips/fp_le/share --includedir=/opt/montavista/devkit/mips/fp_le/include --libdir=/opt/montavista/devkit/mips/fp_le/lib --libexecdir=/opt/montavista/devkit/mips/fp_le/libexec --localstatedir=/opt/montavista/devkit/mips/fp_le/var --sharedstatedir=/opt/montavista/devkit/mips/fp_le/share --mandir=/opt/montavista/devkit/mips/fp_le/man --infodir=/opt/montavista/devkit/mips/fp_le/info --program-transform-name=s,^,mips_fp_le-, --enable-cross --with-sysroot=/opt/montavista/devkit/mips/fp_le/target --enable-shared --enable-languages=c,c++ --enable-__cxa_atexit --enable-threads=posix --disable-multilib --with-gxx-include-dir='$'{gcc_tooldir}/../target/usr/include/c++/3.3.1 Thread model: posix gcc version 3.3.1 (MontaVista 3.3.1-3.0.10.0300532 2003-12-24) Jun