- 03 Apr, 2018 40 commits
-
-
Michael Ellerman authored
CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 commit aa8a5e00 upstream. On some CPUs we can prevent the Meltdown vulnerability by flushing the L1-D cache on exit from kernel to user mode, and from hypervisor to guest. This is known to be the case on at least Power7, Power8 and Power9. At this time we do not know the status of the vulnerability on other CPUs such as the 970 (Apple G5), pasemi CPUs (AmigaOne X1000) or Freescale CPUs. As more information comes to light we can enable this, or other mechanisms on those CPUs. The vulnerability occurs when the load of an architecturally inaccessible memory region (eg. userspace load of kernel memory) is speculatively executed to the point where its result can influence the address of a subsequent speculatively executed load. In order for that to happen, the first load must hit in the L1, because before the load is sent to the L2 the permission check is performed. Therefore if no kernel addresses hit in the L1 the vulnerability can not occur. We can ensure that is the case by flushing the L1 whenever we return to userspace. Similarly for hypervisor vs guest. In order to flush the L1-D cache on exit, we add a section of nops at each (h)rfi location that returns to a lower privileged context, and patch that with some sequence. Newer firmwares are able to advertise to us that there is a special nop instruction that flushes the L1-D. If we do not see that advertised, we fall back to doing a displacement flush in software. For guest kernels we support migration between some CPU versions, and different CPUs may use different flush instructions. So that we are prepared to migrate to a machine with a different flush instruction activated, we may have to patch more than one flush instruction at boot if the hypervisor tells us to. In the end this patch is mostly the work of Nicholas Piggin and Michael Ellerman. However a cast of thousands contributed to analysis of the issue, earlier versions of the patch, back ports testing etc. Many thanks to all of them. Tested-by:
Jon Masters <jcm@redhat.com> Signed-off-by:
Nicholas Piggin <npiggin@gmail.com> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> [Balbir - back ported to stable with changes] Signed-off-by:
Balbir Singh <bsingharora@gmail.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Nicholas Piggin authored
CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 commit c7305645 upstream. In the SLB miss handler we may be returning to user or kernel. We need to add a check early on and save the result in the cr4 register, and then we bifurcate the return path based on that. Signed-off-by:
Nicholas Piggin <npiggin@gmail.com> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> Signed-off-by:
Nicholas Piggin <npiggin@gmail.com> [mpe: Backport to 4.4 based on patch from Balbir] Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Nicholas Piggin authored
CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 commit b8e90cb7 upstream. In the syscall exit path we may be returning to user or kernel context. We already have a test for that, because we conditionally restore r13. So use that existing test and branch, and bifurcate the return based on that. Signed-off-by:
Nicholas Piggin <npiggin@gmail.com> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Nicholas Piggin authored
CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 commit a08f828c upstream. Similar to the syscall return path, in fast_exception_return we may be returning to user or kernel context. We already have a test for that, because we conditionally restore r13. So use that existing test and branch, and bifurcate the return based on that. Signed-off-by:
Nicholas Piggin <npiggin@gmail.com> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Nicholas Piggin authored
CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 commit 222f20f1 upstream. This commit does simple conversions of rfi/rfid to the new macros that include the expected destination context. By simple we mean cases where there is a single well known destination context, and it's simply a matter of substituting the instruction for the appropriate macro. Signed-off-by:
Nicholas Piggin <npiggin@gmail.com> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> [Balbir fixed issues with backporting to stable] Signed-off-by:
Balbir Singh <bsingharora@gmail.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Nicholas Piggin authored
CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 commit 50e51c13 upstream. The rfid/hrfid ((Hypervisor) Return From Interrupt) instruction is used for switching from the kernel to userspace, and from the hypervisor to the guest kernel. However it can and is also used for other transitions, eg. from real mode kernel code to virtual mode kernel code, and it's not always clear from the code what the destination context is. To make it clearer when reading the code, add macros which encode the expected destination context. Signed-off-by:
Nicholas Piggin <npiggin@gmail.com> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Michael Neuling authored
CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 commit 191eccb1 upstream. A new hypervisor call has been defined to communicate various characteristics of the CPU to guests. Add definitions for the hcall number, flags and a wrapper function. Signed-off-by:
Michael Neuling <mikey@neuling.org> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> [Balbir fixed conflicts in backport] Signed-off-by:
Balbir Singh <bsingharora@gmail.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Alan Modra authored
BugLink: http://bugs.launchpad.net/bugs/1756121 commit c153693d upstream. PowerPC64 uses the symbol .TOC. much as other targets use _GLOBAL_OFFSET_TABLE_. It identifies the value of the GOT pointer (or in powerpc parlance, the TOC pointer). Global offset tables are generally local to an executable or shared library, or in the kernel, module. Thus it does not make sense for a module to resolve a relocation against .TOC. to the kernel's .TOC. value. A module has its own .TOC., and indeed the powerpc64 module relocation processing ignores the kernel value of .TOC. and instead calculates a module-local value. This patch removes code involved in exporting the kernel .TOC., tweaks modpost to ignore an undefined .TOC., and the module loader to twiddle the section symbol so that .TOC. isn't seen as undefined. Note that if the kernel was compiled with -msingle-pic-base then ELFv2 would not have function global entry code setting up r2. In that case the module call stubs would need to be modified to set up r2 using the kernel .TOC. value, requiring some of this code to be reinstated. mpe: Furthermore a change in binutils master (not yet released) causes the current way we handle the TOC to no longer work when building with MODVERSIONS=y and RELOCATABLE=n. The symptom is that modules can not be loaded due to there being no version found for TOC. Signed-off-by:
Alan Modra <amodra@gmail.com> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Benjamin Herrenschmidt authored
BugLink: http://bugs.launchpad.net/bugs/1756121 commit 5a69aec9 upstream. VSX uses a combination of the old vector registers, the old FP registers and new "second halves" of the FP registers. Thus when we need to see the VSX state in the thread struct (flush_vsx_to_thread()) or when we'll use the VSX in the kernel (enable_kernel_vsx()) we need to ensure they are all flushed into the thread struct if either of them is individually enabled. Unfortunately we only tested if the whole VSX was enabled, not if they were individually enabled. Fixes: 72cd7b44 ("powerpc: Uncomment and make enable_kernel_vsx() routine available") Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org> [mpe: Backported due to changed context] Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Oliver O'Halloran authored
BugLink: http://bugs.launchpad.net/bugs/1756121 commit 8f5f525d upstream. When the kernel is compiled to use 64bit ABIv2 the _GLOBAL() macro does not include a global entry point. A function's global entry point is used when the function is called from a different TOC context and in the kernel this typically means a call from a module into the vmlinux (or vice-versa). There are a few exported asm functions declared with _GLOBAL() and calling them from a module will likely crash the kernel since any TOC relative load will yield garbage. flush_icache_range() and flush_dcache_range() are both exported to modules, and use the TOC, so must use _GLOBAL_TOC(). Fixes: 721aeaa9 ("powerpc: Build little endian ppc64 kernel with ABIv2") Signed-off-by:
Oliver O'Halloran <oohall@gmail.com> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Naveen N. Rao authored
BugLink: http://bugs.launchpad.net/bugs/1756121 commit 844e3be4 upstream. Classic BPF JIT was never ported completely to work on little endian powerpc. However, it can be enabled and will crash the system when used. As such, disable use of BPF JIT on ppc64le. Fixes: 7c105b63 ("powerpc: Add CONFIG_CPU_LITTLE_ENDIAN kernel config option.") Reported-by:
Thadeu Lima de Souza Cascardo <cascardo@redhat.com> Signed-off-by:
Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Acked-by:
Thadeu Lima de Souza Cascardo <cascardo@redhat.com> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 76b01258. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 8319f6cd. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 03529808. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 341c0f15. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit dad6dc82. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit b9bc93cd. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 2d94edf3. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 0929d8b8. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit e1f3564b. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 00d9e152. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 313e806c. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 5dcadca3. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit d585250a. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit is provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 323c02b0. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
Revert "UBUNTU: SAUCE: Remove setup.h include file otherwise compilation complains about missing header file." This reverts commit 4fc2e0b5. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit cab09201. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit ee71154e. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 88424261. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit c049d338. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 1a65b15b. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit e82cad5f. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit d275a2d6. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 2d8d8a24. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 9fb6d750. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit b6a090d6. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 68ee8a04. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 2a12cf77. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121 The functionality of this commit will be provided by the following upstream patch series: * powerpc/64s: Allow control of RFI flush via debugfs * powerpc/64s: Wire up cpu_show_meltdown() * powerpc/powernv: Check device-tree for RFI flush settings * powerpc/pseries: Query hypervisor for RFI flush settings * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti * powerpc/64s: Add support for RFI flush of L1-D cache * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL * powerpc/64s: Simple RFI macro conversions * powerpc/64: Add macros for annotating the destination of rfid/hrfid * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Juerg Haefliger authored
This reverts commit 1a7bb619. CVE-2017-5754 BugLink: http://bugs.launchpad.net/bugs/1756121Signed-off-by:
Juerg Haefliger <juergh@canonical.com> Signed-off-by:
Stefan Bader <stefan.bader@canonical.com>
-
Alexander Duyck authored
BugLink: http://bugs.launchpad.net/bugs/1723127 From what I can tell the practical limitation on the size of the Tx data buffer is the fact that the Tx descriptor is limited to 14 bits. As such we cannot use 16K as is typically used on the other Intel drivers. However artificially limiting ourselves to 8K can be expensive as this means that we will consume up to 10 descriptors (1 context, 1 for header, and 9 for payload, non-8K aligned) in a single send. I propose that we can reduce this by increasing the maximum data for a 4K aligned block to 12K. We can reduce the descriptors used for a 32K aligned block by 1 by increasing the size like this. In addition we still have the 4K - 1 of space that is still unused. We can use this as a bit of extra padding when dealing with data that is not aligned to 4K. By aligning the descriptors after the first to 4K we can improve the efficiency of PCIe accesses as we can avoid using byte enables and can fetch full TLP transactions after the first fetch of the buffer. This helps to improve PCIe efficiency. Below is the results of testing before and after with this patch: Recv Send Send Utilization Service Demand Socket Socket Message Elapsed Send Recv Send Recv Size Size Size Time Throughput local remote local remote bytes bytes bytes secs. 10^6bits/s % S % U us/KB us/KB Before: 87380 16384 16384 10.00 33682.24 20.27 -1.00 0.592 -1.00 After: 87380 16384 16384 10.00 34204.08 20.54 -1.00 0.590 -1.00 So the net result of this patch is that we have a small gain in throughput due to a reduction in overhead for putting together the frame. Signed-off-by:
Alexander Duyck <aduyck@mirantis.com> Tested-by:
Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by:
Jeff Kirsher <jeffrey.t.kirsher@intel.com> (cherry-picked from 5c4654da) Signed-off-by:
Dan Streetman <ddstreet@canonical.com> Acked-by:
Stefan Bader <stefan.bader@canonical.com> Acked-by:
Kleber Sacilotto de Souza <kleber.souza@canonical.com> Signed-off-by:
Kleber Sacilotto de Souza <kleber.souza@canonical.com>
-