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: <1396188574-2067-3-git-send-email-dvlasenk@redhat.com>
Date:	Sun, 30 Mar 2014 16:09:34 +0200
From:	Denys Vlasenko <dvlasenk@...hat.com>
To:	"H. Peter Anvin" <hpa@...ux.intel.com>,
	Borislav Petkov <bp@...e.de>, Jacob Shin <jacob.shin@....com>,
	Jeff Layton <jlayton@...hat.com>,
	Prarit Bhargava <prarit@...hat.com>,
	Mikulas Patocka <mpatocka@...hat.com>,
	Fenghua Yu <fenghua.yu@...el.com>, linux-kernel@...r.kernel.org
Cc:	Denys Vlasenko <dvlasenk@...hat.com>
Subject: [PATCH 3/3] x86: microcode: remove unused parameter and redundant variable

Two trivial cleanups:

get_matching_sig()'s rev parameter is unused and can be removed.

In apply_microcode(), cpu == cpu_num always. Merge them. Move BUG check
before all other operations so that function call does not interfere
with register scheduling, saving a few bytes of code.

Signed-off-by: Denys Vlasenko <dvlasenk@...hat.com>
---
 arch/x86/include/asm/microcode_intel.h      |  2 +-
 arch/x86/kernel/cpu/microcode/intel.c       | 16 ++++++++--------
 arch/x86/kernel/cpu/microcode/intel_early.c |  2 +-
 arch/x86/kernel/cpu/microcode/intel_lib.c   |  4 ++--
 4 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/arch/x86/include/asm/microcode_intel.h b/arch/x86/include/asm/microcode_intel.h
index f64ccfd..e27eba4 100644
--- a/arch/x86/include/asm/microcode_intel.h
+++ b/arch/x86/include/asm/microcode_intel.h
@@ -59,7 +59,7 @@ struct extended_sigtable {
 extern int
 get_matching_microcode(unsigned int csig, int cpf, void *mc, int rev, bool report_old);
 extern int microcode_sanity_check(void *mc, int print_err);
-extern int get_matching_sig(unsigned int csig, int cpf, void *mc, int rev);
+extern int get_matching_sig(unsigned int csig, int cpf, void *mc);
 extern int
 update_match_revision(struct microcode_header_intel *mc_header, int rev);
 
diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
index 9ce22b0..a37f179 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -127,19 +127,19 @@ static int get_matching_mc(struct microcode_intel *mc_intel, int cpu)
 	return get_matching_microcode(csig, cpf, mc_intel, crev, /*report_old:*/ 1);
 }
 
-int apply_microcode(int cpu)
+int apply_microcode(int cpu_num)
 {
 	struct microcode_intel *mc_intel;
 	struct ucode_cpu_info *uci;
 	unsigned int val[2];
-	int cpu_num = raw_smp_processor_id();
-	struct cpuinfo_x86 *c = &cpu_data(cpu_num);
-
-	uci = ucode_cpu_info + cpu;
-	mc_intel = uci->mc;
+	struct cpuinfo_x86 *c;
 
 	/* We should bind the task to the CPU */
-	BUG_ON(cpu_num != cpu);
+	BUG_ON(cpu_num != raw_smp_processor_id());
+
+	c = &cpu_data(cpu_num);
+	uci = ucode_cpu_info + cpu_num;
+	mc_intel = uci->mc;
 
 	if (mc_intel == NULL)
 		return 0;
@@ -149,7 +149,7 @@ int apply_microcode(int cpu)
 	 * microcode patch in mc_intel when it is newer than the one on this
 	 * CPU.
 	 */
-	if (get_matching_mc(mc_intel, cpu) == 0)
+	if (get_matching_mc(mc_intel, cpu_num) == 0)
 		return 0;
 
 	/* write microcode via MSR 0x79 */
diff --git a/arch/x86/kernel/cpu/microcode/intel_early.c b/arch/x86/kernel/cpu/microcode/intel_early.c
index 3a2ad0a..14b120b 100644
--- a/arch/x86/kernel/cpu/microcode/intel_early.c
+++ b/arch/x86/kernel/cpu/microcode/intel_early.c
@@ -276,7 +276,7 @@ static void _save_mc(struct microcode_intel **mc_saved, u8 *ucode_ptr,
 		pf = mc_saved_header->pf;
 		new_rev = mc_header->rev;
 
-		if (get_matching_sig(sig, pf, ucode_ptr, new_rev)) {
+		if (get_matching_sig(sig, pf, ucode_ptr)) {
 			found = 1;
 			if (update_match_revision(mc_header, new_rev)) {
 				/*
diff --git a/arch/x86/kernel/cpu/microcode/intel_lib.c b/arch/x86/kernel/cpu/microcode/intel_lib.c
index e8c02cb..eeec94b 100644
--- a/arch/x86/kernel/cpu/microcode/intel_lib.c
+++ b/arch/x86/kernel/cpu/microcode/intel_lib.c
@@ -131,7 +131,7 @@ EXPORT_SYMBOL_GPL(microcode_sanity_check);
  * return 0 - no update found
  * return 1 - found update
  */
-int get_matching_sig(unsigned int csig, int cpf, void *mc, int rev)
+int get_matching_sig(unsigned int csig, int cpf, void *mc)
 {
 	struct microcode_header_intel *mc_header = mc;
 	struct extended_sigtable *ext_header;
@@ -174,7 +174,7 @@ int get_matching_microcode(unsigned int csig, int cpf, void *mc, int rev, bool r
 		return 0;
 	}
 
-	if (!get_matching_sig(csig, cpf, mc, rev)) {
+	if (!get_matching_sig(csig, cpf, mc)) {
 		if (report_old)
 			pr_info("microcode: no microcode with"
 				" sig=0x%x, pf=0x%x found\n", csig, cpf);
-- 
1.8.1.4

--
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