linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: David Daney <ddaney.cavm@gmail.com>,
	Ralf Baechle <ralf@linux-mips.org>,
	"H.J. Lu" <hjl.tools@gmail.com>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	mingo@kernel.org, tglx@linutronix.de
Subject: Re: [PATCH 08/10] Use __kernel_ulong_t in struct msqid64_ds
Date: Thu, 17 May 2012 17:22:24 -0700	[thread overview]
Message-ID: <CA+55aFwyem9KoPMhYkE-vcaUDqgP9g7arHbmD-mMHMSKXaRBOw@mail.gmail.com> (raw)
In-Reply-To: <4FB59474.2020505@zytor.com>

On Thu, May 17, 2012 at 5:14 PM, H. Peter Anvin <hpa@zytor.com> wrote:
>
> The "logical" thing to do here seems to just use __s64, but I have no
> idea if that would suddenly break bigendian architectures...

Well, it would break the case of a 32-bit kernel and 32-bit user land.

So the thing is, that the __BITS_PER_LONG games there currently work
for two cases:

 - when the kernel and user land agree on either 32-bit or 64-bit
(this is probably the common MIPS/PPC case)

 - when the kernel is 64-bit, user-land is 32-bit, and we're little-endian

Using __s64 would actually break old 32-bit big-endian cases, because
the 32-bit binaries would continue to read the first 32 bits, while a
32-bit kernel would consider the first 32 bits to be the *high* bits
of the __s64 value.

That's why I think it's unfixable. It started out broken, and I
presume that 32-bit user land on a 64-bit MIPS/PPC thing either do not
work, or there's some compat crap (like special user-land headers)
fixing things up. Or they just don't use that buggered msqid64_ds
thing at all.

                             Linus

  parent reply	other threads:[~2012-05-18  0:22 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-17 22:13 [RFC PATCH 00/10] Use __kernel_[u]long_t for x32 user space compatibility H.J. Lu
2012-05-17 22:13 ` H.J. Lu
2012-05-17 22:13 ` [PATCH 01/10] Use __kernel_long_t in struct timex H.J. Lu
2012-05-17 22:13   ` H.J. Lu
2012-05-17 22:32   ` Linus Torvalds
2012-05-17 22:41     ` H. Peter Anvin
2012-05-17 22:50       ` H. Peter Anvin
2012-05-17 22:50         ` H. Peter Anvin
2012-05-17 22:50       ` Linus Torvalds
2012-05-17 22:55         ` H. Peter Anvin
2012-05-17 22:58           ` Linus Torvalds
2012-05-17 22:56         ` Linus Torvalds
2012-05-17 22:57           ` H. Peter Anvin
2012-05-17 23:51           ` David Daney
2012-05-17 22:13 ` [PATCH 02/10] Use __kernel_ulong_t in struct shm_info H.J. Lu
2012-05-17 22:13 ` [PATCH 03/10] Use __kernel_[u]long_t in linux/resource.h H.J. Lu
2012-05-17 22:13   ` H.J. Lu
2012-05-17 22:13 ` [PATCH 04/10] Use __kernel_long_t in struct msgbuf H.J. Lu
2012-05-17 22:13   ` H.J. Lu
2012-05-17 22:13 ` [PATCH 05/10] Use __kernel_long_t in struct mq_attr H.J. Lu
2012-05-17 22:13   ` H.J. Lu
2012-05-17 22:13 ` [PATCH 06/10] Use __kernel_ulong_t in x86 struct semid64_ds H.J. Lu
2012-05-17 22:13 ` [PATCH 07/10] Use __kernel_ulong_t in struct shmid64_ds/shminfo64 H.J. Lu
2012-05-17 22:13   ` H.J. Lu
2012-05-17 22:13 ` [PATCH 08/10] Use __kernel_ulong_t in struct msqid64_ds H.J. Lu
2012-05-17 22:13   ` H.J. Lu
2012-05-17 23:51   ` H. Peter Anvin
2012-05-18  0:07     ` Linus Torvalds
2012-05-18  0:07       ` Linus Torvalds
2012-05-18  0:14       ` H. Peter Anvin
2012-05-18  0:14         ` H. Peter Anvin
2012-05-18  0:22         ` Linus Torvalds [this message]
2012-05-18  0:27           ` H. Peter Anvin
2012-05-18  0:41           ` Linus Torvalds
2012-05-18 21:31             ` Arnd Bergmann
2012-05-18 21:41               ` H. Peter Anvin
2012-05-18 21:58                 ` Arnd Bergmann
2012-05-18 22:08                   ` H. Peter Anvin
2012-05-19  7:56                     ` Arnd Bergmann
2012-05-19 14:35                       ` Al Viro
2012-05-18 11:44           ` David Howells
2012-05-18  0:29         ` David Daney
2012-05-18  0:31           ` H. Peter Anvin
2012-05-18  0:45             ` David Daney
2012-05-18  0:37           ` H. Peter Anvin
2012-05-18 15:03             ` Chris Metcalf
2012-05-18  3:21     ` H. Peter Anvin
2012-05-18  3:39       ` H.J. Lu
2012-05-18  3:43         ` H.J. Lu
2012-05-18  3:47           ` H.J. Lu
2012-05-18  3:49         ` Linus Torvalds
2012-05-18  3:55           ` H. Peter Anvin
2012-05-18  3:59             ` H.J. Lu
2012-05-18  4:05               ` Linus Torvalds
2012-05-18  4:13                 ` H.J. Lu
2012-05-18 21:21                   ` Arnd Bergmann
2012-05-19 23:47                     ` H. Peter Anvin
2012-05-20  1:32                       ` H.J. Lu
2012-05-20  1:32                         ` H.J. Lu
2012-05-20  2:08                         ` H. Peter Anvin
2012-05-20  2:08                           ` H. Peter Anvin
2012-05-18  3:56           ` H.J. Lu
2012-05-18 21:06             ` H. Peter Anvin
2012-05-18 11:53           ` David Howells
2012-05-18 12:06             ` H.J. Lu
2012-05-18 12:06               ` H.J. Lu
2012-05-17 22:13 ` [PATCH 09/10] Use __kernel_ulong_t in struct ipc64_perm H.J. Lu
2012-05-17 22:13   ` H.J. Lu
2012-05-17 22:13 ` [PATCH 10/10] Use __kernel_[u]long_t in x86-64 struct stat H.J. Lu
2012-05-17 23:07 ` [RFC PATCH 00/10] Use __kernel_[u]long_t for x32 user space compatibility David Daney
2012-05-17 23:07   ` David Daney
2012-05-17 23:11   ` H. Peter Anvin
2012-05-17 23:25     ` David Daney
2012-05-17 23:31       ` H. Peter Anvin
2012-05-18  0:19 ` Mike Frysinger
2012-05-18  0:21   ` H. Peter Anvin
2012-05-18  0:38     ` Mike Frysinger

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=CA+55aFwyem9KoPMhYkE-vcaUDqgP9g7arHbmD-mMHMSKXaRBOw@mail.gmail.com \
    --to=torvalds@linux-foundation.org \
    --cc=ddaney.cavm@gmail.com \
    --cc=hjl.tools@gmail.com \
    --cc=hpa@zytor.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=ralf@linux-mips.org \
    --cc=tglx@linutronix.de \
    /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).