From: tip-bot for Jan Beulich <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: ffusco@redhat.com, linux-kernel@vger.kernel.org, hpa@zytor.com,
mingo@kernel.org, dborkman@redhat.com, jbeulich@suse.com,
davem@davemloft.net, tgraf@redhat.com, JBeulich@suse.com,
tglx@linutronix.de, hpa@linux.intel.com
Subject: [tip:x86/hash] x86, hash: Fix build failure with older binutils
Date: Wed, 19 Mar 2014 16:48:36 -0700 [thread overview]
Message-ID: <tip-706b158559e41ba8d8ea83f3e468466e64769058@git.kernel.org> (raw)
In-Reply-To: <530F0996020000780011FBE7@nat28.tlf.novell.com>
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;
}
next prev parent reply other threads:[~2014-03-19 23:48 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
2014-03-19 23:54 ` [tip:x86/hash] x86, hash: Fix " tip-bot for Jan Beulich
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=tip-706b158559e41ba8d8ea83f3e468466e64769058@git.kernel.org \
--to=tipbot@zytor.com \
--cc=davem@davemloft.net \
--cc=dborkman@redhat.com \
--cc=ffusco@redhat.com \
--cc=hpa@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jbeulich@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--cc=tgraf@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox