The return value of do_sys32_msgsnd() is off by 4. This seems to be a bug inherited from sparc64, fixed in the x86_64 tree in 2.5. Please apply to both 2.4 and 2.5 trees. -Arun