It looks like MIPS has a private definition of struct msqid64_ds, as do most other architectures; the MIPS one is completely broken for user space usages as it uses CONFIG_* macros: #if defined(CONFIG_32BIT) && !defined(CONFIG_CPU_LITTLE_ENDIAN) unsigned long __unused2; #endif __kernel_time_t msg_rtime; /* last msgrcv time */ #if defined(CONFIG_32BIT) && defined(CONFIG_CPU_LITTLE_ENDIAN) unsigned long __unused2; #endif It looks like the only users of asm-generic here are: arch/microblaze/include/asm/msgbuf.h:#include <asm-generic/msgbuf.h> arch/score/include/asm/msgbuf.h:#include <asm-generic/msgbuf.h> arch/sh/include/asm/msgbuf.h:#include <asm-generic/msgbuf.h> arch/x86/include/asm/msgbuf.h:#include <asm-generic/msgbuf.h> ... and unless I'm mistaken, x86 is the only one of those which isn't 32 bits only, which explains the reason it "works"... -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html