lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <tip-706b158559e41ba8d8ea83f3e468466e64769058@git.kernel.org>
Date:	Wed, 19 Mar 2014 16:48:36 -0700
From:	tip-bot for Jan Beulich <tipbot@...or.com>
To:	linux-tip-commits@...r.kernel.org
Cc:	ffusco@...hat.com, linux-kernel@...r.kernel.org, hpa@...or.com,
	mingo@...nel.org, dborkman@...hat.com, jbeulich@...e.com,
	davem@...emloft.net, tgraf@...hat.com, JBeulich@...e.com,
	tglx@...utronix.de, hpa@...ux.intel.com
Subject: [tip:x86/hash] x86, hash: Fix build failure with older binutils

Commit-ID:  706b158559e41ba8d8ea83f3e468466e64769058
Gitweb:     http://git.kernel.org/tip/706b158559e41ba8d8ea83f3e468466e64769058
Author:     Jan Beulich <JBeulich@...e.com>
AuthorDate: Thu, 27 Feb 2014 08:47:02 +0000
Committer:  H. Peter Anvin <hpa@...ux.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@...e.com>
Link: http://lkml.kernel.org/r/530F0996020000780011FBE7@nat28.tlf.novell.com
Cc: Francesco Fusco <ffusco@...hat.com>
Cc: Daniel Borkmann <dborkman@...hat.com>
Cc: Thomas Graf <tgraf@...hat.com>
Cc: David S. Miller <davem@...emloft.net>
Signed-off-by: H. Peter Anvin <hpa@...ux.intel.com>
Cc: <stable@...r.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;
 }
 
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ