From owner-svn-src-all@freebsd.org Wed Oct 10 15:54:02 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3BD3210B50A4; Wed, 10 Oct 2018 15:54:02 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E452186636; Wed, 10 Oct 2018 15:54:01 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DF0572302A; Wed, 10 Oct 2018 15:54:01 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w9AFs1tQ016019; Wed, 10 Oct 2018 15:54:01 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w9AFs1fF016018; Wed, 10 Oct 2018 15:54:01 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201810101554.w9AFs1fF016018@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 10 Oct 2018 15:54:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r339287 - stable/11/usr.sbin/cpucontrol X-SVN-Group: stable-11 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/11/usr.sbin/cpucontrol X-SVN-Commit-Revision: 339287 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2018 15:54:02 -0000 Author: emaste Date: Wed Oct 10 15:54:01 2018 New Revision: 339287 URL: https://svnweb.freebsd.org/changeset/base/339287 Log: MFC r333569: cpucontrol: improve Intel microcode revision check According to the Intel SDM (Volme 3, 9.11.7) the BIOS signature MSR should be zeroed before executing cpuid (although in practice it does not seem to matter). PR: 192487 Submitted by: Dan Lukes Reported by: Henrique de Moraes Holschuh Modified: stable/11/usr.sbin/cpucontrol/intel.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/cpucontrol/intel.c ============================================================================== --- stable/11/usr.sbin/cpucontrol/intel.c Wed Oct 10 15:44:14 2018 (r339286) +++ stable/11/usr.sbin/cpucontrol/intel.c Wed Oct 10 15:54:01 2018 (r339287) @@ -95,7 +95,8 @@ intel_update(const char *dev, const char *path) void *fw_data; size_t data_size, total_size; cpuctl_msr_args_t msrargs = { - .msr = MSR_IA32_PLATFORM_ID, + .msr = MSR_BIOS_SIGN, + .data = 0, }; cpuctl_cpuid_args_t idargs = { .level = 1, /* Signature. */ @@ -115,12 +116,18 @@ intel_update(const char *dev, const char *path) WARN(0, "could not open %s for writing", dev); return; } + error = ioctl(devfd, CPUCTL_WRMSR, &msrargs); + if (error < 0) { + WARN(0, "ioctl(%s)", dev); + goto fail; + } error = ioctl(devfd, CPUCTL_CPUID, &idargs); if (error < 0) { WARN(0, "ioctl(%s)", dev); goto fail; } signature = idargs.data[0]; + msrargs.msr = MSR_IA32_PLATFORM_ID; error = ioctl(devfd, CPUCTL_RDMSR, &msrargs); if (error < 0) { WARN(0, "ioctl(%s)", dev);