From af9a3de69f8b8e8398fbb8c726598c866ff25aca Mon Sep 17 00:00:00 2001 From: Chao Gao Date: Mon, 11 Mar 2019 15:57:26 +0800 Subject: [PATCH] microcode/intel: use union to get fields without shifting and masking MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit No functional change. Signed-off-by: Chao Gao Reviewed-by: Roger Pau Monné Acked-by: Jan Beulich --- xen/arch/x86/microcode_intel.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/microcode_intel.c b/xen/arch/x86/microcode_intel.c index 9657575c29..22fdecae22 100644 --- a/xen/arch/x86/microcode_intel.c +++ b/xen/arch/x86/microcode_intel.c @@ -37,7 +37,14 @@ struct microcode_header_intel { unsigned int hdrver; unsigned int rev; - unsigned int date; + union { + struct { + uint16_t year; + uint8_t day; + uint8_t month; + }; + unsigned int date; + }; unsigned int sig; unsigned int cksum; unsigned int ldrver; @@ -316,9 +323,9 @@ static int apply_microcode(unsigned int cpu) printk(KERN_INFO "microcode: CPU%d updated from revision " "%#x to %#x, date = %04x-%02x-%02x \n", cpu_num, uci->cpu_sig.rev, val[1], - uci->mc.mc_intel->hdr.date & 0xffff, - uci->mc.mc_intel->hdr.date >> 24, - (uci->mc.mc_intel->hdr.date >> 16) & 0xff); + uci->mc.mc_intel->hdr.year, + uci->mc.mc_intel->hdr.month, + uci->mc.mc_intel->hdr.day); uci->cpu_sig.rev = val[1]; return 0; -- 2.39.5