Loading .mailmap +5 −4 Original line number Diff line number Diff line Loading @@ -191,10 +191,11 @@ Gao Xiang <xiang@kernel.org> <gaoxiang25@huawei.com> Gao Xiang <xiang@kernel.org> <hsiangkao@aol.com> Gao Xiang <xiang@kernel.org> <hsiangkao@linux.alibaba.com> Gao Xiang <xiang@kernel.org> <hsiangkao@redhat.com> Geliang Tang <geliang.tang@linux.dev> <geliang.tang@suse.com> Geliang Tang <geliang.tang@linux.dev> <geliangtang@xiaomi.com> Geliang Tang <geliang.tang@linux.dev> <geliangtang@gmail.com> Geliang Tang <geliang.tang@linux.dev> <geliangtang@163.com> Geliang Tang <geliang@kernel.org> <geliang.tang@linux.dev> Geliang Tang <geliang@kernel.org> <geliang.tang@suse.com> Geliang Tang <geliang@kernel.org> <geliangtang@xiaomi.com> Geliang Tang <geliang@kernel.org> <geliangtang@gmail.com> Geliang Tang <geliang@kernel.org> <geliangtang@163.com> Georgi Djakov <djakov@kernel.org> <georgi.djakov@linaro.org> Gerald Schaefer <gerald.schaefer@linux.ibm.com> <geraldsc@de.ibm.com> Gerald Schaefer <gerald.schaefer@linux.ibm.com> <gerald.schaefer@de.ibm.com> Loading Documentation/ABI/testing/sysfs-class-net-statistics +24 −24 Original line number Diff line number Diff line What: /sys/class/<iface>/statistics/collisions What: /sys/class/net/<iface>/statistics/collisions Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -6,7 +6,7 @@ Description: Indicates the number of collisions seen by this network device. This value might not be relevant with all MAC layers. What: /sys/class/<iface>/statistics/multicast What: /sys/class/net/<iface>/statistics/multicast Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -14,7 +14,7 @@ Description: Indicates the number of multicast packets received by this network device. What: /sys/class/<iface>/statistics/rx_bytes What: /sys/class/net/<iface>/statistics/rx_bytes Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -23,7 +23,7 @@ Description: See the network driver for the exact meaning of when this value is incremented. What: /sys/class/<iface>/statistics/rx_compressed What: /sys/class/net/<iface>/statistics/rx_compressed Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -32,7 +32,7 @@ Description: network device. This value might only be relevant for interfaces that support packet compression (e.g: PPP). What: /sys/class/<iface>/statistics/rx_crc_errors What: /sys/class/net/<iface>/statistics/rx_crc_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -41,7 +41,7 @@ Description: by this network device. Note that the specific meaning might depend on the MAC layer used by the interface. What: /sys/class/<iface>/statistics/rx_dropped What: /sys/class/net/<iface>/statistics/rx_dropped Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -51,7 +51,7 @@ Description: packet processing. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_errors What: /sys/class/net/<iface>/statistics/rx_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -59,7 +59,7 @@ Description: Indicates the number of receive errors on this network device. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_fifo_errors What: /sys/class/net/<iface>/statistics/rx_fifo_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -68,7 +68,7 @@ Description: network device. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_frame_errors What: /sys/class/net/<iface>/statistics/rx_frame_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -78,7 +78,7 @@ Description: on the MAC layer protocol used. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_length_errors What: /sys/class/net/<iface>/statistics/rx_length_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -87,7 +87,7 @@ Description: error, oversized or undersized. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_missed_errors What: /sys/class/net/<iface>/statistics/rx_missed_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -96,7 +96,7 @@ Description: due to lack of capacity in the receive side. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_nohandler What: /sys/class/net/<iface>/statistics/rx_nohandler Date: February 2016 KernelVersion: 4.6 Contact: netdev@vger.kernel.org Loading @@ -104,7 +104,7 @@ Description: Indicates the number of received packets that were dropped on an inactive device by the network core. What: /sys/class/<iface>/statistics/rx_over_errors What: /sys/class/net/<iface>/statistics/rx_over_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -114,7 +114,7 @@ Description: (e.g: larger than MTU). See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_packets What: /sys/class/net/<iface>/statistics/rx_packets Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -122,7 +122,7 @@ Description: Indicates the total number of good packets received by this network device. What: /sys/class/<iface>/statistics/tx_aborted_errors What: /sys/class/net/<iface>/statistics/tx_aborted_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -132,7 +132,7 @@ Description: a medium collision). See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/tx_bytes What: /sys/class/net/<iface>/statistics/tx_bytes Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -143,7 +143,7 @@ Description: transmitted packets or all packets that have been queued for transmission. What: /sys/class/<iface>/statistics/tx_carrier_errors What: /sys/class/net/<iface>/statistics/tx_carrier_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -152,7 +152,7 @@ Description: because of carrier errors (e.g: physical link down). See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/tx_compressed What: /sys/class/net/<iface>/statistics/tx_compressed Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -161,7 +161,7 @@ Description: this might only be relevant for devices that support compression (e.g: PPP). What: /sys/class/<iface>/statistics/tx_dropped What: /sys/class/net/<iface>/statistics/tx_dropped Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -170,7 +170,7 @@ Description: See the driver for the exact reasons as to why the packets were dropped. What: /sys/class/<iface>/statistics/tx_errors What: /sys/class/net/<iface>/statistics/tx_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -179,7 +179,7 @@ Description: a network device. See the driver for the exact reasons as to why the packets were dropped. What: /sys/class/<iface>/statistics/tx_fifo_errors What: /sys/class/net/<iface>/statistics/tx_fifo_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -188,7 +188,7 @@ Description: FIFO error. See the driver for the exact reasons as to why the packets were dropped. What: /sys/class/<iface>/statistics/tx_heartbeat_errors What: /sys/class/net/<iface>/statistics/tx_heartbeat_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -197,7 +197,7 @@ Description: reported as heartbeat errors. See the driver for the exact reasons as to why the packets were dropped. What: /sys/class/<iface>/statistics/tx_packets What: /sys/class/net/<iface>/statistics/tx_packets Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -206,7 +206,7 @@ Description: device. See the driver for whether this reports the number of all attempted or successful transmissions. What: /sys/class/<iface>/statistics/tx_window_errors What: /sys/class/net/<iface>/statistics/tx_window_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading Documentation/ABI/testing/sysfs-nvmem-cells +8 −8 Original line number Diff line number Diff line Loading @@ -4,18 +4,18 @@ KernelVersion: 6.5 Contact: Miquel Raynal <miquel.raynal@bootlin.com> Description: The "cells" folder contains one file per cell exposed by the NVMEM device. The name of the file is: <name>@<where>, with <name> being the cell name and <where> its location in the NVMEM device, in hexadecimal (without the '0x' prefix, to mimic device tree node names). The length of the file is the size of the cell (when known). The content of the file is the binary content of the cell (may sometimes be ASCII, likely without trailing character). NVMEM device. The name of the file is: "<name>@<byte>,<bit>", with <name> being the cell name and <where> its location in the NVMEM device, in hexadecimal bytes and bits (without the '0x' prefix, to mimic device tree node names). The length of the file is the size of the cell (when known). The content of the file is the binary content of the cell (may sometimes be ASCII, likely without trailing character). Note: This file is only present if CONFIG_NVMEM_SYSFS is enabled. Example:: hexdump -C /sys/bus/nvmem/devices/1-00563/cells/product-name@d hexdump -C /sys/bus/nvmem/devices/1-00563/cells/product-name@d,0 00000000 54 4e 34 38 4d 2d 50 2d 44 4e |TN48M-P-DN| 0000000a Documentation/arch/arm64/silicon-errata.rst +7 −0 Original line number Diff line number Diff line Loading @@ -243,3 +243,10 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ASR | ASR8601 | #8601001 | N/A | +----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+ | Microsoft | Azure Cobalt 100| #2139208 | ARM64_ERRATUM_2139208 | +----------------+-----------------+-----------------+-----------------------------+ | Microsoft | Azure Cobalt 100| #2067961 | ARM64_ERRATUM_2067961 | +----------------+-----------------+-----------------+-----------------------------+ | Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 | +----------------+-----------------+-----------------+-----------------------------+ Documentation/arch/x86/mds.rst +27 −11 Original line number Diff line number Diff line Loading @@ -95,6 +95,9 @@ The kernel provides a function to invoke the buffer clearing: mds_clear_cpu_buffers() Also macro CLEAR_CPU_BUFFERS can be used in ASM late in exit-to-user path. Other than CFLAGS.ZF, this macro doesn't clobber any registers. The mitigation is invoked on kernel/userspace, hypervisor/guest and C-state (idle) transitions. Loading Loading @@ -138,17 +141,30 @@ Mitigation points When transitioning from kernel to user space the CPU buffers are flushed on affected CPUs when the mitigation is not disabled on the kernel command line. The migitation is enabled through the static key mds_user_clear. The mitigation is invoked in prepare_exit_to_usermode() which covers all but one of the kernel to user space transitions. The exception is when we return from a Non Maskable Interrupt (NMI), which is handled directly in do_nmi(). (The reason that NMI is special is that prepare_exit_to_usermode() can enable IRQs. In NMI context, NMIs are blocked, and we don't want to enable IRQs with NMIs blocked.) command line. The mitigation is enabled through the feature flag X86_FEATURE_CLEAR_CPU_BUF. The mitigation is invoked just before transitioning to userspace after user registers are restored. This is done to minimize the window in which kernel data could be accessed after VERW e.g. via an NMI after VERW. **Corner case not handled** Interrupts returning to kernel don't clear CPUs buffers since the exit-to-user path is expected to do that anyways. But, there could be a case when an NMI is generated in kernel after the exit-to-user path has cleared the buffers. This case is not handled and NMI returning to kernel don't clear CPU buffers because: 1. It is rare to get an NMI after VERW, but before returning to userspace. 2. For an unprivileged user, there is no known way to make that NMI less rare or target it. 3. It would take a large number of these precisely-timed NMIs to mount an actual attack. There's presumably not enough bandwidth. 4. The NMI in question occurs after a VERW, i.e. when user state is restored and most interesting data is already scrubbed. Whats left is only the data that NMI touches, and that may or may not be of any interest. 2. C-State transition Loading Loading
.mailmap +5 −4 Original line number Diff line number Diff line Loading @@ -191,10 +191,11 @@ Gao Xiang <xiang@kernel.org> <gaoxiang25@huawei.com> Gao Xiang <xiang@kernel.org> <hsiangkao@aol.com> Gao Xiang <xiang@kernel.org> <hsiangkao@linux.alibaba.com> Gao Xiang <xiang@kernel.org> <hsiangkao@redhat.com> Geliang Tang <geliang.tang@linux.dev> <geliang.tang@suse.com> Geliang Tang <geliang.tang@linux.dev> <geliangtang@xiaomi.com> Geliang Tang <geliang.tang@linux.dev> <geliangtang@gmail.com> Geliang Tang <geliang.tang@linux.dev> <geliangtang@163.com> Geliang Tang <geliang@kernel.org> <geliang.tang@linux.dev> Geliang Tang <geliang@kernel.org> <geliang.tang@suse.com> Geliang Tang <geliang@kernel.org> <geliangtang@xiaomi.com> Geliang Tang <geliang@kernel.org> <geliangtang@gmail.com> Geliang Tang <geliang@kernel.org> <geliangtang@163.com> Georgi Djakov <djakov@kernel.org> <georgi.djakov@linaro.org> Gerald Schaefer <gerald.schaefer@linux.ibm.com> <geraldsc@de.ibm.com> Gerald Schaefer <gerald.schaefer@linux.ibm.com> <gerald.schaefer@de.ibm.com> Loading
Documentation/ABI/testing/sysfs-class-net-statistics +24 −24 Original line number Diff line number Diff line What: /sys/class/<iface>/statistics/collisions What: /sys/class/net/<iface>/statistics/collisions Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -6,7 +6,7 @@ Description: Indicates the number of collisions seen by this network device. This value might not be relevant with all MAC layers. What: /sys/class/<iface>/statistics/multicast What: /sys/class/net/<iface>/statistics/multicast Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -14,7 +14,7 @@ Description: Indicates the number of multicast packets received by this network device. What: /sys/class/<iface>/statistics/rx_bytes What: /sys/class/net/<iface>/statistics/rx_bytes Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -23,7 +23,7 @@ Description: See the network driver for the exact meaning of when this value is incremented. What: /sys/class/<iface>/statistics/rx_compressed What: /sys/class/net/<iface>/statistics/rx_compressed Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -32,7 +32,7 @@ Description: network device. This value might only be relevant for interfaces that support packet compression (e.g: PPP). What: /sys/class/<iface>/statistics/rx_crc_errors What: /sys/class/net/<iface>/statistics/rx_crc_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -41,7 +41,7 @@ Description: by this network device. Note that the specific meaning might depend on the MAC layer used by the interface. What: /sys/class/<iface>/statistics/rx_dropped What: /sys/class/net/<iface>/statistics/rx_dropped Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -51,7 +51,7 @@ Description: packet processing. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_errors What: /sys/class/net/<iface>/statistics/rx_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -59,7 +59,7 @@ Description: Indicates the number of receive errors on this network device. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_fifo_errors What: /sys/class/net/<iface>/statistics/rx_fifo_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -68,7 +68,7 @@ Description: network device. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_frame_errors What: /sys/class/net/<iface>/statistics/rx_frame_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -78,7 +78,7 @@ Description: on the MAC layer protocol used. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_length_errors What: /sys/class/net/<iface>/statistics/rx_length_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -87,7 +87,7 @@ Description: error, oversized or undersized. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_missed_errors What: /sys/class/net/<iface>/statistics/rx_missed_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -96,7 +96,7 @@ Description: due to lack of capacity in the receive side. See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_nohandler What: /sys/class/net/<iface>/statistics/rx_nohandler Date: February 2016 KernelVersion: 4.6 Contact: netdev@vger.kernel.org Loading @@ -104,7 +104,7 @@ Description: Indicates the number of received packets that were dropped on an inactive device by the network core. What: /sys/class/<iface>/statistics/rx_over_errors What: /sys/class/net/<iface>/statistics/rx_over_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -114,7 +114,7 @@ Description: (e.g: larger than MTU). See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/rx_packets What: /sys/class/net/<iface>/statistics/rx_packets Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -122,7 +122,7 @@ Description: Indicates the total number of good packets received by this network device. What: /sys/class/<iface>/statistics/tx_aborted_errors What: /sys/class/net/<iface>/statistics/tx_aborted_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -132,7 +132,7 @@ Description: a medium collision). See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/tx_bytes What: /sys/class/net/<iface>/statistics/tx_bytes Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -143,7 +143,7 @@ Description: transmitted packets or all packets that have been queued for transmission. What: /sys/class/<iface>/statistics/tx_carrier_errors What: /sys/class/net/<iface>/statistics/tx_carrier_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -152,7 +152,7 @@ Description: because of carrier errors (e.g: physical link down). See the network driver for the exact meaning of this value. What: /sys/class/<iface>/statistics/tx_compressed What: /sys/class/net/<iface>/statistics/tx_compressed Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -161,7 +161,7 @@ Description: this might only be relevant for devices that support compression (e.g: PPP). What: /sys/class/<iface>/statistics/tx_dropped What: /sys/class/net/<iface>/statistics/tx_dropped Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -170,7 +170,7 @@ Description: See the driver for the exact reasons as to why the packets were dropped. What: /sys/class/<iface>/statistics/tx_errors What: /sys/class/net/<iface>/statistics/tx_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -179,7 +179,7 @@ Description: a network device. See the driver for the exact reasons as to why the packets were dropped. What: /sys/class/<iface>/statistics/tx_fifo_errors What: /sys/class/net/<iface>/statistics/tx_fifo_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -188,7 +188,7 @@ Description: FIFO error. See the driver for the exact reasons as to why the packets were dropped. What: /sys/class/<iface>/statistics/tx_heartbeat_errors What: /sys/class/net/<iface>/statistics/tx_heartbeat_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -197,7 +197,7 @@ Description: reported as heartbeat errors. See the driver for the exact reasons as to why the packets were dropped. What: /sys/class/<iface>/statistics/tx_packets What: /sys/class/net/<iface>/statistics/tx_packets Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading @@ -206,7 +206,7 @@ Description: device. See the driver for whether this reports the number of all attempted or successful transmissions. What: /sys/class/<iface>/statistics/tx_window_errors What: /sys/class/net/<iface>/statistics/tx_window_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org Loading
Documentation/ABI/testing/sysfs-nvmem-cells +8 −8 Original line number Diff line number Diff line Loading @@ -4,18 +4,18 @@ KernelVersion: 6.5 Contact: Miquel Raynal <miquel.raynal@bootlin.com> Description: The "cells" folder contains one file per cell exposed by the NVMEM device. The name of the file is: <name>@<where>, with <name> being the cell name and <where> its location in the NVMEM device, in hexadecimal (without the '0x' prefix, to mimic device tree node names). The length of the file is the size of the cell (when known). The content of the file is the binary content of the cell (may sometimes be ASCII, likely without trailing character). NVMEM device. The name of the file is: "<name>@<byte>,<bit>", with <name> being the cell name and <where> its location in the NVMEM device, in hexadecimal bytes and bits (without the '0x' prefix, to mimic device tree node names). The length of the file is the size of the cell (when known). The content of the file is the binary content of the cell (may sometimes be ASCII, likely without trailing character). Note: This file is only present if CONFIG_NVMEM_SYSFS is enabled. Example:: hexdump -C /sys/bus/nvmem/devices/1-00563/cells/product-name@d hexdump -C /sys/bus/nvmem/devices/1-00563/cells/product-name@d,0 00000000 54 4e 34 38 4d 2d 50 2d 44 4e |TN48M-P-DN| 0000000a
Documentation/arch/arm64/silicon-errata.rst +7 −0 Original line number Diff line number Diff line Loading @@ -243,3 +243,10 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ASR | ASR8601 | #8601001 | N/A | +----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+ | Microsoft | Azure Cobalt 100| #2139208 | ARM64_ERRATUM_2139208 | +----------------+-----------------+-----------------+-----------------------------+ | Microsoft | Azure Cobalt 100| #2067961 | ARM64_ERRATUM_2067961 | +----------------+-----------------+-----------------+-----------------------------+ | Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 | +----------------+-----------------+-----------------+-----------------------------+
Documentation/arch/x86/mds.rst +27 −11 Original line number Diff line number Diff line Loading @@ -95,6 +95,9 @@ The kernel provides a function to invoke the buffer clearing: mds_clear_cpu_buffers() Also macro CLEAR_CPU_BUFFERS can be used in ASM late in exit-to-user path. Other than CFLAGS.ZF, this macro doesn't clobber any registers. The mitigation is invoked on kernel/userspace, hypervisor/guest and C-state (idle) transitions. Loading Loading @@ -138,17 +141,30 @@ Mitigation points When transitioning from kernel to user space the CPU buffers are flushed on affected CPUs when the mitigation is not disabled on the kernel command line. The migitation is enabled through the static key mds_user_clear. The mitigation is invoked in prepare_exit_to_usermode() which covers all but one of the kernel to user space transitions. The exception is when we return from a Non Maskable Interrupt (NMI), which is handled directly in do_nmi(). (The reason that NMI is special is that prepare_exit_to_usermode() can enable IRQs. In NMI context, NMIs are blocked, and we don't want to enable IRQs with NMIs blocked.) command line. The mitigation is enabled through the feature flag X86_FEATURE_CLEAR_CPU_BUF. The mitigation is invoked just before transitioning to userspace after user registers are restored. This is done to minimize the window in which kernel data could be accessed after VERW e.g. via an NMI after VERW. **Corner case not handled** Interrupts returning to kernel don't clear CPUs buffers since the exit-to-user path is expected to do that anyways. But, there could be a case when an NMI is generated in kernel after the exit-to-user path has cleared the buffers. This case is not handled and NMI returning to kernel don't clear CPU buffers because: 1. It is rare to get an NMI after VERW, but before returning to userspace. 2. For an unprivileged user, there is no known way to make that NMI less rare or target it. 3. It would take a large number of these precisely-timed NMIs to mount an actual attack. There's presumably not enough bandwidth. 4. The NMI in question occurs after a VERW, i.e. when user state is restored and most interesting data is already scrubbed. Whats left is only the data that NMI touches, and that may or may not be of any interest. 2. C-State transition Loading