[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20070411155501.GA12573@twiddle.net>
Date: Wed, 11 Apr 2007 08:55:01 -0700
From: Richard Henderson <rth@...ddle.net>
To: Ivan Kokshaysky <ink@...assic.park.msu.ru>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Jay Estabrook <jay.estabrook@...com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/7] ALPHA: build fixes - force architecture, eliminate wastage
On Wed, Apr 11, 2007 at 12:28:41PM +0400, Ivan Kokshaysky wrote:
> - __asm__("ctlz %1, %0" : "=r"(vector) : "r"(mask));
> + __asm__(".arch ev67; ctlz %1, %0" : "=r"(vector) : "r"(mask));
This should use __kernel_ctlz, and we should use
#ifdef __alpha_cix__
# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3
# define __kernel_cttz(x) __builtin_ctzl(x)
# else
# define __kernel_cttz(x) \
({ unsigned long __kir; \
__asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \
__kir; })
# endif
#else
# define __kernel_cttz(x) \
({ unsigned long __kir; \
__asm__(".arch ev67; cttz %1,%0" : "=r"(__kir) : "r"(x)); \
__kir; })
#endif
etc, for the other __kernel_ctlz and __kernel_ctpop definitions.
> -asm(".section .got,\"aws\",@progbits; .align 3; .previous");
> +asm(".section .got,\"aw\",@progbits; .align 3; .previous");
Are you absolutely certain that the got gets put into the correct
spot when you do this? It really ought to have the SHF_ALPHA_GPREL
bit set, so that the ARCH_SHF_SMALL checks in kernel/module.c do
the correct thing.
I NAK this chunk without further proof. Anyway, the *proper* fix
is in the assembler; it shouldn't be complaining.
r~
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists