[POWERPC] spufs: fix another off-by-one bug in spufs_mbox_read
authorArnd Bergmann <arnd@arndb.de>
Tue, 24 Oct 2006 16:01:42 +0000 (18:01 +0200)
committerPaul Mackerras <paulus@samba.org>
Wed, 25 Oct 2006 02:10:41 +0000 (12:10 +1000)
commit274cef5e9d0e494ad84dbc28513b0bb6e3d847ae
tree9d10487ca02ed71a9f95412d5ae949a44c15a37a
parentf6b301b89b7bf0bb872da4f37dc28240413cbae7
[POWERPC] spufs: fix another off-by-one bug in spufs_mbox_read

Currently, spufs_mbox_read transfers more bytes than requested on a
read.  If you ask for four bytes, you get eight.  This fixes it to
transfer the largest multiple of four bytes that is less than or equal
to the number you asked for.

Note: one nasty property of this file in spufs is that you can only
read multiples of four bytes in the first place, since there is no way
to atomically put back a few bytes into the hardware register.  Thus,
reading less than four bytes returns -EINVAL.  Asking for more than
four returns the largest possible multiple of four.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/cell/spufs/file.c