From: Arnd Bergmann <arnd@arndb.de>
To: Arun Sharma <arun.sharma@intel.com>
Cc: "David S. Miller" <davem@redhat.com>, linux-arch@vger.kernel.org
Subject: Re: sys getdents64 needs compat wrapper ?
Date: Fri, 11 Jun 2004 17:09:34 +0200 [thread overview]
Message-ID: <200406111709.35146.arnd@arndb.de> (raw)
In-Reply-To: <40C4DA5E.8090700@intel.com>
[-- Attachment #1: Type: text/plain, Size: 1217 bytes --]
On maanantai 07 kesäkuu 2004 23:13, Arun Sharma wrote:
> This updated patch takes care of the __user problems that Dave
> pointed out. Regarding __put_user vs __copy_to_user, __put_user
> is more optimal on ia64 like Andrew already noted. I realize it's
> not optimal on all platforms. So I suggest that we apply the
> patch for now and try to build something that's optimal for all
> platforms in the future.
> + if (dirent) {
> + if ((__put_user(offset, (u32 __user *)&dirent->d_off))
> + || (__put_user(offset >> 32, ((u32 __user *)&dirent->d_off) + 1)))
> + goto efault;
> + }
I just realized your code is broken on big-endian architectures, so
we should either get back to __copy_to_user or find the optimal solution
now.
How about a {__,}{get,put}_user_unaligned() that gets defined per
architecture in one of these two ways:
/* put_user doesn't care about alignment */
#define put_user_unaligned(x,ptr) put_user(x,ptr)
/* put_user only works on aligned data */
#define put_user_unaligned(x,ptr) ({ \
__typeof__(*(ptr)) __x = (x); \
copy_to_user(ptr, &__x, sizeof(*(ptr))) ? -EFAULT : 0; \
})
Arnd <><
[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2004-06-11 15:11 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-20 21:06 =?iso-8859-1?Q?Re:_sys_getdents64_needs_compat_wrapper_??= Arnd Bergmann
2004-06-05 0:16 ` =?iso-8859-1?Q?Re:_sys_getdents64_needs_compat_wrapper_??= Arun Sharma
2004-06-05 0:28 ` sys getdents64 needs compat wrapper ? David S. Miller
2004-06-07 21:13 ` Arun Sharma
2004-06-07 21:58 ` David S. Miller
2004-06-11 15:09 ` Arnd Bergmann [this message]
2004-06-14 18:15 ` Arun Sharma
2004-06-17 22:28 ` Arun Sharma
2004-06-17 23:36 ` Arnd Bergmann
2004-06-18 0:56 ` Arun Sharma
2004-06-18 17:05 ` Arun Sharma
2004-06-20 21:50 ` Arnd Bergmann
2004-06-22 18:21 ` Arun Sharma
-- strict thread matches above, loose matches on Subject: below --
2004-06-05 14:52 =?iso-8859-1?Q?Re:_Re:_Re:_sys_getdents64_needs_compat_wrapper_??= Arnd Bergmann
2004-06-05 18:41 ` sys getdents64 needs compat wrapper ? Andrew Morton
2004-06-05 19:31 ` David S. Miller
2004-05-20 18:32 sys_getdents64 " Arun Sharma
2004-05-20 20:58 ` David S. Miller
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=200406111709.35146.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=arun.sharma@intel.com \
--cc=davem@redhat.com \
--cc=linux-arch@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.