From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Chase Douglas <cndougla@linux.vnet.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] powerpc: Add compat_sys_truncate
Date: Mon, 27 Jul 2009 10:37:13 +1000 [thread overview]
Message-ID: <1248655033.28464.26.camel@pasglop> (raw)
In-Reply-To: <8349EEAE-34B9-4D7E-837F-1320057E59D2@linux.vnet.ibm.com>
On Thu, 2009-07-23 at 11:12 -0400, Chase Douglas wrote:
> The truncate syscall has a signed long parameter, so when using a 32-
> bit userspace with a 64-bit kernel the argument is zero-extended
> instead of sign-extended. Adding the compat_sys_truncate function
> fixes the issue.
>
> This was noticed during an LSB truncate test failure. The test was
> checking for the correct error number set when truncate is called with
> a length of -1. The test can be found at:
Hi Chase !
Unfortunately, your patch have been mangled by your mailer
our your mail gateway in about every possible way (word
wrapped, tabs and whitespace damaged etc...)
I'll hand apply this time around but please, look into
fixing your setup :-)
Cheers,
Ben.
> http://bzr.linuxfoundation.org/lsb/devel/runtime-test?cmd=inventory;rev=stewb%40linux-foundation.org-20090626205411-sfb23cc0tjj7jzgm;path=modules/vsx-pcts/tset/POSIX.os/files/truncate/
>
> Signed-off-by: Chase Douglas <cndougla@linux.vnet.ibm.com>
>
> diff --git a/arch/powerpc/include/asm/systbl.h b/arch/powerpc/include/
> asm/systbl.h
> index 370600c..3cca167 100644
> --- a/arch/powerpc/include/asm/systbl.h
> +++ b/arch/powerpc/include/asm/systbl.h
> @@ -95,7 +95,7 @@ SYSCALL(reboot)
> SYSX(sys_ni_syscall,compat_sys_old_readdir,sys_old_readdir)
> SYSCALL_SPU(mmap)
> SYSCALL_SPU(munmap)
> -SYSCALL_SPU(truncate)
> +COMPAT_SYS_SPU(truncate)
> SYSCALL_SPU(ftruncate)
> SYSCALL_SPU(fchmod)
> SYSCALL_SPU(fchown)
> diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/
> sys_ppc32.c
> index bb1cfcf..da9a65b 100644
> --- a/arch/powerpc/kernel/sys_ppc32.c
> +++ b/arch/powerpc/kernel/sys_ppc32.c
> @@ -343,6 +343,12 @@ off_t ppc32_lseek(unsigned int fd, u32 offset,
> unsigned int origin)
> return sys_lseek(fd, (int)offset, origin);
> }
>
> +long compat_sys_truncate(const char __user * path, u32 length)
> +{
> + /* sign extend length */
> + return sys_truncate(path, (int)length);
> +}
> +
> /* Note: it is necessary to treat bufsiz as an unsigned int,
> * with the corresponding cast to a signed int to insure that the
> * proper conversion (sign extension) between the register
> representation of a signed int (msr in 32-bit mode)
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
next prev parent reply other threads:[~2009-07-27 0:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-23 15:12 [PATCH] powerpc: Add compat_sys_truncate Chase Douglas
2009-07-27 0:37 ` Benjamin Herrenschmidt [this message]
2009-07-27 2:23 ` Chase Douglas
2009-07-27 4:34 ` Benjamin Herrenschmidt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1248655033.28464.26.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=cndougla@linux.vnet.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).