All of lore.kernel.org
 help / color / mirror / Atom feed
From: David McCullough <ucdevel@gmail.com>
To: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Cc: David McCullough <ucdevel@gmail.com>,
	linux-crypto@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] [RFC] crypto: sha1/arm - fix build with CONFIG_THUMB2_KERNEL
Date: Wed, 31 Oct 2012 10:25:00 +1000	[thread overview]
Message-ID: <20121031002457.GB6972@spottygum.com> (raw)
In-Reply-To: <20121030100742.17910.70241.stgit@localhost6.localdomain6>


Jussi Kivilinna wrote the following:
> Building cryptodev-2.6 tree with CONFIG_THUMB2_KERNEL=y and
> CONFIG_CRYPTO_SHA1_ARM=y give following error:
> 
>    AS      arch/arm/crypto/sha1-armv4-large.o
> arch/arm/crypto/sha1-armv4-large.S: Assembler messages:
> arch/arm/crypto/sha1-armv4-large.S:197: Error: r13 not allowed here --
> `teq r14,sp'
> arch/arm/crypto/sha1-armv4-large.S:377: Error: r13 not allowed here --
> `teq r14,sp'
> arch/arm/crypto/sha1-armv4-large.S:469: Error: r13 not allowed here --
> `teq r14,sp'
> 
> Build can be fixed with adding '.arm' at head of sha1-armv4-large.S.
> However I'm not sure if this correct fix as this is my first stab
> at arm assembler and I could not get CONFIG_THUMB2_KERNEL boot up
> on 'qemu-system-arm -M vexpress-a9' to verify correctness. So this
> is only build tested.

That fixes the problem for the assembler,  in that you have forced it to
treat the code as 32 bit (non-thumb).

I know you can mix thumb and non-thumb code,  and it seems that as long as
all parties know what code is in what mode it should work.

Unfortunately I don't know enough about it be sure this is a valid fix.
I think we need a long term arm expert to pass judgement on this one,
unless of source you manage to get it tested.  I don't have any thumb
targets I can try it on, sory,

Cheers,
Davidm

> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-crypto@vger.kernel.org
> Cc: David McCullough <ucdevel@gmail.com>
> ---
>  arch/arm/crypto/sha1-armv4-large.S |    2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/crypto/sha1-armv4-large.S b/arch/arm/crypto/sha1-armv4-large.S
> index 7050ab1..e8a55eb 100644
> --- a/arch/arm/crypto/sha1-armv4-large.S
> +++ b/arch/arm/crypto/sha1-armv4-large.S
> @@ -53,6 +53,8 @@
>  
>  .text
>  
> +.arm
> +
>  .global	sha1_block_data_order
>  .type	sha1_block_data_order,%function
>  
> 

-- 
David McCullough,  davidm@spottygum.com,   Ph: 0410 560 763

WARNING: multiple messages have this Message-ID (diff)
From: ucdevel@gmail.com (David McCullough)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] [RFC] crypto: sha1/arm - fix build with CONFIG_THUMB2_KERNEL
Date: Wed, 31 Oct 2012 10:25:00 +1000	[thread overview]
Message-ID: <20121031002457.GB6972@spottygum.com> (raw)
In-Reply-To: <20121030100742.17910.70241.stgit@localhost6.localdomain6>


Jussi Kivilinna wrote the following:
> Building cryptodev-2.6 tree with CONFIG_THUMB2_KERNEL=y and
> CONFIG_CRYPTO_SHA1_ARM=y give following error:
> 
>    AS      arch/arm/crypto/sha1-armv4-large.o
> arch/arm/crypto/sha1-armv4-large.S: Assembler messages:
> arch/arm/crypto/sha1-armv4-large.S:197: Error: r13 not allowed here --
> `teq r14,sp'
> arch/arm/crypto/sha1-armv4-large.S:377: Error: r13 not allowed here --
> `teq r14,sp'
> arch/arm/crypto/sha1-armv4-large.S:469: Error: r13 not allowed here --
> `teq r14,sp'
> 
> Build can be fixed with adding '.arm' at head of sha1-armv4-large.S.
> However I'm not sure if this correct fix as this is my first stab
> at arm assembler and I could not get CONFIG_THUMB2_KERNEL boot up
> on 'qemu-system-arm -M vexpress-a9' to verify correctness. So this
> is only build tested.

That fixes the problem for the assembler,  in that you have forced it to
treat the code as 32 bit (non-thumb).

I know you can mix thumb and non-thumb code,  and it seems that as long as
all parties know what code is in what mode it should work.

Unfortunately I don't know enough about it be sure this is a valid fix.
I think we need a long term arm expert to pass judgement on this one,
unless of source you manage to get it tested.  I don't have any thumb
targets I can try it on, sory,

Cheers,
Davidm

> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-crypto at vger.kernel.org
> Cc: David McCullough <ucdevel@gmail.com>
> ---
>  arch/arm/crypto/sha1-armv4-large.S |    2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/crypto/sha1-armv4-large.S b/arch/arm/crypto/sha1-armv4-large.S
> index 7050ab1..e8a55eb 100644
> --- a/arch/arm/crypto/sha1-armv4-large.S
> +++ b/arch/arm/crypto/sha1-armv4-large.S
> @@ -53,6 +53,8 @@
>  
>  .text
>  
> +.arm
> +
>  .global	sha1_block_data_order
>  .type	sha1_block_data_order,%function
>  
> 

-- 
David McCullough,  davidm at spottygum.com,   Ph: 0410 560 763

  reply	other threads:[~2012-10-31  0:25 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-30 10:07 [PATCH] [RFC] crypto: sha1/arm - fix build with CONFIG_THUMB2_KERNEL Jussi Kivilinna
2012-10-30 10:07 ` Jussi Kivilinna
2012-10-31  0:25 ` David McCullough [this message]
2012-10-31  0:25   ` David McCullough
2012-11-05 12:42 ` [PATCH] arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible Dave Martin
2012-11-15 22:26   ` Nicolas Pitre
2012-11-20 18:46     ` Dave Martin
2012-11-20 18:55       ` Nicolas Pitre
2012-11-20 22:15         ` David McCullough
2012-11-26  0:45         ` David McCullough
2013-01-10 11:31           ` Dave Martin

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=20121031002457.GB6972@spottygum.com \
    --to=ucdevel@gmail.com \
    --cc=jussi.kivilinna@mbnet.fi \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-crypto@vger.kernel.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.