From: Andrew Morton <akpm@linux-foundation.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Randy Dunlap <randy.dunlap@oracle.com>,
linux-kernel@vger.kernel.org, gcosta@redhat.com, lenb@kernel.org,
mingo@elte.hu, tglx@linutronix.de, ying.huang@intel.com,
Linux Arch Mailing List <linux-arch@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: + drivers-acpi-apei-erst-dbgc-get_useru64-doesnt-work-on-i386.patch added to -mm tree
Date: Wed, 11 Aug 2010 23:03:53 -0700 [thread overview]
Message-ID: <20100811230353.6cb87afd.akpm@linux-foundation.org> (raw)
In-Reply-To: <4C638140.1080202@zytor.com>
On Wed, 11 Aug 2010 22:06:08 -0700 "H. Peter Anvin" <hpa@zytor.com> wrote:
> On 08/11/2010 09:30 PM, Andrew Morton wrote:
> >
> > It occurs so rarely that it's probably not worth bothering about, IMO.
> >
>
> I think the real question is if we want people to convert:
>
> if (copy_from_user(foo, bar, sizeof *foo))
> return -EFAULT;
>
> ... into ...
>
> if (get_user(*foo, bar))
> return -EFAULT;
>
> ... or ...
>
> rv = get_user(*foo, bar);
> if (rv)
> return rv;
>
> ... where *foo is a structure type. It does have the advantage that a
> single API does everything, simple or not, but has the disadvantage that
> the partial-access semantics are now less explicit.
>
Well, anyone who does get_user() on a struct while expecting it to be
atomic gets to own both pieces. I think the problem here is
specifically u64/s64. These work on 64-bit but don't work on 32-bit.
Is the atomicity really a problem? If userspace updates the 64-bit
number while the kernel is copying it, the kernel gets a garbage
number. But so what? Userspace can feed the kernel garbage numbers in
lots of ways, and the kernel must be able to cope with it
appropriately.
<I suspect you can do get_user() on a 4-byte or 8-byte struct right now
and it'll work>
next prev parent reply other threads:[~2010-08-12 6:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <201008112336.o7BNaNEj020805@imap1.linux-foundation.org>
[not found] ` <20100811164310.a4790773.randy.dunlap@oracle.com>
[not found] ` <20100811173327.3ae325ff.akpm@linux-foundation.org>
2010-08-12 4:22 ` + drivers-acpi-apei-erst-dbgc-get_useru64-doesnt-work-on-i386.patch added to -mm tree H. Peter Anvin
2010-08-12 4:22 ` H. Peter Anvin
2010-08-12 4:30 ` Andrew Morton
2010-08-12 4:30 ` Andrew Morton
2010-08-12 4:42 ` H. Peter Anvin
2010-08-12 5:06 ` H. Peter Anvin
2010-08-12 6:03 ` Andrew Morton [this message]
2010-08-12 6:10 ` H. Peter Anvin
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=20100811230353.6cb87afd.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=gcosta@redhat.com \
--cc=hpa@zytor.com \
--cc=lenb@kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=randy.dunlap@oracle.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=ying.huang@intel.com \
/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).