diff options
Diffstat (limited to 'sys-freebsd/freebsd-usbin/files/freebsd-usbin-SA-1803-speculative_execution-amd64-11.patch')
-rw-r--r-- | sys-freebsd/freebsd-usbin/files/freebsd-usbin-SA-1803-speculative_execution-amd64-11.patch | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/sys-freebsd/freebsd-usbin/files/freebsd-usbin-SA-1803-speculative_execution-amd64-11.patch b/sys-freebsd/freebsd-usbin/files/freebsd-usbin-SA-1803-speculative_execution-amd64-11.patch deleted file mode 100644 index 0cc67ad8f342..000000000000 --- a/sys-freebsd/freebsd-usbin/files/freebsd-usbin-SA-1803-speculative_execution-amd64-11.patch +++ /dev/null @@ -1,189 +0,0 @@ ---- usr.sbin/cpucontrol/cpucontrol.8.orig -+++ usr.sbin/cpucontrol/cpucontrol.8 -@@ -24,7 +24,7 @@ - .\" - .\" $FreeBSD$ - .\" --.Dd June 30, 2009 -+.Dd January 5, 2018 - .Dt CPUCONTROL 8 - .Os - .Sh NAME -@@ -36,44 +36,48 @@ - .Nm - .Op Fl vh - .Fl m Ar msr --.Bk - .Ar device - .Ek -+.Bk - .Nm - .Op Fl vh - .Fl m Ar msr Ns = Ns Ar value --.Bk - .Ar device - .Ek -+.Bk - .Nm - .Op Fl vh - .Fl m Ar msr Ns &= Ns Ar mask --.Bk - .Ar device - .Ek -+.Bk - .Nm - .Op Fl vh - .Fl m Ar msr Ns |= Ns Ar mask --.Bk - .Ar device - .Ek -+.Bk - .Nm - .Op Fl vh - .Fl i Ar level --.Bk - .Ar device - .Ek -+.Bk - .Nm - .Op Fl vh - .Fl i Ar level,level_type --.Bk - .Ar device - .Ek -+.Bk - .Nm - .Op Fl vh - .Op Fl d Ar datadir - .Fl u -+.Ar device -+.Ek - .Bk -+.Nm -+.Fl e - .Ar device - .Ek - .Sh DESCRIPTION -@@ -129,6 +133,20 @@ - .Nm - utility will walk through the configured data directories - and apply all firmware updates available for this CPU. -+.It Fl e -+Re-evaluate the kernel flags indicating the present CPU features. -+This command is typically executed after a firmware update was applied -+which changes information reported by the -+.Dv CPUID -+instruction. -+.Pp -+.Bf -symbolic -+Only execute the -+.Fl e -+command after the microcode update was applied to all CPUs in the system. -+The kernel does not operate correctly if the features of processors are -+not identical. -+.Ef - .It Fl v - Increase the verbosity level. - .It Fl h ---- usr.sbin/cpucontrol/cpucontrol.c.orig -+++ usr.sbin/cpucontrol/cpucontrol.c -@@ -60,6 +60,7 @@ - #define FLAG_I 0x01 - #define FLAG_M 0x02 - #define FLAG_U 0x04 -+#define FLAG_E 0x10 - - #define OP_INVAL 0x00 - #define OP_READ 0x01 -@@ -114,7 +115,7 @@ - if (name == NULL) - name = "cpuctl"; - fprintf(stderr, "Usage: %s [-vh] [-d datadir] [-m msr[=value] | " -- "-i level | -i level,level_type | -u] device\n", name); -+ "-i level | -i level,level_type | -e | -u] device\n", name); - exit(EX_USAGE); - } - -@@ -338,6 +339,25 @@ - } - - static int -+do_eval_cpu_features(const char *dev) -+{ -+ int fd, error; -+ -+ assert(dev != NULL); -+ -+ fd = open(dev, O_RDWR); -+ if (fd < 0) { -+ WARN(0, "error opening %s for writing", dev); -+ return (1); -+ } -+ error = ioctl(fd, CPUCTL_EVAL_CPU_FEATURES, NULL); -+ if (error < 0) -+ WARN(0, "ioctl(%s, CPUCTL_EVAL_CPU_FEATURES)", dev); -+ close(fd); -+ return (error); -+} -+ -+static int - do_update(const char *dev) - { - int fd; -@@ -431,11 +451,14 @@ - * Add all default data dirs to the list first. - */ - datadir_add(DEFAULT_DATADIR); -- while ((c = getopt(argc, argv, "d:hi:m:uv")) != -1) { -+ while ((c = getopt(argc, argv, "d:ehi:m:uv")) != -1) { - switch (c) { - case 'd': - datadir_add(optarg); - break; -+ case 'e': -+ flags |= FLAG_E; -+ break; - case 'i': - flags |= FLAG_I; - cmdarg = optarg; -@@ -464,22 +487,25 @@ - /* NOTREACHED */ - } - dev = argv[0]; -- c = flags & (FLAG_I | FLAG_M | FLAG_U); -+ c = flags & (FLAG_E | FLAG_I | FLAG_M | FLAG_U); - switch (c) { -- case FLAG_I: -- if (strstr(cmdarg, ",") != NULL) -- error = do_cpuid_count(cmdarg, dev); -- else -- error = do_cpuid(cmdarg, dev); -- break; -- case FLAG_M: -- error = do_msr(cmdarg, dev); -- break; -- case FLAG_U: -- error = do_update(dev); -- break; -- default: -- usage(); /* Only one command can be selected. */ -+ case FLAG_I: -+ if (strstr(cmdarg, ",") != NULL) -+ error = do_cpuid_count(cmdarg, dev); -+ else -+ error = do_cpuid(cmdarg, dev); -+ break; -+ case FLAG_M: -+ error = do_msr(cmdarg, dev); -+ break; -+ case FLAG_U: -+ error = do_update(dev); -+ break; -+ case FLAG_E: -+ error = do_eval_cpu_features(dev); -+ break; -+ default: -+ usage(); /* Only one command can be selected. */ - } - SLIST_FREE(&datadirs, next, free); - return (error == 0 ? 0 : 1); |