All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Landley <rob@landley.net>
To: qemu-devel@nongnu.org
Cc: Blue Swirl <blauwirbel@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Artyom Tarasenko <atar4qemu@googlemail.com>,
	linux-kernel@vger.kernel.org, sam@ravnborg.org,
	davem@davemloft.net
Subject: Commit 085219f79cad broke Sparc-32 back in 2.6.28.
Date: Sun, 21 Feb 2010 10:25:09 -0600	[thread overview]
Message-ID: <201002211025.11588.rob@landley.net> (raw)
In-Reply-To: <201002201712.23628.rob@landley.net>

On Saturday 20 February 2010 17:12:22 Rob Landley wrote:
> On Saturday 20 February 2010 15:59:31 Blue Swirl wrote:
> > > I've got 2.6.32 booting to a command prompt (albeit with serial console
> > > and intentionall restricted set of hardware).  But then it misbehaves.
> > >
> > >  I'll try getting 2.6.18 to build with a known .config, and then bisect
> > > forward if that seems to work...
> >
> > Good plan. Bisecting backwards could be interesting too, to find out
> > which releases are actually working out of the box.
>
> I started by iterating through the release versions.  It's working up
> through 2.6.28, then 2.6.29 has the out of memory error in my init script.
>
> Bisecting now...
>
> Rob

And the commit that broke it bisects to:

085219f79cad89291699bd2bfb21c9fdabafe65f is first bad commit
commit 085219f79cad89291699bd2bfb21c9fdabafe65f
Author: Sam Ravnborg <sam@ravnborg.org>
Date:   Fri Jan 2 18:47:34 2009 -0800

    sparc32: use proper types in struct stat
    
    Like sparc64 use proper types in struct stat
    
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

This commit breaks stat and makes sparc32 essentially unusable.  It changes 
the size of the various types in stat.h, and means that if you "mount -t tmpfs 
/tmp /tmp" and then try to ls /tmp, ls dies with a memory allocation error.

I've confirmed that reverting it fixes the problem.

Looking at the actual diff, here's the hunk that causes problems:

--- a/arch/sparc/include/asm/stat_32.h
+++ b/arch/sparc/include/asm/stat_32.h
        short           st_nlink;
-       unsigned short  st_uid;
-       unsigned short  st_gid;
+       uid_t           st_uid;
+       gid_t           st_gid;

The symptom (in my uClibc+busybox root filesystem) is:

/ # mount -t tmpfs /tmp /tmp
/ # ls -l /tmp
ls: can't open '/tmp': Cannot allocate memory
total 0

The problem is that both uid_t and gid_t are "int" instead of "short".  This 
patch changes the size of those types.  (I note that this is apparently a 
known issue, there's __compat_uid_t and friends in the sparc asm directory...)

Rob
-- 
Latency is more important than throughput. It's that simple. - Linus Torvalds

WARNING: multiple messages have this Message-ID (diff)
From: Rob Landley <rob@landley.net>
To: qemu-devel@nongnu.org
Cc: linux-kernel@vger.kernel.org, Blue Swirl <blauwirbel@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	sam@ravnborg.org, davem@davemloft.net,
	Artyom Tarasenko <atar4qemu@googlemail.com>
Subject: [Qemu-devel] Commit 085219f79cad broke Sparc-32 back in 2.6.28.
Date: Sun, 21 Feb 2010 10:25:09 -0600	[thread overview]
Message-ID: <201002211025.11588.rob@landley.net> (raw)
In-Reply-To: <201002201712.23628.rob@landley.net>

On Saturday 20 February 2010 17:12:22 Rob Landley wrote:
> On Saturday 20 February 2010 15:59:31 Blue Swirl wrote:
> > > I've got 2.6.32 booting to a command prompt (albeit with serial console
> > > and intentionall restricted set of hardware).  But then it misbehaves.
> > >
> > >  I'll try getting 2.6.18 to build with a known .config, and then bisect
> > > forward if that seems to work...
> >
> > Good plan. Bisecting backwards could be interesting too, to find out
> > which releases are actually working out of the box.
>
> I started by iterating through the release versions.  It's working up
> through 2.6.28, then 2.6.29 has the out of memory error in my init script.
>
> Bisecting now...
>
> Rob

And the commit that broke it bisects to:

085219f79cad89291699bd2bfb21c9fdabafe65f is first bad commit
commit 085219f79cad89291699bd2bfb21c9fdabafe65f
Author: Sam Ravnborg <sam@ravnborg.org>
Date:   Fri Jan 2 18:47:34 2009 -0800

    sparc32: use proper types in struct stat
    
    Like sparc64 use proper types in struct stat
    
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

This commit breaks stat and makes sparc32 essentially unusable.  It changes 
the size of the various types in stat.h, and means that if you "mount -t tmpfs 
/tmp /tmp" and then try to ls /tmp, ls dies with a memory allocation error.

I've confirmed that reverting it fixes the problem.

Looking at the actual diff, here's the hunk that causes problems:

--- a/arch/sparc/include/asm/stat_32.h
+++ b/arch/sparc/include/asm/stat_32.h
        short           st_nlink;
-       unsigned short  st_uid;
-       unsigned short  st_gid;
+       uid_t           st_uid;
+       gid_t           st_gid;

The symptom (in my uClibc+busybox root filesystem) is:

/ # mount -t tmpfs /tmp /tmp
/ # ls -l /tmp
ls: can't open '/tmp': Cannot allocate memory
total 0

The problem is that both uid_t and gid_t are "int" instead of "short".  This 
patch changes the size of those types.  (I note that this is apparently a 
known issue, there's __compat_uid_t and friends in the sparc asm directory...)

Rob
-- 
Latency is more important than throughput. It's that simple. - Linus Torvalds

  reply	other threads:[~2010-02-21 16:36 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-11 11:20 [Qemu-devel] qemu-ppc can't run static uClibc binaries Rob Landley
2010-02-11 12:32 ` Alexander Graf
2010-02-14  8:36   ` Rob Landley
2010-02-14 14:41     ` Alexander Graf
2010-02-15 11:10       ` Rob Landley
2010-02-15 11:19         ` Alexander Graf
2010-02-15 12:58           ` Rob Landley
2010-02-15 13:01             ` Alexander Graf
2010-02-16 18:31               ` Rob Landley
2010-02-16 18:36                 ` Alexander Graf
2010-02-16 19:14                   ` Rob Landley
2010-02-15 13:08             ` [Qemu-devel] " Michael S. Tsirkin
2010-02-16  0:52               ` Rob Landley
2010-02-16  9:31                 ` Alexander Graf
2010-02-16 18:14                   ` Rob Landley
2010-02-17  9:24                     ` Artyom Tarasenko
2010-02-17 15:45                       ` Paolo Bonzini
2010-02-17 18:55                         ` Rob Landley
2010-02-17 20:46                           ` Blue Swirl
2010-02-18 11:38                             ` Artyom Tarasenko
2010-02-18 13:17                               ` Rob Landley
2010-02-18 14:10                                 ` Artyom Tarasenko
2010-02-18 13:05                             ` Rob Landley
2010-02-18 11:21                           ` Artyom Tarasenko
2010-02-18 13:14                             ` Rob Landley
2010-02-18 14:19                               ` Artyom Tarasenko
2010-02-20 17:17                             ` [Qemu-devel] Fun with sparc (was Re: qemu-ppc can't run static uClibc binaries.) Rob Landley
2010-02-20 17:34                               ` [Qemu-devel] " Blue Swirl
2010-02-20 18:38                                 ` Rob Landley
2010-02-20 21:59                                   ` Blue Swirl
2010-02-20 23:12                                     ` Rob Landley
2010-02-21 16:25                                       ` Rob Landley [this message]
2010-02-21 16:25                                         ` [Qemu-devel] Commit 085219f79cad broke Sparc-32 back in 2.6.28 Rob Landley
2010-02-21 23:57                                         ` David Miller
2010-02-21 23:57                                           ` [Qemu-devel] " David Miller
2010-02-22  0:28                                           ` Bartlomiej Zolnierkiewicz
2010-02-22  0:28                                             ` [Qemu-devel] " Bartlomiej Zolnierkiewicz
2010-02-22  2:03                                             ` Rob Landley
2010-02-22  2:03                                               ` [Qemu-devel] " Rob Landley
2010-02-22  2:06                                         ` David Miller
2010-02-22  2:06                                           ` [Qemu-devel] " David Miller
2010-03-27  3:35                                           ` Rob Landley
2010-03-27  3:37                                             ` David Miller
2010-03-27  7:44                                               ` Rob Landley
2010-03-27 23:31                                                 ` David Miller
2010-02-20 21:59                                   ` [Qemu-devel] Re: Fun with sparc (was Re: qemu-ppc can't run static uClibc binaries.) Artyom Tarasenko
2010-02-20 21:39                                 ` Artyom Tarasenko
2010-02-20 22:03                                   ` Blue Swirl
2010-02-17 16:36                       ` [Qemu-devel] Re: qemu-ppc can't run static uClibc binaries Rob Landley
2010-02-16  8:21           ` [Qemu-devel] " Stuart Brady
2010-02-28 21:05             ` Aurelien Jarno

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=201002211025.11588.rob@landley.net \
    --to=rob@landley.net \
    --cc=atar4qemu@googlemail.com \
    --cc=blauwirbel@gmail.com \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=sam@ravnborg.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.