All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Simek <monstr@monstr.eu>
To: Mike Frysinger <vapier@gentoo.org>
Cc: uclinux-dev@uclinux.org, David Howells <dhowells@redhat.com>,
	David McCullough <davidm@snapgear.com>,
	Greg Ungerer <gerg@uclinux.org>, Paul Mundt <lethal@linux-sh.org>,
	uclinux-dist-devel@blackfin.uclinux.org,
	microblaze-uclinux@itee.uq.edu.au, linux-m32r@ml.linux-m32r.org,
	Hirokazu Takata <takata@linux-m32r.org>,
	linux-kernel@vger.kernel.org,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Jie Zhang <jie.zhang@analog.com>
Subject: Re: [PATCH] FLAT: allow arches to declare a larger alignment than the slab
Date: Wed, 26 May 2010 09:24:52 +0200	[thread overview]
Message-ID: <4BFCCCC4.3030202@monstr.eu> (raw)
In-Reply-To: <1274815467-14584-1-git-send-email-vapier@gentoo.org>

Mike Frysinger wrote:
> From: Jie Zhang <jie.zhang@analog.com>
> 
> The recent commit 1f0ce8b3dd667dca7 which moved the ARCH_SLAB_MINALIGN
> default into the global header inadvertently broke FLAT for a bunch of
> systems.  Blackfin systems now fail on any FLAT exec with:
> Unable to read code+data+bss, errno 14
> When your /init is a FLAT binary, obviously this can be annoying ;).
> 
> This stems from the alignment usage in the FLAT loader.  The behavior
> before was that FLAT would default to ARCH_SLAB_MINALIGN only if it was
> defined, and this was only defined by arches when they wanted a larger
> alignment value.  Otherwise it'd default to pointer alignment.  Arguably,
> this is kind of hokey that the FLAT is semi-abusing defines it shouldn't.
> 
> But let's ignore that and let arches declare a larger FLAT alignment
> specifically anyways as some arches are OK with the default slab alignment
> but need stricter FLAT alignments for shared FLAT libraries.
> 
> The nommu arches might want to check to see if they need to declare this
> in their headers as well ...

Microblaze noMMU contains this fault too. I registered it yesterday.
I will use the same fix as you when you find out the correct solution. :-)

Michal



> 
> Signed-off-by: Jie Zhang <jie.zhang@analog.com>
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> ---
>  arch/blackfin/include/asm/flat.h |    2 ++
>  fs/binfmt_flat.c                 |   11 ++++++++---
>  2 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/blackfin/include/asm/flat.h b/arch/blackfin/include/asm/flat.h
> index c1314c5..cf2a73e 100644
> --- a/arch/blackfin/include/asm/flat.h
> +++ b/arch/blackfin/include/asm/flat.h
> @@ -11,6 +11,8 @@
>  
>  #include <asm/unaligned.h>
>  
> +#define ARCH_FLAT_DATA_ALIGN			0x20
> +
>  #define	flat_argvp_envp_on_stack()		0
>  #define	flat_old_ram_flag(flags)		(flags)
>  
> diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c
> index 49566c1..6906170 100644
> --- a/fs/binfmt_flat.c
> +++ b/fs/binfmt_flat.c
> @@ -56,12 +56,17 @@
>  #endif
>  
>  /*
> - * User data (stack, data section and bss) needs to be aligned
> - * for the same reasons as SLAB memory is, and to the same amount.
> + * User data (stack, data section and bss) needs to be aligned.
> + * If ARCH_FLAT_DATA_ALIGN is defined, use it.
> + */
> +#ifdef ARCH_FLAT_DATA_ALIGN
> +#define FLAT_DATA_ALIGN	(ARCH_FLAT_DATA_ALIGN)
> +/* Otherwise user data nees to be aligned for the same reasons
> + * as SLAB memory is aligned, and to the same amount.
>   * Avoid duplicating architecture specific code by using the same
>   * macro as with SLAB allocation:
>   */
> -#ifdef ARCH_SLAB_MINALIGN
> +#elif defined(ARCH_SLAB_MINALIGN)
>  #define FLAT_DATA_ALIGN	(ARCH_SLAB_MINALIGN)
>  #else
>  #define FLAT_DATA_ALIGN	(sizeof(void *))


-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

  parent reply	other threads:[~2010-05-26  7:26 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-25 19:24 [PATCH] FLAT: allow arches to declare a larger alignment than the slab Mike Frysinger
2010-05-25 19:50 ` Geert Uytterhoeven
2010-05-25 21:07 ` Paul Mundt
2010-05-25 23:17   ` Mike Frysinger
2010-05-26  2:23     ` Jie Zhang
2010-05-26  6:59       ` Geert Uytterhoeven
2010-05-26  7:23         ` Mike Frysinger
2010-05-26  7:33           ` Paul Mundt
2010-05-26  7:36             ` Mike Frysinger
2010-05-26  7:36       ` Mike Frysinger
2010-05-26  7:48     ` Paul Mundt
2010-05-26  8:01       ` Mike Frysinger
2010-05-26  7:24 ` Michal Simek [this message]
2010-05-26  8:45 ` [PATCH 1/2 v2] FLAT: split the stack & data alignments Mike Frysinger
2010-05-27  8:24   ` Michal Simek
2010-05-27 18:30     ` [Uclinux-dist-devel] " Mike Frysinger
2010-05-27 23:15       ` [microblaze-uclinux] " David McCullough
2010-05-28  4:57         ` Mike Frysinger
2010-05-28  6:05   ` Mike Frysinger
2010-05-28  6:23   ` David McCullough
2010-05-28  6:40   ` Greg Ungerer
2010-05-26  8:45 ` [PATCH 2/2 v2] FLAT: tweak default stack alignment Mike Frysinger
2010-05-28  6:24   ` David McCullough
2010-05-28  6:39   ` Greg Ungerer
2010-06-06  7:12   ` [PATCH v3] " 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=4BFCCCC4.3030202@monstr.eu \
    --to=monstr@monstr.eu \
    --cc=davidm@snapgear.com \
    --cc=dhowells@redhat.com \
    --cc=gerg@uclinux.org \
    --cc=jie.zhang@analog.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m32r@ml.linux-m32r.org \
    --cc=microblaze-uclinux@itee.uq.edu.au \
    --cc=takata@linux-m32r.org \
    --cc=uclinux-dev@uclinux.org \
    --cc=uclinux-dist-devel@blackfin.uclinux.org \
    --cc=vapier@gentoo.org \
    --cc=ysato@users.sourceforge.jp \
    /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.