All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/3] x86/hash: fix build failure with older binutils
@ 2014-02-27  8:47 Jan Beulich
  2014-02-27  9:26 ` Daniel Borkmann
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jan Beulich @ 2014-02-27  8:47 UTC (permalink / raw)
  To: mingo, tglx, Jan Beulich, hpa
  Cc: davem, dborkman, ffusco, tgraf, linux-kernel

Just like for other ISA extension instruction uses we should check
whether the assembler actually supports them. The fallback here simply
is to encode an instruction  with fixed operands (%eax and %ecx).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Cc: Francesco Fusco <ffusco@redhat.com>
Cc: Daniel Borkmann <dborkman@redhat.com>
Cc: Thomas Graf <tgraf@redhat.com>
Cc: David S. Miller <davem@davemloft.net>
---
 arch/x86/Makefile   |    1 +
 arch/x86/lib/hash.c |    4 ++++
 2 files changed, 5 insertions(+)

--- 3.14-rc4-x86-hash-crc32.orig/arch/x86/Makefile
+++ 3.14-rc4-x86-hash-crc32/arch/x86/Makefile
@@ -152,6 +152,7 @@ cfi-sections := $(call as-instr,.cfi_sec
 
 # does binutils support specific instructions?
 asinstr := $(call as-instr,fxsaveq (%rax),-DCONFIG_AS_FXSAVEQ=1)
+asinstr += $(call as-instr,crc32l %eax$(comma)%eax,-DCONFIG_AS_CRC32=1)
 avx_instr := $(call as-instr,vxorps %ymm0$(comma)%ymm1$(comma)%ymm2,-DCONFIG_AS_AVX=1)
 avx2_instr :=$(call as-instr,vpbroadcastb %xmm0$(comma)%ymm1,-DCONFIG_AS_AVX2=1)
 
--- 3.14-rc4-x86-hash-crc32.orig/arch/x86/lib/hash.c
+++ 3.14-rc4-x86-hash-crc32/arch/x86/lib/hash.c
@@ -39,7 +39,11 @@
 
 static inline u32 crc32_u32(u32 crc, u32 val)
 {
+#ifdef CONFIG_AS_CRC32
 	asm ("crc32l %1,%0\n" : "+r" (crc) : "rm" (val));
+#else
+	asm (".byte 0xf2, 0x0f, 0x38, 0xf1, 0xc1" : "+a" (crc) : "c" (val));
+#endif
 	return crc;
 }
 




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 1/3] x86/hash: fix build failure with older binutils
  2014-02-27  8:47 [PATCH v2 1/3] x86/hash: fix build failure with older binutils Jan Beulich
@ 2014-02-27  9:26 ` Daniel Borkmann
  2014-03-19 23:48 ` [tip:x86/hash] x86, hash: Fix " tip-bot for Jan Beulich
  2014-03-19 23:54 ` tip-bot for Jan Beulich
  2 siblings, 0 replies; 4+ messages in thread
From: Daniel Borkmann @ 2014-02-27  9:26 UTC (permalink / raw)
  To: Jan Beulich; +Cc: mingo, tglx, hpa, davem, ffusco, tgraf, linux-kernel

On 02/27/2014 09:47 AM, Jan Beulich wrote:
> Just like for other ISA extension instruction uses we should check
> whether the assembler actually supports them. The fallback here simply
> is to encode an instruction  with fixed operands (%eax and %ecx).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Cc: Francesco Fusco <ffusco@redhat.com>
> Cc: Daniel Borkmann <dborkman@redhat.com>
> Cc: Thomas Graf <tgraf@redhat.com>
> Cc: David S. Miller <davem@davemloft.net>

Acked-by: Daniel Borkmann <dborkman@redhat.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [tip:x86/hash] x86, hash: Fix build failure with older binutils
  2014-02-27  8:47 [PATCH v2 1/3] x86/hash: fix build failure with older binutils Jan Beulich
  2014-02-27  9:26 ` Daniel Borkmann
@ 2014-03-19 23:48 ` tip-bot for Jan Beulich
  2014-03-19 23:54 ` tip-bot for Jan Beulich
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Jan Beulich @ 2014-03-19 23:48 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: ffusco, linux-kernel, hpa, mingo, dborkman, jbeulich, davem,
	tgraf, JBeulich, tglx, hpa

Commit-ID:  706b158559e41ba8d8ea83f3e468466e64769058
Gitweb:     http://git.kernel.org/tip/706b158559e41ba8d8ea83f3e468466e64769058
Author:     Jan Beulich <JBeulich@suse.com>
AuthorDate: Thu, 27 Feb 2014 08:47:02 +0000
Committer:  H. Peter Anvin <hpa@linux.intel.com>
CommitDate: Wed, 19 Mar 2014 16:25:03 -0700

x86, hash: Fix build failure with older binutils

Just like for other ISA extension instruction uses we should check
whether the assembler actually supports them. The fallback here simply
is to encode an instruction  with fixed operands (%eax and %ecx).

[ hpa: tagging for -stable as a build fix ]

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Link: http://lkml.kernel.org/r/530F0996020000780011FBE7@nat28.tlf.novell.com
Cc: Francesco Fusco <ffusco@redhat.com>
Cc: Daniel Borkmann <dborkman@redhat.com>
Cc: Thomas Graf <tgraf@redhat.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: <stable@vger.kernel.org> # v3.14
---
 arch/x86/Makefile   | 1 +
 arch/x86/lib/hash.c | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index eeda43a..f8842c4 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -152,6 +152,7 @@ cfi-sections := $(call as-instr,.cfi_sections .debug_frame,-DCONFIG_AS_CFI_SECTI
 
 # does binutils support specific instructions?
 asinstr := $(call as-instr,fxsaveq (%rax),-DCONFIG_AS_FXSAVEQ=1)
+asinstr += $(call as-instr,crc32l %eax$(comma)%eax,-DCONFIG_AS_CRC32=1)
 avx_instr := $(call as-instr,vxorps %ymm0$(comma)%ymm1$(comma)%ymm2,-DCONFIG_AS_AVX=1)
 avx2_instr :=$(call as-instr,vpbroadcastb %xmm0$(comma)%ymm1,-DCONFIG_AS_AVX2=1)
 
diff --git a/arch/x86/lib/hash.c b/arch/x86/lib/hash.c
index 3056702..060cc44 100644
--- a/arch/x86/lib/hash.c
+++ b/arch/x86/lib/hash.c
@@ -39,7 +39,11 @@
 
 static inline u32 crc32_u32(u32 crc, u32 val)
 {
+#ifdef CONFIG_AS_CRC32
 	asm ("crc32l %1,%0\n" : "+r" (crc) : "rm" (val));
+#else
+	asm (".byte 0xf2, 0x0f, 0x38, 0xf1, 0xc1" : "+a" (crc) : "c" (val));
+#endif
 	return crc;
 }
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [tip:x86/hash] x86, hash: Fix build failure with older binutils
  2014-02-27  8:47 [PATCH v2 1/3] x86/hash: fix build failure with older binutils Jan Beulich
  2014-02-27  9:26 ` Daniel Borkmann
  2014-03-19 23:48 ` [tip:x86/hash] x86, hash: Fix " tip-bot for Jan Beulich
@ 2014-03-19 23:54 ` tip-bot for Jan Beulich
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Jan Beulich @ 2014-03-19 23:54 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: ffusco, linux-kernel, hpa, mingo, dborkman, jbeulich, davem,
	tgraf, JBeulich, tglx, hpa

Commit-ID:  06325190bd577e11429444d54f454b9d13f560c9
Gitweb:     http://git.kernel.org/tip/06325190bd577e11429444d54f454b9d13f560c9
Author:     Jan Beulich <JBeulich@suse.com>
AuthorDate: Thu, 27 Feb 2014 08:47:02 +0000
Committer:  H. Peter Anvin <hpa@linux.intel.com>
CommitDate: Wed, 19 Mar 2014 16:51:04 -0700

x86, hash: Fix build failure with older binutils

Just like for other ISA extension instruction uses we should check
whether the assembler actually supports them. The fallback here simply
is to encode an instruction  with fixed operands (%eax and %ecx).

[ hpa: tagging for -stable as a build fix ]

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Link: http://lkml.kernel.org/r/530F0996020000780011FBE7@nat28.tlf.novell.com
Cc: Francesco Fusco <ffusco@redhat.com>
Cc: Thomas Graf <tgraf@redhat.com>
Cc: David S. Miller <davem@davemloft.net>
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: <stable@vger.kernel.org> # v3.14
---
 arch/x86/Makefile   | 1 +
 arch/x86/lib/hash.c | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index eeda43a..f8842c4 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -152,6 +152,7 @@ cfi-sections := $(call as-instr,.cfi_sections .debug_frame,-DCONFIG_AS_CFI_SECTI
 
 # does binutils support specific instructions?
 asinstr := $(call as-instr,fxsaveq (%rax),-DCONFIG_AS_FXSAVEQ=1)
+asinstr += $(call as-instr,crc32l %eax$(comma)%eax,-DCONFIG_AS_CRC32=1)
 avx_instr := $(call as-instr,vxorps %ymm0$(comma)%ymm1$(comma)%ymm2,-DCONFIG_AS_AVX=1)
 avx2_instr :=$(call as-instr,vpbroadcastb %xmm0$(comma)%ymm1,-DCONFIG_AS_AVX2=1)
 
diff --git a/arch/x86/lib/hash.c b/arch/x86/lib/hash.c
index 3056702..060cc44 100644
--- a/arch/x86/lib/hash.c
+++ b/arch/x86/lib/hash.c
@@ -39,7 +39,11 @@
 
 static inline u32 crc32_u32(u32 crc, u32 val)
 {
+#ifdef CONFIG_AS_CRC32
 	asm ("crc32l %1,%0\n" : "+r" (crc) : "rm" (val));
+#else
+	asm (".byte 0xf2, 0x0f, 0x38, 0xf1, 0xc1" : "+a" (crc) : "c" (val));
+#endif
 	return crc;
 }
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-03-19 23:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-27  8:47 [PATCH v2 1/3] x86/hash: fix build failure with older binutils Jan Beulich
2014-02-27  9:26 ` Daniel Borkmann
2014-03-19 23:48 ` [tip:x86/hash] x86, hash: Fix " tip-bot for Jan Beulich
2014-03-19 23:54 ` tip-bot for Jan Beulich

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.