Merge branch 'linus' into sched/urgent, to resolve conflict

Conflicts:
	kernel/sched/ext.c

There's a context conflict between this upstream commit:

  3fdb9ebcec10 sched_ext: Start schedulers with consistent p->scx.slice values

... and this fix in sched/urgent:

  98442f0ccd82 sched: Fix delayed_dequeue vs switched_from_fair()

Resolve it.

Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Ingo Molnar 2024-10-17 09:58:07 +02:00
commit be602cde65
1588 changed files with 11635 additions and 9030 deletions

View File

@ -203,12 +203,16 @@ Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> <ezequiel@collabora.com>
Faith Ekstrand <faith.ekstrand@collabora.com> <jason@jlekstrand.net> Faith Ekstrand <faith.ekstrand@collabora.com> <jason@jlekstrand.net>
Faith Ekstrand <faith.ekstrand@collabora.com> <jason.ekstrand@intel.com> Faith Ekstrand <faith.ekstrand@collabora.com> <jason.ekstrand@intel.com>
Faith Ekstrand <faith.ekstrand@collabora.com> <jason.ekstrand@collabora.com> Faith Ekstrand <faith.ekstrand@collabora.com> <jason.ekstrand@collabora.com>
Fangrui Song <i@maskray.me> <maskray@google.com>
Felipe W Damasio <felipewd@terra.com.br> Felipe W Damasio <felipewd@terra.com.br>
Felix Kuhling <fxkuehl@gmx.de> Felix Kuhling <fxkuehl@gmx.de>
Felix Moeller <felix@derklecks.de> Felix Moeller <felix@derklecks.de>
Fenglin Wu <quic_fenglinw@quicinc.com> <fenglinw@codeaurora.org> Fenglin Wu <quic_fenglinw@quicinc.com> <fenglinw@codeaurora.org>
Filipe Lautert <filipe@icewall.org> Filipe Lautert <filipe@icewall.org>
Finn Thain <fthain@linux-m68k.org> <fthain@telegraphics.com.au> Finn Thain <fthain@linux-m68k.org> <fthain@telegraphics.com.au>
Fiona Behrens <me@kloenk.dev>
Fiona Behrens <me@kloenk.dev> <me@kloenk.de>
Fiona Behrens <me@kloenk.dev> <fin@nyantec.com>
Franck Bui-Huu <vagabon.xyz@gmail.com> Franck Bui-Huu <vagabon.xyz@gmail.com>
Frank Rowand <frowand.list@gmail.com> <frank.rowand@am.sony.com> Frank Rowand <frowand.list@gmail.com> <frank.rowand@am.sony.com>
Frank Rowand <frowand.list@gmail.com> <frank.rowand@sony.com> Frank Rowand <frowand.list@gmail.com> <frank.rowand@sony.com>

54
CREDITS
View File

@ -1358,10 +1358,6 @@ D: Major kbuild rework during the 2.5 cycle
D: ISDN Maintainer D: ISDN Maintainer
S: USA S: USA
N: Gerrit Renker
E: gerrit@erg.abdn.ac.uk
D: DCCP protocol support.
N: Philip Gladstone N: Philip Gladstone
E: philip@gladstonefamily.net E: philip@gladstonefamily.net
D: Kernel / timekeeping stuff D: Kernel / timekeeping stuff
@ -1677,11 +1673,6 @@ W: http://www.carumba.com/
D: bug toaster (A1 sauce makes all the difference) D: bug toaster (A1 sauce makes all the difference)
D: Random linux hacker D: Random linux hacker
N: James Hogan
E: jhogan@kernel.org
D: Metag architecture maintainer
D: TZ1090 SoC maintainer
N: Tim Hockin N: Tim Hockin
E: thockin@hockin.org E: thockin@hockin.org
W: http://www.hockin.org/~thockin W: http://www.hockin.org/~thockin
@ -1697,6 +1688,11 @@ D: hwmon subsystem maintainer
D: i2c-sis96x and i2c-stub SMBus drivers D: i2c-sis96x and i2c-stub SMBus drivers
S: USA S: USA
N: James Hogan
E: jhogan@kernel.org
D: Metag architecture maintainer
D: TZ1090 SoC maintainer
N: Dirk Hohndel N: Dirk Hohndel
E: hohndel@suse.de E: hohndel@suse.de
D: The XFree86[tm] Project D: The XFree86[tm] Project
@ -1872,6 +1868,10 @@ S: K osmidomkum 723
S: 160 00 Praha 6 S: 160 00 Praha 6
S: Czech Republic S: Czech Republic
N: Seth Jennings
E: sjenning@redhat.com
D: Creation and maintenance of zswap
N: Jeremy Kerr N: Jeremy Kerr
D: Maintainer of SPU File System D: Maintainer of SPU File System
@ -2188,19 +2188,6 @@ N: Mike Kravetz
E: mike.kravetz@oracle.com E: mike.kravetz@oracle.com
D: Maintenance and development of the hugetlb subsystem D: Maintenance and development of the hugetlb subsystem
N: Seth Jennings
E: sjenning@redhat.com
D: Creation and maintenance of zswap
N: Dan Streetman
E: ddstreet@ieee.org
D: Maintenance and development of zswap
D: Creation and maintenance of the zpool API
N: Vitaly Wool
E: vitaly.wool@konsulko.com
D: Maintenance and development of zswap
N: Andreas S. Krebs N: Andreas S. Krebs
E: akrebs@altavista.net E: akrebs@altavista.net
D: CYPRESS CY82C693 chipset IDE, Digital's PC-Alpha 164SX boards D: CYPRESS CY82C693 chipset IDE, Digital's PC-Alpha 164SX boards
@ -3191,6 +3178,11 @@ N: Ken Pizzini
E: ken@halcyon.com E: ken@halcyon.com
D: CDROM driver "sonycd535" (Sony CDU-535/531) D: CDROM driver "sonycd535" (Sony CDU-535/531)
N: Mathieu Poirier
E: mathieu.poirier@linaro.org
D: CoreSight kernel subsystem, Maintainer 2014-2022
D: Perf tool support for CoreSight
N: Stelian Pop N: Stelian Pop
E: stelian@popies.net E: stelian@popies.net
P: 1024D/EDBB6147 7B36 0E07 04BC 11DC A7A0 D3F7 7185 9E7A EDBB 6147 P: 1024D/EDBB6147 7B36 0E07 04BC 11DC A7A0 D3F7 7185 9E7A EDBB 6147
@ -3300,6 +3292,10 @@ S: Schlossbergring 9
S: 79098 Freiburg S: 79098 Freiburg
S: Germany S: Germany
N: Gerrit Renker
E: gerrit@erg.abdn.ac.uk
D: DCCP protocol support.
N: Thomas Renninger N: Thomas Renninger
E: trenn@suse.de E: trenn@suse.de
D: cpupowerutils D: cpupowerutils
@ -3576,11 +3572,6 @@ D: several improvements to system programs
S: Oldenburg S: Oldenburg
S: Germany S: Germany
N: Mathieu Poirier
E: mathieu.poirier@linaro.org
D: CoreSight kernel subsystem, Maintainer 2014-2022
D: Perf tool support for CoreSight
N: Robert Schwebel N: Robert Schwebel
E: robert@schwebel.de E: robert@schwebel.de
W: https://www.schwebel.de W: https://www.schwebel.de
@ -3771,6 +3762,11 @@ S: Chr. Winthersvej 1 B, st.th.
S: DK-1860 Frederiksberg C S: DK-1860 Frederiksberg C
S: Denmark S: Denmark
N: Dan Streetman
E: ddstreet@ieee.org
D: Maintenance and development of zswap
D: Creation and maintenance of the zpool API
N: Drew Sullivan N: Drew Sullivan
E: drew@ss.org E: drew@ss.org
W: http://www.ss.org/ W: http://www.ss.org/
@ -4286,6 +4282,10 @@ S: Pipers Way
S: Swindon. SN3 1RJ S: Swindon. SN3 1RJ
S: England S: England
N: Vitaly Wool
E: vitaly.wool@konsulko.com
D: Maintenance and development of zswap
N: Chris Wright N: Chris Wright
E: chrisw@sous-sol.org E: chrisw@sous-sol.org
D: hacking on LSM framework and security modules. D: hacking on LSM framework and security modules.

View File

@ -12,7 +12,7 @@ ones.
Of course this is a bad idea to rely on the alignment trap to perform Of course this is a bad idea to rely on the alignment trap to perform
unaligned memory access in general. If those access are predictable, you unaligned memory access in general. If those access are predictable, you
are better to use the macros provided by include/asm/unaligned.h. The are better to use the macros provided by include/linux/unaligned.h. The
alignment trap can fixup misaligned access for the exception cases, but at alignment trap can fixup misaligned access for the exception cases, but at
a high performance cost. It better be rare. a high performance cost. It better be rare.

View File

@ -146,6 +146,8 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A715 | #2645198 | ARM64_ERRATUM_2645198 | | ARM | Cortex-A715 | #2645198 | ARM64_ERRATUM_2645198 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A715 | #3456084 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A720 | #3456091 | ARM64_ERRATUM_3194386 | | ARM | Cortex-A720 | #3456091 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A725 | #3456106 | ARM64_ERRATUM_3194386 | | ARM | Cortex-A725 | #3456106 | ARM64_ERRATUM_3194386 |
@ -186,6 +188,8 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-N2 | #3324339 | ARM64_ERRATUM_3194386 | | ARM | Neoverse-N2 | #3324339 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-N3 | #3456111 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-V1 | #1619801 | N/A | | ARM | Neoverse-V1 | #1619801 | N/A |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-V1 | #3324341 | ARM64_ERRATUM_3194386 | | ARM | Neoverse-V1 | #3324341 | ARM64_ERRATUM_3194386 |
@ -289,3 +293,5 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 | | Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| Microsoft | Azure Cobalt 100| #3324339 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+

View File

@ -37,6 +37,7 @@ Library functionality that is used throughout the kernel.
kref kref
cleanup cleanup
assoc_array assoc_array
folio_queue
xarray xarray
maple_tree maple_tree
idr idr

View File

@ -203,7 +203,7 @@ Avoiding unaligned accesses
=========================== ===========================
The easiest way to avoid unaligned access is to use the get_unaligned() and The easiest way to avoid unaligned access is to use the get_unaligned() and
put_unaligned() macros provided by the <asm/unaligned.h> header file. put_unaligned() macros provided by the <linux/unaligned.h> header file.
Going back to an earlier example of code that potentially causes unaligned Going back to an earlier example of code that potentially causes unaligned
access:: access::

View File

@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/elgin,jg10309-01.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Elgin JG10309-01 SPI-controlled display
maintainers:
- Fabio Estevam <festevam@gmail.com>
description: |
The Elgin JG10309-01 SPI-controlled display is used on the RV1108-Elgin-r1
board and is a custom display.
allOf:
- $ref: /schemas/spi/spi-peripheral-props.yaml#
properties:
compatible:
const: elgin,jg10309-01
reg:
maxItems: 1
spi-max-frequency:
maximum: 24000000
spi-cpha: true
spi-cpol: true
required:
- compatible
- reg
- spi-cpha
- spi-cpol
additionalProperties: false
examples:
- |
spi {
#address-cells = <1>;
#size-cells = <0>;
display@0 {
compatible = "elgin,jg10309-01";
reg = <0>;
spi-max-frequency = <24000000>;
spi-cpha;
spi-cpol;
};
};

View File

@ -82,9 +82,6 @@ allOf:
enum: enum:
- fsl,ls1043a-extirq - fsl,ls1043a-extirq
- fsl,ls1046a-extirq - fsl,ls1046a-extirq
- fsl,ls1088a-extirq
- fsl,ls2080a-extirq
- fsl,lx2160a-extirq
then: then:
properties: properties:
interrupt-map: interrupt-map:
@ -95,6 +92,29 @@ allOf:
- const: 0xf - const: 0xf
- const: 0 - const: 0
- if:
properties:
compatible:
contains:
enum:
- fsl,ls1088a-extirq
- fsl,ls2080a-extirq
- fsl,lx2160a-extirq
# The driver(drivers/irqchip/irq-ls-extirq.c) have not use standard DT
# function to parser interrupt-map. So it doesn't consider '#address-size'
# in parent interrupt controller, such as GIC.
#
# When dt-binding verify interrupt-map, item data matrix is spitted at
# incorrect position. Remove interrupt-map restriction because it always
# wrong.
then:
properties:
interrupt-map-mask:
items:
- const: 0xf
- const: 0
additionalProperties: false additionalProperties: false
examples: examples:

View File

@ -113,7 +113,7 @@ properties:
msi-parent: msi-parent:
deprecated: true deprecated: true
$ref: /schemas/types.yaml#/definitions/phandle maxItems: 1
description: description:
Describes the MSI controller node handling message Describes the MSI controller node handling message
interrupts for the MC. When there is no translation interrupts for the MC. When there is no translation

View File

@ -34,6 +34,7 @@ properties:
and length of the AXI DMA controller IO space, unless and length of the AXI DMA controller IO space, unless
axistream-connected is specified, in which case the reg axistream-connected is specified, in which case the reg
attribute of the node referenced by it is used. attribute of the node referenced by it is used.
minItems: 1
maxItems: 2 maxItems: 2
interrupts: interrupts:
@ -181,7 +182,7 @@ examples:
clock-names = "s_axi_lite_clk", "axis_clk", "ref_clk", "mgt_clk"; clock-names = "s_axi_lite_clk", "axis_clk", "ref_clk", "mgt_clk";
clocks = <&axi_clk>, <&axi_clk>, <&pl_enet_ref_clk>, <&mgt_clk>; clocks = <&axi_clk>, <&axi_clk>, <&pl_enet_ref_clk>, <&mgt_clk>;
phy-mode = "mii"; phy-mode = "mii";
reg = <0x00 0x40000000 0x00 0x40000>; reg = <0x40000000 0x40000>;
xlnx,rxcsum = <0x2>; xlnx,rxcsum = <0x2>;
xlnx,rxmem = <0x800>; xlnx,rxmem = <0x800>;
xlnx,txcsum = <0x2>; xlnx,txcsum = <0x2>;

View File

@ -102,7 +102,7 @@ properties:
default: 2 default: 2
interrupts: interrupts:
anyOf: oneOf:
- minItems: 1 - minItems: 1
items: items:
- description: TX interrupt - description: TX interrupt

View File

@ -30,6 +30,7 @@ properties:
- qcom,apq8096-sndcard - qcom,apq8096-sndcard
- qcom,qcm6490-idp-sndcard - qcom,qcm6490-idp-sndcard
- qcom,qcs6490-rb3gen2-sndcard - qcom,qcs6490-rb3gen2-sndcard
- qcom,qrb4210-rb2-sndcard
- qcom,qrb5165-rb5-sndcard - qcom,qrb5165-rb5-sndcard
- qcom,sc7180-qdsp6-sndcard - qcom,sc7180-qdsp6-sndcard
- qcom,sc8280xp-sndcard - qcom,sc8280xp-sndcard

View File

@ -302,7 +302,7 @@ allOf:
reg-names: reg-names:
items: items:
enum: enum:
- scu - sru
- ssi - ssi
- adg - adg
# for Gen2/Gen3 # for Gen2/Gen3

View File

@ -101,8 +101,6 @@ properties:
- domintech,dmard09 - domintech,dmard09
# DMARD10: 3-axis Accelerometer # DMARD10: 3-axis Accelerometer
- domintech,dmard10 - domintech,dmard10
# Elgin SPI-controlled LCD
- elgin,jg10309-01
# MMA7660FC: 3-Axis Orientation/Motion Detection Sensor # MMA7660FC: 3-Axis Orientation/Motion Detection Sensor
- fsl,mma7660 - fsl,mma7660
# MMA8450Q: Xtrinsic Low-power, 3-axis Xtrinsic Accelerometer # MMA8450Q: Xtrinsic Low-power, 3-axis Xtrinsic Accelerometer

View File

@ -7,12 +7,11 @@ WMI Driver API
The WMI driver core supports a more modern bus-based interface for interacting The WMI driver core supports a more modern bus-based interface for interacting
with WMI devices, and an older GUID-based interface. The latter interface is with WMI devices, and an older GUID-based interface. The latter interface is
considered to be deprecated, so new WMI drivers should generally avoid it since considered to be deprecated, so new WMI drivers should generally avoid it since
it has some issues with multiple WMI devices and events sharing the same GUIDs it has some issues with multiple WMI devices sharing the same GUID.
and/or notification IDs. The modern bus-based interface instead maps each The modern bus-based interface instead maps each WMI device to a
WMI device to a :c:type:`struct wmi_device <wmi_device>`, so it supports :c:type:`struct wmi_device <wmi_device>`, so it supports WMI devices sharing the
WMI devices sharing GUIDs and/or notification IDs. Drivers can then register same GUID. Drivers can then register a :c:type:`struct wmi_driver <wmi_driver>`
a :c:type:`struct wmi_driver <wmi_driver>`, which will be bound to compatible which will be bound to compatible WMI devices by the driver core.
WMI devices by the driver core.
.. kernel-doc:: include/linux/wmi.h .. kernel-doc:: include/linux/wmi.h
:internal: :internal:

View File

@ -181,7 +181,7 @@ Bridge Operations
Bridge Connector Helper Bridge Connector Helper
----------------------- -----------------------
.. kernel-doc:: drivers/gpu/drm/drm_bridge_connector.c .. kernel-doc:: drivers/gpu/drm/display/drm_bridge_connector.c
:doc: overview :doc: overview
@ -204,7 +204,7 @@ MIPI-DSI bridge operation
Bridge Connector Helper Reference Bridge Connector Helper Reference
--------------------------------- ---------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_bridge_connector.c .. kernel-doc:: drivers/gpu/drm/display/drm_bridge_connector.c
:export: :export:
Panel-Bridge Helper Reference Panel-Bridge Helper Reference

View File

@ -144,9 +144,8 @@ IRQ should only be unmasked after a successful call to napi_complete_done():
napi_schedule_irqoff() is a variant of napi_schedule() which takes advantage napi_schedule_irqoff() is a variant of napi_schedule() which takes advantage
of guarantees given by being invoked in IRQ context (no need to of guarantees given by being invoked in IRQ context (no need to
mask interrupts). Note that PREEMPT_RT forces all interrupts mask interrupts). napi_schedule_irqoff() will fall back to napi_schedule() if
to be threaded so the interrupt may need to be marked ``IRQF_NO_THREAD`` IRQs are threaded (such as if ``PREEMPT_RT`` is enabled).
to avoid issues on real-time kernel configurations.
Instance to queue mapping Instance to queue mapping
------------------------- -------------------------

View File

@ -9,7 +9,7 @@ segments between trusted peers. It adds a new TCP header option with
a Message Authentication Code (MAC). MACs are produced from the content a Message Authentication Code (MAC). MACs are produced from the content
of a TCP segment using a hashing function with a password known to both peers. of a TCP segment using a hashing function with a password known to both peers.
The intent of TCP-AO is to deprecate TCP-MD5 providing better security, The intent of TCP-AO is to deprecate TCP-MD5 providing better security,
key rotation and support for variety of hashing algorithms. key rotation and support for a variety of hashing algorithms.
1. Introduction 1. Introduction
=============== ===============
@ -164,9 +164,9 @@ A: It should not, no action needs to be performed [7.5.2.e]::
is not available, no action is required (RNextKeyID of a received is not available, no action is required (RNextKeyID of a received
segment needs to match the MKTs SendID). segment needs to match the MKTs SendID).
Q: How current_key is set and when does it change? It is a user-triggered Q: How is current_key set, and when does it change? Is it a user-triggered
change, or is it by a request from the remote peer? Is it set by the user change, or is it triggered by a request from the remote peer? Is it set by the
explicitly, or by a matching rule? user explicitly, or by a matching rule?
A: current_key is set by RNextKeyID [6.1]:: A: current_key is set by RNextKeyID [6.1]::
@ -233,8 +233,8 @@ always have one current_key [3.3]::
Q: Can a non-TCP-AO connection become a TCP-AO-enabled one? Q: Can a non-TCP-AO connection become a TCP-AO-enabled one?
A: No: for already established non-TCP-AO connection it would be impossible A: No: for an already established non-TCP-AO connection it would be impossible
to switch using TCP-AO as the traffic key generation requires the initial to switch to using TCP-AO, as the traffic key generation requires the initial
sequence numbers. Paraphrasing, starting using TCP-AO would require sequence numbers. Paraphrasing, starting using TCP-AO would require
re-establishing the TCP connection. re-establishing the TCP connection.
@ -292,7 +292,7 @@ no transparency is really needed and modern BGP daemons already have
Linux provides a set of ``setsockopt()s`` and ``getsockopt()s`` that let Linux provides a set of ``setsockopt()s`` and ``getsockopt()s`` that let
userspace manage TCP-AO on a per-socket basis. In order to add/delete MKTs userspace manage TCP-AO on a per-socket basis. In order to add/delete MKTs
``TCP_AO_ADD_KEY`` and ``TCP_AO_DEL_KEY`` TCP socket options must be used ``TCP_AO_ADD_KEY`` and ``TCP_AO_DEL_KEY`` TCP socket options must be used.
It is not allowed to add a key on an established non-TCP-AO connection It is not allowed to add a key on an established non-TCP-AO connection
as well as to remove the last key from TCP-AO connection. as well as to remove the last key from TCP-AO connection.
@ -361,7 +361,7 @@ not implemented.
4. ``setsockopt()`` vs ``accept()`` race 4. ``setsockopt()`` vs ``accept()`` race
======================================== ========================================
In contrast with TCP-MD5 established connection which has just one key, In contrast with an established TCP-MD5 connection which has just one key,
TCP-AO connections may have many keys, which means that accepted connections TCP-AO connections may have many keys, which means that accepted connections
on a listen socket may have any amount of keys as well. As copying all those on a listen socket may have any amount of keys as well. As copying all those
keys on a first properly signed SYN would make the request socket bigger, that keys on a first properly signed SYN would make the request socket bigger, that
@ -374,7 +374,7 @@ keys from sockets that were already established, but not yet ``accept()``'ed,
hanging in the accept queue. hanging in the accept queue.
The reverse is valid as well: if userspace adds a new key for a peer on The reverse is valid as well: if userspace adds a new key for a peer on
a listener socket, the established sockets in accept queue won't a listener socket, the established sockets in the accept queue won't
have the new keys. have the new keys.
At this moment, the resolution for the two races: At this moment, the resolution for the two races:
@ -382,7 +382,7 @@ At this moment, the resolution for the two races:
and ``setsockopt(TCP_AO_DEL_KEY)`` vs ``accept()`` is delegated to userspace. and ``setsockopt(TCP_AO_DEL_KEY)`` vs ``accept()`` is delegated to userspace.
This means that it's expected that userspace would check the MKTs on the socket This means that it's expected that userspace would check the MKTs on the socket
that was returned by ``accept()`` to verify that any key rotation that that was returned by ``accept()`` to verify that any key rotation that
happened on listen socket is reflected on the newly established connection. happened on the listen socket is reflected on the newly established connection.
This is a similar "do-nothing" approach to TCP-MD5 from the kernel side and This is a similar "do-nothing" approach to TCP-MD5 from the kernel side and
may be changed later by introducing new flags to ``tcp_ao_add`` may be changed later by introducing new flags to ``tcp_ao_add``

View File

@ -355,6 +355,8 @@ just do it. As a result, a sequence of smaller series gets merged quicker and
with better review coverage. Re-posting large series also increases the mailing with better review coverage. Re-posting large series also increases the mailing
list traffic. list traffic.
.. _rcs:
Local variable ordering ("reverse xmas tree", "RCS") Local variable ordering ("reverse xmas tree", "RCS")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -391,6 +393,21 @@ APIs and helpers, especially scoped iterators. However, direct use of
``__free()`` within networking core and drivers is discouraged. ``__free()`` within networking core and drivers is discouraged.
Similar guidance applies to declaring variables mid-function. Similar guidance applies to declaring variables mid-function.
Clean-up patches
~~~~~~~~~~~~~~~~
Netdev discourages patches which perform simple clean-ups, which are not in
the context of other work. For example:
* Addressing ``checkpatch.pl`` warnings
* Addressing :ref:`Local variable ordering<rcs>` issues
* Conversions to device-managed APIs (``devm_`` helpers)
This is because it is felt that the churn that such changes produce comes
at a greater cost than the value of such clean-ups.
Conversely, spelling and grammar fixes are not discouraged.
Resending after review Resending after review
~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

View File

@ -66,7 +66,7 @@ BPF scheduler and reverts all tasks back to CFS.
.. code-block:: none .. code-block:: none
# make -j16 -C tools/sched_ext # make -j16 -C tools/sched_ext
# tools/sched_ext/scx_simple # tools/sched_ext/build/bin/scx_simple
local=0 global=3 local=0 global=3
local=5 global=24 local=5 global=24
local=9 global=44 local=9 global=44

View File

@ -175,7 +175,7 @@ field2会导致非对齐访问这并不是不合理的。你会期望field2
避免非对齐访问 避免非对齐访问
============== ==============
避免非对齐访问的最简单方法是使用<asm/unaligned.h>头文件提供的get_unaligned()和 避免非对齐访问的最简单方法是使用<linux/unaligned.h>头文件提供的get_unaligned()和
put_unaligned()宏。 put_unaligned()宏。
回到前面的一个可能导致非对齐访问的代码例子:: 回到前面的一个可能导致非对齐访问的代码例子::

View File

@ -8,7 +8,7 @@ Introduction
============ ============
Many Dell notebooks made after ~2020 support a WMI-based interface for Many Dell notebooks made after ~2020 support a WMI-based interface for
retrieving various system data like battery temperature, ePPID, diagostic data retrieving various system data like battery temperature, ePPID, diagnostic data
and fan/thermal sensor data. and fan/thermal sensor data.
This interface is likely used by the `Dell Data Vault` software on Windows, This interface is likely used by the `Dell Data Vault` software on Windows,
@ -277,7 +277,7 @@ Reverse-Engineering the DDV WMI interface
4. Try to deduce the meaning of a certain WMI method by comparing the control 4. Try to deduce the meaning of a certain WMI method by comparing the control
flow with other ACPI methods (_BIX or _BIF for battery related methods flow with other ACPI methods (_BIX or _BIF for battery related methods
for example). for example).
5. Use the built-in UEFI diagostics to view sensor types/values for fan/thermal 5. Use the built-in UEFI diagnostics to view sensor types/values for fan/thermal
related methods (sometimes overwriting static ACPI data fields can be used related methods (sometimes overwriting static ACPI data fields can be used
to test different sensor type values, since on some machines this data is to test different sensor type values, since on some machines this data is
not reinitialized upon a warm reset). not reinitialized upon a warm reset).

View File

@ -860,7 +860,7 @@ F: drivers/crypto/allwinner/
ALLWINNER DMIC DRIVERS ALLWINNER DMIC DRIVERS
M: Ban Tao <fengzheng923@gmail.com> M: Ban Tao <fengzheng923@gmail.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/allwinner,sun50i-h6-dmic.yaml F: Documentation/devicetree/bindings/sound/allwinner,sun50i-h6-dmic.yaml
F: sound/soc/sunxi/sun50i-dmic.c F: sound/soc/sunxi/sun50i-dmic.c
@ -1517,7 +1517,7 @@ F: drivers/iio/gyro/adxrs290.c
ANALOG DEVICES INC ASOC CODEC DRIVERS ANALOG DEVICES INC ASOC CODEC DRIVERS
M: Lars-Peter Clausen <lars@metafoo.de> M: Lars-Peter Clausen <lars@metafoo.de>
M: Nuno Sá <nuno.sa@analog.com> M: Nuno Sá <nuno.sa@analog.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Supported S: Supported
W: http://wiki.analog.com/ W: http://wiki.analog.com/
W: https://ez.analog.com/linux-software-drivers W: https://ez.analog.com/linux-software-drivers
@ -1594,7 +1594,7 @@ F: drivers/rtc/rtc-goldfish.c
AOA (Apple Onboard Audio) ALSA DRIVER AOA (Apple Onboard Audio) ALSA DRIVER
M: Johannes Berg <johannes@sipsolutions.net> M: Johannes Berg <johannes@sipsolutions.net>
L: linuxppc-dev@lists.ozlabs.org L: linuxppc-dev@lists.ozlabs.org
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: sound/aoa/ F: sound/aoa/
@ -2091,7 +2091,7 @@ F: drivers/crypto/amlogic/
ARM/Amlogic Meson SoC Sound Drivers ARM/Amlogic Meson SoC Sound Drivers
M: Jerome Brunet <jbrunet@baylibre.com> M: Jerome Brunet <jbrunet@baylibre.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/amlogic* F: Documentation/devicetree/bindings/sound/amlogic*
F: sound/soc/meson/ F: sound/soc/meson/
@ -2129,7 +2129,7 @@ F: drivers/*/*alpine*
ARM/APPLE MACHINE SOUND DRIVERS ARM/APPLE MACHINE SOUND DRIVERS
M: Martin Povišer <povik+lin@cutebit.org> M: Martin Povišer <povik+lin@cutebit.org>
L: asahi@lists.linux.dev L: asahi@lists.linux.dev
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/adi,ssm3515.yaml F: Documentation/devicetree/bindings/sound/adi,ssm3515.yaml
F: Documentation/devicetree/bindings/sound/apple,* F: Documentation/devicetree/bindings/sound/apple,*
@ -3732,7 +3732,7 @@ F: arch/arm/boot/dts/microchip/at91-tse850-3.dts
AXENTIA ASOC DRIVERS AXENTIA ASOC DRIVERS
M: Peter Rosin <peda@axentia.se> M: Peter Rosin <peda@axentia.se>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/axentia,* F: Documentation/devicetree/bindings/sound/axentia,*
F: sound/soc/atmel/tse850-pcm5142.c F: sound/soc/atmel/tse850-pcm5142.c
@ -4851,7 +4851,7 @@ F: include/uapi/linux/bsg.h
BT87X AUDIO DRIVER BT87X AUDIO DRIVER
M: Clemens Ladisch <clemens@ladisch.de> M: Clemens Ladisch <clemens@ladisch.de>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
F: Documentation/sound/cards/bt87x.rst F: Documentation/sound/cards/bt87x.rst
@ -4913,7 +4913,7 @@ F: drivers/net/can/bxcan.c
C-MEDIA CMI8788 DRIVER C-MEDIA CMI8788 DRIVER
M: Clemens Ladisch <clemens@ladisch.de> M: Clemens Ladisch <clemens@ladisch.de>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
F: sound/pci/oxygen/ F: sound/pci/oxygen/
@ -7832,6 +7832,8 @@ F: drivers/gpu/drm/xlnx/
DRM GPU SCHEDULER DRM GPU SCHEDULER
M: Luben Tuikov <ltuikov89@gmail.com> M: Luben Tuikov <ltuikov89@gmail.com>
M: Matthew Brost <matthew.brost@intel.com> M: Matthew Brost <matthew.brost@intel.com>
M: Danilo Krummrich <dakr@kernel.org>
M: Philipp Stanner <pstanner@redhat.com>
L: dri-devel@lists.freedesktop.org L: dri-devel@lists.freedesktop.org
S: Maintained S: Maintained
T: git https://gitlab.freedesktop.org/drm/misc/kernel.git T: git https://gitlab.freedesktop.org/drm/misc/kernel.git
@ -8252,7 +8254,7 @@ F: drivers/edac/ti_edac.c
EDIROL UA-101/UA-1000 DRIVER EDIROL UA-101/UA-1000 DRIVER
M: Clemens Ladisch <clemens@ladisch.de> M: Clemens Ladisch <clemens@ladisch.de>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
F: sound/usb/misc/ua101.c F: sound/usb/misc/ua101.c
@ -8814,7 +8816,7 @@ F: drivers/net/can/usb/f81604.c
FIREWIRE AUDIO DRIVERS and IEC 61883-1/6 PACKET STREAMING ENGINE FIREWIRE AUDIO DRIVERS and IEC 61883-1/6 PACKET STREAMING ENGINE
M: Clemens Ladisch <clemens@ladisch.de> M: Clemens Ladisch <clemens@ladisch.de>
M: Takashi Sakamoto <o-takashi@sakamocchi.jp> M: Takashi Sakamoto <o-takashi@sakamocchi.jp>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
F: include/uapi/sound/firewire.h F: include/uapi/sound/firewire.h
@ -8888,7 +8890,7 @@ F: drivers/input/joystick/fsia6b.c
FOCUSRITE SCARLETT2 MIXER DRIVER (Scarlett Gen 2+ and Clarett) FOCUSRITE SCARLETT2 MIXER DRIVER (Scarlett Gen 2+ and Clarett)
M: Geoffrey D. Bennett <g@b4.vu> M: Geoffrey D. Bennett <g@b4.vu>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
W: https://github.com/geoffreybennett/scarlett-gen2 W: https://github.com/geoffreybennett/scarlett-gen2
B: https://github.com/geoffreybennett/scarlett-gen2/issues B: https://github.com/geoffreybennett/scarlett-gen2/issues
@ -8912,6 +8914,7 @@ F: include/linux/fortify-string.h
F: lib/fortify_kunit.c F: lib/fortify_kunit.c
F: lib/memcpy_kunit.c F: lib/memcpy_kunit.c
F: lib/test_fortify/* F: lib/test_fortify/*
K: \bunsafe_memcpy\b
K: \b__NO_FORTIFY\b K: \b__NO_FORTIFY\b
FPGA DFL DRIVERS FPGA DFL DRIVERS
@ -9209,7 +9212,7 @@ M: Shengjiu Wang <shengjiu.wang@gmail.com>
M: Xiubo Li <Xiubo.Lee@gmail.com> M: Xiubo Li <Xiubo.Lee@gmail.com>
R: Fabio Estevam <festevam@gmail.com> R: Fabio Estevam <festevam@gmail.com>
R: Nicolin Chen <nicoleotsuka@gmail.com> R: Nicolin Chen <nicoleotsuka@gmail.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
L: linuxppc-dev@lists.ozlabs.org L: linuxppc-dev@lists.ozlabs.org
S: Maintained S: Maintained
F: sound/soc/fsl/fsl* F: sound/soc/fsl/fsl*
@ -9219,7 +9222,7 @@ FREESCALE SOC LPC32XX SOUND DRIVERS
M: J.M.B. Downing <jonathan.downing@nautel.com> M: J.M.B. Downing <jonathan.downing@nautel.com>
M: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com> M: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
R: Vladimir Zapolskiy <vz@mleia.com> R: Vladimir Zapolskiy <vz@mleia.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
L: linuxppc-dev@lists.ozlabs.org L: linuxppc-dev@lists.ozlabs.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/nxp,lpc3220-i2s.yaml F: Documentation/devicetree/bindings/sound/nxp,lpc3220-i2s.yaml
@ -9227,7 +9230,7 @@ F: sound/soc/fsl/lpc3xxx-*
FREESCALE SOC SOUND QMC DRIVER FREESCALE SOC SOUND QMC DRIVER
M: Herve Codina <herve.codina@bootlin.com> M: Herve Codina <herve.codina@bootlin.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
L: linuxppc-dev@lists.ozlabs.org L: linuxppc-dev@lists.ozlabs.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/fsl,qmc-audio.yaml F: Documentation/devicetree/bindings/sound/fsl,qmc-audio.yaml
@ -10267,7 +10270,7 @@ F: Documentation/devicetree/bindings/arm/hisilicon/low-pin-count.yaml
F: drivers/bus/hisi_lpc.c F: drivers/bus/hisi_lpc.c
HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3) HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3)
M: Yisen Zhuang <yisen.zhuang@huawei.com> M: Jian Shen <shenjian15@huawei.com>
M: Salil Mehta <salil.mehta@huawei.com> M: Salil Mehta <salil.mehta@huawei.com>
M: Jijie Shao <shaojijie@huawei.com> M: Jijie Shao <shaojijie@huawei.com>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
@ -10276,7 +10279,7 @@ W: http://www.hisilicon.com
F: drivers/net/ethernet/hisilicon/hns3/ F: drivers/net/ethernet/hisilicon/hns3/
HISILICON NETWORK SUBSYSTEM DRIVER HISILICON NETWORK SUBSYSTEM DRIVER
M: Yisen Zhuang <yisen.zhuang@huawei.com> M: Jian Shen <shenjian15@huawei.com>
M: Salil Mehta <salil.mehta@huawei.com> M: Salil Mehta <salil.mehta@huawei.com>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
S: Maintained S: Maintained
@ -11154,7 +11157,7 @@ F: drivers/iio/pressure/dps310.c
INFINEON PEB2466 ASoC CODEC INFINEON PEB2466 ASoC CODEC
M: Herve Codina <herve.codina@bootlin.com> M: Herve Codina <herve.codina@bootlin.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/infineon,peb2466.yaml F: Documentation/devicetree/bindings/sound/infineon,peb2466.yaml
F: sound/soc/codecs/peb2466.c F: sound/soc/codecs/peb2466.c
@ -11317,7 +11320,7 @@ M: Bard Liao <yung-chuan.liao@linux.intel.com>
M: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> M: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
M: Kai Vehmanen <kai.vehmanen@linux.intel.com> M: Kai Vehmanen <kai.vehmanen@linux.intel.com>
R: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev> R: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Supported S: Supported
F: sound/soc/intel/ F: sound/soc/intel/
@ -11496,7 +11499,7 @@ F: include/uapi/linux/idxd.h
INTEL IN FIELD SCAN (IFS) DEVICE INTEL IN FIELD SCAN (IFS) DEVICE
M: Jithu Joseph <jithu.joseph@intel.com> M: Jithu Joseph <jithu.joseph@intel.com>
R: Ashok Raj <ashok.raj@intel.com> R: Ashok Raj <ashok.raj.linux@gmail.com>
R: Tony Luck <tony.luck@intel.com> R: Tony Luck <tony.luck@intel.com>
S: Maintained S: Maintained
F: drivers/platform/x86/intel/ifs F: drivers/platform/x86/intel/ifs
@ -12001,7 +12004,7 @@ F: drivers/tty/ipwireless/
IRON DEVICE AUDIO CODEC DRIVERS IRON DEVICE AUDIO CODEC DRIVERS
M: Kiseok Jo <kiseok.jo@irondevice.com> M: Kiseok Jo <kiseok.jo@irondevice.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/irondevice,* F: Documentation/devicetree/bindings/sound/irondevice,*
F: sound/soc/codecs/sma* F: sound/soc/codecs/sma*
@ -12343,6 +12346,7 @@ F: include/linux/randomize_kstack.h
F: kernel/configs/hardening.config F: kernel/configs/hardening.config
F: lib/usercopy_kunit.c F: lib/usercopy_kunit.c
F: mm/usercopy.c F: mm/usercopy.c
F: security/Kconfig.hardening
K: \b(add|choose)_random_kstack_offset\b K: \b(add|choose)_random_kstack_offset\b
K: \b__check_(object_size|heap_object)\b K: \b__check_(object_size|heap_object)\b
K: \b__counted_by\b K: \b__counted_by\b
@ -12459,7 +12463,7 @@ F: virt/kvm/*
KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64) KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
M: Marc Zyngier <maz@kernel.org> M: Marc Zyngier <maz@kernel.org>
M: Oliver Upton <oliver.upton@linux.dev> M: Oliver Upton <oliver.upton@linux.dev>
R: James Morse <james.morse@arm.com> R: Joey Gouly <joey.gouly@arm.com>
R: Suzuki K Poulose <suzuki.poulose@arm.com> R: Suzuki K Poulose <suzuki.poulose@arm.com>
R: Zenghui Yu <yuzenghui@huawei.com> R: Zenghui Yu <yuzenghui@huawei.com>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@ -12940,7 +12944,6 @@ LIBATA PATA ARASAN COMPACT FLASH CONTROLLER
M: Viresh Kumar <vireshk@kernel.org> M: Viresh Kumar <vireshk@kernel.org>
L: linux-ide@vger.kernel.org L: linux-ide@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
F: drivers/ata/pata_arasan_cf.c F: drivers/ata/pata_arasan_cf.c
F: include/linux/pata_arasan_cf_data.h F: include/linux/pata_arasan_cf_data.h
@ -12954,17 +12957,14 @@ LIBATA PATA FARADAY FTIDE010 AND GEMINI SATA BRIDGE DRIVERS
M: Linus Walleij <linus.walleij@linaro.org> M: Linus Walleij <linus.walleij@linaro.org>
L: linux-ide@vger.kernel.org L: linux-ide@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
F: drivers/ata/pata_ftide010.c F: drivers/ata/pata_ftide010.c
F: drivers/ata/sata_gemini.c F: drivers/ata/sata_gemini.c
F: drivers/ata/sata_gemini.h F: drivers/ata/sata_gemini.h
LIBATA SATA AHCI PLATFORM devices support LIBATA SATA AHCI PLATFORM devices support
M: Hans de Goede <hdegoede@redhat.com> M: Hans de Goede <hdegoede@redhat.com>
M: Jens Axboe <axboe@kernel.dk>
L: linux-ide@vger.kernel.org L: linux-ide@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
F: drivers/ata/ahci_platform.c F: drivers/ata/ahci_platform.c
F: drivers/ata/libahci_platform.c F: drivers/ata/libahci_platform.c
F: include/linux/ahci_platform.h F: include/linux/ahci_platform.h
@ -12973,7 +12973,6 @@ LIBATA SATA AHCI SYNOPSYS DWC CONTROLLER DRIVER
M: Serge Semin <fancer.lancer@gmail.com> M: Serge Semin <fancer.lancer@gmail.com>
L: linux-ide@vger.kernel.org L: linux-ide@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata.git
F: Documentation/devicetree/bindings/ata/baikal,bt1-ahci.yaml F: Documentation/devicetree/bindings/ata/baikal,bt1-ahci.yaml
F: Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml F: Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml
F: drivers/ata/ahci_dwc.c F: drivers/ata/ahci_dwc.c
@ -12982,7 +12981,6 @@ LIBATA SATA PROMISE TX2/TX4 CONTROLLER DRIVER
M: Mikael Pettersson <mikpelinux@gmail.com> M: Mikael Pettersson <mikpelinux@gmail.com>
L: linux-ide@vger.kernel.org L: linux-ide@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
F: drivers/ata/sata_promise.* F: drivers/ata/sata_promise.*
LIBATA SUBSYSTEM (Serial and Parallel ATA drivers) LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)
@ -13952,7 +13950,7 @@ F: drivers/media/i2c/max96717.c
MAX9860 MONO AUDIO VOICE CODEC DRIVER MAX9860 MONO AUDIO VOICE CODEC DRIVER
M: Peter Rosin <peda@axentia.se> M: Peter Rosin <peda@axentia.se>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/max9860.txt F: Documentation/devicetree/bindings/sound/max9860.txt
F: sound/soc/codecs/max9860.* F: sound/soc/codecs/max9860.*
@ -15085,7 +15083,7 @@ F: drivers/spi/spi-at91-usart.c
MICROCHIP AUDIO ASOC DRIVERS MICROCHIP AUDIO ASOC DRIVERS
M: Claudiu Beznea <claudiu.beznea@tuxon.dev> M: Claudiu Beznea <claudiu.beznea@tuxon.dev>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Supported S: Supported
F: Documentation/devicetree/bindings/sound/atmel* F: Documentation/devicetree/bindings/sound/atmel*
F: Documentation/devicetree/bindings/sound/axentia,tse850-pcm5142.txt F: Documentation/devicetree/bindings/sound/axentia,tse850-pcm5142.txt
@ -15957,7 +15955,7 @@ F: include/linux/mtd/*nand*.h
NATIVE INSTRUMENTS USB SOUND INTERFACE DRIVER NATIVE INSTRUMENTS USB SOUND INTERFACE DRIVER
M: Daniel Mack <zonque@gmail.com> M: Daniel Mack <zonque@gmail.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
W: http://www.native-instruments.com W: http://www.native-instruments.com
F: sound/usb/caiaq/ F: sound/usb/caiaq/
@ -16197,8 +16195,19 @@ F: lib/random32.c
F: net/ F: net/
F: tools/net/ F: tools/net/
F: tools/testing/selftests/net/ F: tools/testing/selftests/net/
X: Documentation/networking/mac80211-injection.rst
X: Documentation/networking/mac80211_hwsim/
X: Documentation/networking/regulatory.rst
X: include/net/cfg80211.h
X: include/net/ieee80211_radiotap.h
X: include/net/iw_handler.h
X: include/net/mac80211.h
X: include/net/wext.h
X: net/9p/ X: net/9p/
X: net/bluetooth/ X: net/bluetooth/
X: net/mac80211/
X: net/rfkill/
X: net/wireless/
NETWORKING [IPSEC] NETWORKING [IPSEC]
M: Steffen Klassert <steffen.klassert@secunet.com> M: Steffen Klassert <steffen.klassert@secunet.com>
@ -16728,7 +16737,7 @@ F: drivers/extcon/extcon-ptn5150.c
NXP SGTL5000 DRIVER NXP SGTL5000 DRIVER
M: Fabio Estevam <festevam@gmail.com> M: Fabio Estevam <festevam@gmail.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/fsl,sgtl5000.yaml F: Documentation/devicetree/bindings/sound/fsl,sgtl5000.yaml
F: sound/soc/codecs/sgtl5000* F: sound/soc/codecs/sgtl5000*
@ -16752,7 +16761,7 @@ K: "nxp,tda998x"
NXP TFA9879 DRIVER NXP TFA9879 DRIVER
M: Peter Rosin <peda@axentia.se> M: Peter Rosin <peda@axentia.se>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/nxp,tfa9879.yaml F: Documentation/devicetree/bindings/sound/nxp,tfa9879.yaml
F: sound/soc/codecs/tfa9879* F: sound/soc/codecs/tfa9879*
@ -16764,7 +16773,7 @@ F: drivers/nfc/nxp-nci
NXP/Goodix TFA989X (TFA1) DRIVER NXP/Goodix TFA989X (TFA1) DRIVER
M: Stephan Gerhold <stephan@gerhold.net> M: Stephan Gerhold <stephan@gerhold.net>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/nxp,tfa989x.yaml F: Documentation/devicetree/bindings/sound/nxp,tfa989x.yaml
F: sound/soc/codecs/tfa989x.c F: sound/soc/codecs/tfa989x.c
@ -16850,7 +16859,7 @@ F: include/uapi/misc/ocxl.h
OMAP AUDIO SUPPORT OMAP AUDIO SUPPORT
M: Peter Ujfalusi <peter.ujfalusi@gmail.com> M: Peter Ujfalusi <peter.ujfalusi@gmail.com>
M: Jarkko Nikula <jarkko.nikula@bitmer.com> M: Jarkko Nikula <jarkko.nikula@bitmer.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
L: linux-omap@vger.kernel.org L: linux-omap@vger.kernel.org
S: Maintained S: Maintained
F: sound/soc/ti/n810.c F: sound/soc/ti/n810.c
@ -17407,7 +17416,7 @@ F: include/linux/pm_opp.h
OPL4 DRIVER OPL4 DRIVER
M: Clemens Ladisch <clemens@ladisch.de> M: Clemens Ladisch <clemens@ladisch.de>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
F: sound/drivers/opl4/ F: sound/drivers/opl4/
@ -18790,7 +18799,7 @@ F: drivers/crypto/intel/qat/
QCOM AUDIO (ASoC) DRIVERS QCOM AUDIO (ASoC) DRIVERS
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
L: linux-arm-msm@vger.kernel.org L: linux-arm-msm@vger.kernel.org
S: Supported S: Supported
F: Documentation/devicetree/bindings/soc/qcom/qcom,apr* F: Documentation/devicetree/bindings/soc/qcom/qcom,apr*
@ -19652,7 +19661,7 @@ F: drivers/net/ethernet/renesas/rtsn.*
RENESAS IDT821034 ASoC CODEC RENESAS IDT821034 ASoC CODEC
M: Herve Codina <herve.codina@bootlin.com> M: Herve Codina <herve.codina@bootlin.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/renesas,idt821034.yaml F: Documentation/devicetree/bindings/sound/renesas,idt821034.yaml
F: sound/soc/codecs/idt821034.c F: sound/soc/codecs/idt821034.c
@ -20403,7 +20412,7 @@ F: security/safesetid/
SAMSUNG AUDIO (ASoC) DRIVERS SAMSUNG AUDIO (ASoC) DRIVERS
M: Sylwester Nawrocki <s.nawrocki@samsung.com> M: Sylwester Nawrocki <s.nawrocki@samsung.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
B: mailto:linux-samsung-soc@vger.kernel.org B: mailto:linux-samsung-soc@vger.kernel.org
F: Documentation/devicetree/bindings/sound/samsung* F: Documentation/devicetree/bindings/sound/samsung*
@ -20939,7 +20948,7 @@ F: drivers/media/rc/serial_ir.c
SERIAL LOW-POWER INTER-CHIP MEDIA BUS (SLIMbus) SERIAL LOW-POWER INTER-CHIP MEDIA BUS (SLIMbus)
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/slimbus/ F: Documentation/devicetree/bindings/slimbus/
F: drivers/slimbus/ F: drivers/slimbus/
@ -21373,7 +21382,7 @@ F: Documentation/devicetree/bindings/i2c/socionext,synquacer-i2c.yaml
F: drivers/i2c/busses/i2c-synquacer.c F: drivers/i2c/busses/i2c-synquacer.c
SOCIONEXT UNIPHIER SOUND DRIVER SOCIONEXT UNIPHIER SOUND DRIVER
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Orphan S: Orphan
F: sound/soc/uniphier/ F: sound/soc/uniphier/
@ -21632,7 +21641,7 @@ F: tools/testing/selftests/alsa
SOUND - COMPRESSED AUDIO SOUND - COMPRESSED AUDIO
M: Vinod Koul <vkoul@kernel.org> M: Vinod Koul <vkoul@kernel.org>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Supported S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
F: Documentation/sound/designs/compress-offload.rst F: Documentation/sound/designs/compress-offload.rst
@ -21695,7 +21704,7 @@ M: Vinod Koul <vkoul@kernel.org>
M: Bard Liao <yung-chuan.liao@linux.intel.com> M: Bard Liao <yung-chuan.liao@linux.intel.com>
R: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev> R: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
R: Sanyog Kale <sanyog.r.kale@intel.com> R: Sanyog Kale <sanyog.r.kale@intel.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Supported S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire.git
F: Documentation/driver-api/soundwire/ F: Documentation/driver-api/soundwire/
@ -22168,7 +22177,7 @@ F: kernel/static_call.c
STI AUDIO (ASoC) DRIVERS STI AUDIO (ASoC) DRIVERS
M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt F: Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt
F: sound/soc/sti/ F: sound/soc/sti/
@ -22189,7 +22198,7 @@ F: drivers/media/usb/stk1160/
STM32 AUDIO (ASoC) DRIVERS STM32 AUDIO (ASoC) DRIVERS
M: Olivier Moysan <olivier.moysan@foss.st.com> M: Olivier Moysan <olivier.moysan@foss.st.com>
M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml F: Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml
F: Documentation/devicetree/bindings/sound/st,stm32-*.yaml F: Documentation/devicetree/bindings/sound/st,stm32-*.yaml
@ -22892,7 +22901,7 @@ F: drivers/irqchip/irq-xtensa-*
TEXAS INSTRUMENTS ASoC DRIVERS TEXAS INSTRUMENTS ASoC DRIVERS
M: Peter Ujfalusi <peter.ujfalusi@gmail.com> M: Peter Ujfalusi <peter.ujfalusi@gmail.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml F: Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml
F: sound/soc/ti/ F: sound/soc/ti/
@ -22901,7 +22910,7 @@ TEXAS INSTRUMENTS AUDIO (ASoC/HDA) DRIVERS
M: Shenghao Ding <shenghao-ding@ti.com> M: Shenghao Ding <shenghao-ding@ti.com>
M: Kevin Lu <kevin-lu@ti.com> M: Kevin Lu <kevin-lu@ti.com>
M: Baojun Xu <baojun.xu@ti.com> M: Baojun Xu <baojun.xu@ti.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/tas2552.txt F: Documentation/devicetree/bindings/sound/tas2552.txt
F: Documentation/devicetree/bindings/sound/ti,tas2562.yaml F: Documentation/devicetree/bindings/sound/ti,tas2562.yaml
@ -23269,7 +23278,7 @@ F: drivers/soc/ti/*
TI LM49xxx FAMILY ASoC CODEC DRIVERS TI LM49xxx FAMILY ASoC CODEC DRIVERS
M: M R Swami Reddy <mr.swami.reddy@ti.com> M: M R Swami Reddy <mr.swami.reddy@ti.com>
M: Vishwas A Deshpande <vishwas.a.deshpande@ti.com> M: Vishwas A Deshpande <vishwas.a.deshpande@ti.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: sound/soc/codecs/isabelle* F: sound/soc/codecs/isabelle*
F: sound/soc/codecs/lm49453* F: sound/soc/codecs/lm49453*
@ -23284,14 +23293,14 @@ F: drivers/iio/adc/ti-lmp92064.c
TI PCM3060 ASoC CODEC DRIVER TI PCM3060 ASoC CODEC DRIVER
M: Kirill Marinushkin <kmarinushkin@birdec.com> M: Kirill Marinushkin <kmarinushkin@birdec.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/pcm3060.txt F: Documentation/devicetree/bindings/sound/pcm3060.txt
F: sound/soc/codecs/pcm3060* F: sound/soc/codecs/pcm3060*
TI TAS571X FAMILY ASoC CODEC DRIVER TI TAS571X FAMILY ASoC CODEC DRIVER
M: Kevin Cernekee <cernekee@chromium.org> M: Kevin Cernekee <cernekee@chromium.org>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Odd Fixes S: Odd Fixes
F: sound/soc/codecs/tas571x* F: sound/soc/codecs/tas571x*
@ -23319,7 +23328,7 @@ F: drivers/iio/adc/ti-tsc2046.c
TI TWL4030 SERIES SOC CODEC DRIVER TI TWL4030 SERIES SOC CODEC DRIVER
M: Peter Ujfalusi <peter.ujfalusi@gmail.com> M: Peter Ujfalusi <peter.ujfalusi@gmail.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: sound/soc/codecs/twl4030* F: sound/soc/codecs/twl4030*
@ -23995,7 +24004,7 @@ F: drivers/usb/storage/
USB MIDI DRIVER USB MIDI DRIVER
M: Clemens Ladisch <clemens@ladisch.de> M: Clemens Ladisch <clemens@ladisch.de>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
F: sound/usb/midi.* F: sound/usb/midi.*
@ -24173,8 +24182,12 @@ F: drivers/usb/host/xhci*
USER DATAGRAM PROTOCOL (UDP) USER DATAGRAM PROTOCOL (UDP)
M: Willem de Bruijn <willemdebruijn.kernel@gmail.com> M: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
L: netdev@vger.kernel.org
S: Maintained S: Maintained
F: include/linux/udp.h F: include/linux/udp.h
F: include/net/udp.h
F: include/trace/events/udp.h
F: include/uapi/linux/udp.h
F: net/ipv4/udp.c F: net/ipv4/udp.c
F: net/ipv6/udp.c F: net/ipv6/udp.c
@ -24655,7 +24668,7 @@ VIRTIO SOUND DRIVER
M: Anton Yakovlev <anton.yakovlev@opensynergy.com> M: Anton Yakovlev <anton.yakovlev@opensynergy.com>
M: "Michael S. Tsirkin" <mst@redhat.com> M: "Michael S. Tsirkin" <mst@redhat.com>
L: virtualization@lists.linux.dev L: virtualization@lists.linux.dev
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Maintained S: Maintained
F: include/uapi/linux/virtio_snd.h F: include/uapi/linux/virtio_snd.h
F: sound/virtio/* F: sound/virtio/*
@ -25384,7 +25397,7 @@ F: include/xen/interface/io/usbif.h
XEN SOUND FRONTEND DRIVER XEN SOUND FRONTEND DRIVER
M: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> M: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
L: xen-devel@lists.xenproject.org (moderated for non-subscribers) L: xen-devel@lists.xenproject.org (moderated for non-subscribers)
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
S: Supported S: Supported
F: sound/xen/* F: sound/xen/*
@ -25400,7 +25413,7 @@ F: include/xen/arm/swiotlb-xen.h
F: include/xen/swiotlb-xen.h F: include/xen/swiotlb-xen.h
XFS FILESYSTEM XFS FILESYSTEM
M: Chandan Babu R <chandan.babu@oracle.com> M: Carlos Maiolino <cem@kernel.org>
R: Darrick J. Wong <djwong@kernel.org> R: Darrick J. Wong <djwong@kernel.org>
L: linux-xfs@vger.kernel.org L: linux-xfs@vger.kernel.org
S: Supported S: Supported

View File

@ -2,7 +2,7 @@
VERSION = 6 VERSION = 6
PATCHLEVEL = 12 PATCHLEVEL = 12
SUBLEVEL = 0 SUBLEVEL = 0
EXTRAVERSION = -rc1 EXTRAVERSION = -rc3
NAME = Baby Opossum Posse NAME = Baby Opossum Posse
# *DOCUMENTATION* # *DOCUMENTATION*
@ -1645,7 +1645,7 @@ help:
echo '* dtbs - Build device tree blobs for enabled boards'; \ echo '* dtbs - Build device tree blobs for enabled boards'; \
echo ' dtbs_install - Install dtbs to $(INSTALL_DTBS_PATH)'; \ echo ' dtbs_install - Install dtbs to $(INSTALL_DTBS_PATH)'; \
echo ' dt_binding_check - Validate device tree binding documents and examples'; \ echo ' dt_binding_check - Validate device tree binding documents and examples'; \
echo ' dt_binding_schema - Build processed device tree binding schemas'; \ echo ' dt_binding_schemas - Build processed device tree binding schemas'; \
echo ' dtbs_check - Validate device tree source files';\ echo ' dtbs_check - Validate device tree source files';\
echo '') echo '')

View File

@ -838,7 +838,7 @@ config CFI_CLANG
config CFI_ICALL_NORMALIZE_INTEGERS config CFI_ICALL_NORMALIZE_INTEGERS
bool "Normalize CFI tags for integers" bool "Normalize CFI tags for integers"
depends on CFI_CLANG depends on CFI_CLANG
depends on $(cc-option,-fsanitize=kcfi -fsanitize-cfi-icall-experimental-normalize-integers) depends on HAVE_CFI_ICALL_NORMALIZE_INTEGERS
help help
This option normalizes the CFI tags for integer types so that all This option normalizes the CFI tags for integer types so that all
integer types of the same size and signedness receive the same CFI integer types of the same size and signedness receive the same CFI
@ -851,6 +851,22 @@ config CFI_ICALL_NORMALIZE_INTEGERS
This option is necessary for using CFI with Rust. If unsure, say N. This option is necessary for using CFI with Rust. If unsure, say N.
config HAVE_CFI_ICALL_NORMALIZE_INTEGERS
def_bool !GCOV_KERNEL && !KASAN
depends on CFI_CLANG
depends on $(cc-option,-fsanitize=kcfi -fsanitize-cfi-icall-experimental-normalize-integers)
help
Is CFI_ICALL_NORMALIZE_INTEGERS supported with the set of compilers
currently in use?
This option defaults to false if GCOV or KASAN is enabled, as there is
an LLVM bug that makes normalized integers tags incompatible with
KASAN and GCOV. Kconfig currently does not have the infrastructure to
detect whether your rustc compiler contains the fix for this bug, so
it is assumed that it doesn't. If your compiler has the fix, you can
explicitly enable this option in your config file. The Kconfig logic
needed to detect this will be added in a future kernel release.
config CFI_PERMISSIVE config CFI_PERMISSIVE
bool "Use CFI in permissive mode" bool "Use CFI in permissive mode"
depends on CFI_CLANG depends on CFI_CLANG

View File

@ -22,7 +22,7 @@
#include <asm/gentrap.h> #include <asm/gentrap.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/sysinfo.h> #include <asm/sysinfo.h>
#include <asm/hwrpb.h> #include <asm/hwrpb.h>
#include <asm/mmu_context.h> #include <asm/mmu_context.h>

View File

@ -9,7 +9,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#ifdef CONFIG_ISA_ARCV2 #ifdef CONFIG_ISA_ARCV2
#include <asm/barrier.h> #include <asm/barrier.h>

View File

@ -14,6 +14,7 @@ typedef struct {
unsigned long asid[NR_CPUS]; /* 8 bit MMU PID + Generation cycle */ unsigned long asid[NR_CPUS]; /* 8 bit MMU PID + Generation cycle */
} mm_context_t; } mm_context_t;
struct pt_regs;
extern void do_tlb_overlap_fault(unsigned long, unsigned long, struct pt_regs *); extern void do_tlb_overlap_fault(unsigned long, unsigned long, struct pt_regs *);
#endif #endif

View File

@ -1,27 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
*/
#ifndef _ASM_ARC_UNALIGNED_H
#define _ASM_ARC_UNALIGNED_H
/* ARC700 can't handle unaligned Data accesses. */
#include <asm-generic/unaligned.h>
#include <asm/ptrace.h>
#ifdef CONFIG_ARC_EMUL_UNALIGNED
int misaligned_fixup(unsigned long address, struct pt_regs *regs,
struct callee_regs *cregs);
#else
static inline int
misaligned_fixup(unsigned long address, struct pt_regs *regs,
struct callee_regs *cregs)
{
/* Not fixed */
return 1;
}
#endif
#endif /* _ASM_ARC_UNALIGNED_H */

View File

@ -18,8 +18,9 @@
#include <linux/kgdb.h> #include <linux/kgdb.h>
#include <asm/entry.h> #include <asm/entry.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/kprobes.h> #include <asm/kprobes.h>
#include "unaligned.h"
void die(const char *str, struct pt_regs *regs, unsigned long address) void die(const char *str, struct pt_regs *regs, unsigned long address)
{ {

View File

@ -12,6 +12,7 @@
#include <linux/ptrace.h> #include <linux/ptrace.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <asm/disasm.h> #include <asm/disasm.h>
#include "unaligned.h"
#ifdef CONFIG_CPU_BIG_ENDIAN #ifdef CONFIG_CPU_BIG_ENDIAN
#define BE 1 #define BE 1

View File

@ -0,0 +1,16 @@
struct pt_regs;
struct callee_regs;
#ifdef CONFIG_ARC_EMUL_UNALIGNED
int misaligned_fixup(unsigned long address, struct pt_regs *regs,
struct callee_regs *cregs);
#else
static inline int
misaligned_fixup(unsigned long address, struct pt_regs *regs,
struct callee_regs *cregs)
{
/* Not fixed */
return 1;
}
#endif

View File

@ -19,7 +19,7 @@
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/ptrace.h> #include <linux/ptrace.h>
#include <asm/sections.h> #include <asm/sections.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/unwind.h> #include <asm/unwind.h>
extern char __start_unwind[], __end_unwind[]; extern char __start_unwind[], __end_unwind[];

View File

@ -8,7 +8,7 @@
#include <asm/hwcap.h> #include <asm/hwcap.h>
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/aes.h> #include <crypto/aes.h>
#include <crypto/ctr.h> #include <crypto/ctr.h>
#include <crypto/internal/simd.h> #include <crypto/internal/simd.h>

View File

@ -18,7 +18,7 @@
#include <asm/hwcap.h> #include <asm/hwcap.h>
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#define PMULL_MIN_LEN 64L /* minimum size of buffer #define PMULL_MIN_LEN 64L /* minimum size of buffer
* for crc32_pmull_le_16 */ * for crc32_pmull_le_16 */

View File

@ -9,7 +9,7 @@
#include <asm/hwcap.h> #include <asm/hwcap.h>
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/aes.h> #include <crypto/aes.h>
#include <crypto/gcm.h> #include <crypto/gcm.h>
#include <crypto/b128ops.h> #include <crypto/b128ops.h>

View File

@ -8,7 +8,7 @@
#include <asm/hwcap.h> #include <asm/hwcap.h>
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/algapi.h> #include <crypto/algapi.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <crypto/internal/poly1305.h> #include <crypto/internal/poly1305.h>

View File

@ -16,7 +16,7 @@
#include <asm/hwcap.h> #include <asm/hwcap.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include "sha256_glue.h" #include "sha256_glue.h"

View File

@ -12,7 +12,7 @@
#include <linux/string.h> #include <linux/string.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/domain.h> #include <asm/domain.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/unified.h> #include <asm/unified.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/proc-fns.h> #include <asm/proc-fns.h>

View File

@ -22,7 +22,7 @@
#include <asm/cp15.h> #include <asm/cp15.h>
#include <asm/system_info.h> #include <asm/system_info.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/opcodes.h> #include <asm/opcodes.h>
#include "fault.h" #include "fault.h"

View File

@ -200,7 +200,8 @@ config ARM64
select HAVE_DMA_CONTIGUOUS select HAVE_DMA_CONTIGUOUS
select HAVE_DYNAMIC_FTRACE select HAVE_DYNAMIC_FTRACE
select HAVE_DYNAMIC_FTRACE_WITH_ARGS \ select HAVE_DYNAMIC_FTRACE_WITH_ARGS \
if $(cc-option,-fpatchable-function-entry=2) if (GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS || \
CLANG_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS)
select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS \ select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS \
if DYNAMIC_FTRACE_WITH_ARGS && DYNAMIC_FTRACE_WITH_CALL_OPS if DYNAMIC_FTRACE_WITH_ARGS && DYNAMIC_FTRACE_WITH_CALL_OPS
select HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS \ select HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS \
@ -286,12 +287,10 @@ config CLANG_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS
def_bool CC_IS_CLANG def_bool CC_IS_CLANG
# https://github.com/ClangBuiltLinux/linux/issues/1507 # https://github.com/ClangBuiltLinux/linux/issues/1507
depends on AS_IS_GNU || (AS_IS_LLVM && (LD_IS_LLD || LD_VERSION >= 23600)) depends on AS_IS_GNU || (AS_IS_LLVM && (LD_IS_LLD || LD_VERSION >= 23600))
select HAVE_DYNAMIC_FTRACE_WITH_ARGS
config GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS config GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS
def_bool CC_IS_GCC def_bool CC_IS_GCC
depends on $(cc-option,-fpatchable-function-entry=2) depends on $(cc-option,-fpatchable-function-entry=2)
select HAVE_DYNAMIC_FTRACE_WITH_ARGS
config 64BIT config 64BIT
def_bool y def_bool y
@ -1097,6 +1096,7 @@ config ARM64_ERRATUM_3194386
* ARM Cortex-A78C erratum 3324346 * ARM Cortex-A78C erratum 3324346
* ARM Cortex-A78C erratum 3324347 * ARM Cortex-A78C erratum 3324347
* ARM Cortex-A710 erratam 3324338 * ARM Cortex-A710 erratam 3324338
* ARM Cortex-A715 errartum 3456084
* ARM Cortex-A720 erratum 3456091 * ARM Cortex-A720 erratum 3456091
* ARM Cortex-A725 erratum 3456106 * ARM Cortex-A725 erratum 3456106
* ARM Cortex-X1 erratum 3324344 * ARM Cortex-X1 erratum 3324344
@ -1107,6 +1107,7 @@ config ARM64_ERRATUM_3194386
* ARM Cortex-X925 erratum 3324334 * ARM Cortex-X925 erratum 3324334
* ARM Neoverse-N1 erratum 3324349 * ARM Neoverse-N1 erratum 3324349
* ARM Neoverse N2 erratum 3324339 * ARM Neoverse N2 erratum 3324339
* ARM Neoverse-N3 erratum 3456111
* ARM Neoverse-V1 erratum 3324341 * ARM Neoverse-V1 erratum 3324341
* ARM Neoverse V2 erratum 3324336 * ARM Neoverse V2 erratum 3324336
* ARM Neoverse-V3 erratum 3312417 * ARM Neoverse-V3 erratum 3312417

View File

@ -10,7 +10,7 @@
# #
# Copyright (C) 1995-2001 by Russell King # Copyright (C) 1995-2001 by Russell King
LDFLAGS_vmlinux :=--no-undefined -X LDFLAGS_vmlinux :=--no-undefined -X --pic-veneer
ifeq ($(CONFIG_RELOCATABLE), y) ifeq ($(CONFIG_RELOCATABLE), y)
# Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour # Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour

View File

@ -9,7 +9,7 @@
*/ */
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/aes.h> #include <crypto/aes.h>
#include <crypto/scatterwalk.h> #include <crypto/scatterwalk.h>
#include <crypto/internal/aead.h> #include <crypto/internal/aead.h>

View File

@ -7,7 +7,7 @@
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/aes.h> #include <crypto/aes.h>
#include <crypto/algapi.h> #include <crypto/algapi.h>
#include <crypto/internal/simd.h> #include <crypto/internal/simd.h>

View File

@ -7,7 +7,7 @@
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/aes.h> #include <crypto/aes.h>
#include <crypto/gcm.h> #include <crypto/gcm.h>
#include <crypto/algapi.h> #include <crypto/algapi.h>

View File

@ -8,7 +8,7 @@
#include <asm/hwcap.h> #include <asm/hwcap.h>
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/algapi.h> #include <crypto/algapi.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <crypto/internal/poly1305.h> #include <crypto/internal/poly1305.h>

View File

@ -7,7 +7,7 @@
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <crypto/internal/simd.h> #include <crypto/internal/simd.h>
#include <crypto/sha1.h> #include <crypto/sha1.h>

View File

@ -7,7 +7,7 @@
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <crypto/internal/simd.h> #include <crypto/internal/simd.h>
#include <crypto/sha2.h> #include <crypto/sha2.h>

View File

@ -12,7 +12,7 @@
#include <asm/hwcap.h> #include <asm/hwcap.h>
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <crypto/internal/simd.h> #include <crypto/internal/simd.h>
#include <crypto/sha3.h> #include <crypto/sha3.h>

View File

@ -11,7 +11,7 @@
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <crypto/internal/simd.h> #include <crypto/internal/simd.h>
#include <crypto/sha2.h> #include <crypto/sha2.h>

View File

@ -7,7 +7,7 @@
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <crypto/internal/simd.h> #include <crypto/internal/simd.h>
#include <crypto/sm3.h> #include <crypto/sm3.h>

View File

@ -7,7 +7,7 @@
#include <asm/neon.h> #include <asm/neon.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <crypto/internal/simd.h> #include <crypto/internal/simd.h>
#include <crypto/sm3.h> #include <crypto/sm3.h>

View File

@ -94,6 +94,7 @@
#define ARM_CPU_PART_NEOVERSE_V3 0xD84 #define ARM_CPU_PART_NEOVERSE_V3 0xD84
#define ARM_CPU_PART_CORTEX_X925 0xD85 #define ARM_CPU_PART_CORTEX_X925 0xD85
#define ARM_CPU_PART_CORTEX_A725 0xD87 #define ARM_CPU_PART_CORTEX_A725 0xD87
#define ARM_CPU_PART_NEOVERSE_N3 0xD8E
#define APM_CPU_PART_XGENE 0x000 #define APM_CPU_PART_XGENE 0x000
#define APM_CPU_VAR_POTENZA 0x00 #define APM_CPU_VAR_POTENZA 0x00
@ -176,6 +177,7 @@
#define MIDR_NEOVERSE_V3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3) #define MIDR_NEOVERSE_V3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3)
#define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925) #define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925)
#define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725) #define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725)
#define MIDR_NEOVERSE_N3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N3)
#define MIDR_THUNDERX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX) #define MIDR_THUNDERX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX)
#define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX) #define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX)
#define MIDR_THUNDERX_83XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_83XX) #define MIDR_THUNDERX_83XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_83XX)

View File

@ -1441,11 +1441,6 @@ void kvm_set_vm_id_reg(struct kvm *kvm, u32 reg, u64 val);
sign_extend64(__val, id##_##fld##_WIDTH - 1); \ sign_extend64(__val, id##_##fld##_WIDTH - 1); \
}) })
#define expand_field_sign(id, fld, val) \
(id##_##fld##_SIGNED ? \
__expand_field_sign_signed(id, fld, val) : \
__expand_field_sign_unsigned(id, fld, val))
#define get_idreg_field_unsigned(kvm, id, fld) \ #define get_idreg_field_unsigned(kvm, id, fld) \
({ \ ({ \
u64 __val = kvm_read_vm_id_reg((kvm), SYS_##id); \ u64 __val = kvm_read_vm_id_reg((kvm), SYS_##id); \
@ -1461,20 +1456,26 @@ void kvm_set_vm_id_reg(struct kvm *kvm, u32 reg, u64 val);
#define get_idreg_field_enum(kvm, id, fld) \ #define get_idreg_field_enum(kvm, id, fld) \
get_idreg_field_unsigned(kvm, id, fld) get_idreg_field_unsigned(kvm, id, fld)
#define get_idreg_field(kvm, id, fld) \ #define kvm_cmp_feat_signed(kvm, id, fld, op, limit) \
(get_idreg_field_signed((kvm), id, fld) op __expand_field_sign_signed(id, fld, limit))
#define kvm_cmp_feat_unsigned(kvm, id, fld, op, limit) \
(get_idreg_field_unsigned((kvm), id, fld) op __expand_field_sign_unsigned(id, fld, limit))
#define kvm_cmp_feat(kvm, id, fld, op, limit) \
(id##_##fld##_SIGNED ? \ (id##_##fld##_SIGNED ? \
get_idreg_field_signed(kvm, id, fld) : \ kvm_cmp_feat_signed(kvm, id, fld, op, limit) : \
get_idreg_field_unsigned(kvm, id, fld)) kvm_cmp_feat_unsigned(kvm, id, fld, op, limit))
#define kvm_has_feat(kvm, id, fld, limit) \ #define kvm_has_feat(kvm, id, fld, limit) \
(get_idreg_field((kvm), id, fld) >= expand_field_sign(id, fld, limit)) kvm_cmp_feat(kvm, id, fld, >=, limit)
#define kvm_has_feat_enum(kvm, id, fld, val) \ #define kvm_has_feat_enum(kvm, id, fld, val) \
(get_idreg_field_unsigned((kvm), id, fld) == __expand_field_sign_unsigned(id, fld, val)) kvm_cmp_feat_unsigned(kvm, id, fld, ==, val)
#define kvm_has_feat_range(kvm, id, fld, min, max) \ #define kvm_has_feat_range(kvm, id, fld, min, max) \
(get_idreg_field((kvm), id, fld) >= expand_field_sign(id, fld, min) && \ (kvm_cmp_feat(kvm, id, fld, >=, min) && \
get_idreg_field((kvm), id, fld) <= expand_field_sign(id, fld, max)) kvm_cmp_feat(kvm, id, fld, <=, max))
/* Check for a given level of PAuth support */ /* Check for a given level of PAuth support */
#define kvm_has_pauth(k, l) \ #define kvm_has_pauth(k, l) \

View File

@ -439,6 +439,7 @@ static const struct midr_range erratum_spec_ssbs_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78), MIDR_ALL_VERSIONS(MIDR_CORTEX_A78),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78C), MIDR_ALL_VERSIONS(MIDR_CORTEX_A78C),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A710), MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A715),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A720), MIDR_ALL_VERSIONS(MIDR_CORTEX_A720),
MIDR_ALL_VERSIONS(MIDR_CORTEX_A725), MIDR_ALL_VERSIONS(MIDR_CORTEX_A725),
MIDR_ALL_VERSIONS(MIDR_CORTEX_X1), MIDR_ALL_VERSIONS(MIDR_CORTEX_X1),
@ -447,8 +448,10 @@ static const struct midr_range erratum_spec_ssbs_list[] = {
MIDR_ALL_VERSIONS(MIDR_CORTEX_X3), MIDR_ALL_VERSIONS(MIDR_CORTEX_X3),
MIDR_ALL_VERSIONS(MIDR_CORTEX_X4), MIDR_ALL_VERSIONS(MIDR_CORTEX_X4),
MIDR_ALL_VERSIONS(MIDR_CORTEX_X925), MIDR_ALL_VERSIONS(MIDR_CORTEX_X925),
MIDR_ALL_VERSIONS(MIDR_MICROSOFT_AZURE_COBALT_100),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1), MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2), MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N3),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1), MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2), MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2),
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3), MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3),

View File

@ -338,7 +338,7 @@ static inline void __hyp_sve_save_host(void)
struct cpu_sve_state *sve_state = *host_data_ptr(sve_state); struct cpu_sve_state *sve_state = *host_data_ptr(sve_state);
sve_state->zcr_el1 = read_sysreg_el1(SYS_ZCR); sve_state->zcr_el1 = read_sysreg_el1(SYS_ZCR);
write_sysreg_s(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2); write_sysreg_s(sve_vq_from_vl(kvm_host_sve_max_vl) - 1, SYS_ZCR_EL2);
__sve_save_state(sve_state->sve_regs + sve_ffr_offset(kvm_host_sve_max_vl), __sve_save_state(sve_state->sve_regs + sve_ffr_offset(kvm_host_sve_max_vl),
&sve_state->fpsr, &sve_state->fpsr,
true); true);

View File

@ -33,7 +33,7 @@ static void __hyp_sve_save_guest(struct kvm_vcpu *vcpu)
*/ */
sve_cond_update_zcr_vq(vcpu_sve_max_vq(vcpu) - 1, SYS_ZCR_EL2); sve_cond_update_zcr_vq(vcpu_sve_max_vq(vcpu) - 1, SYS_ZCR_EL2);
__sve_save_state(vcpu_sve_pffr(vcpu), &vcpu->arch.ctxt.fp_regs.fpsr, true); __sve_save_state(vcpu_sve_pffr(vcpu), &vcpu->arch.ctxt.fp_regs.fpsr, true);
write_sysreg_s(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2); write_sysreg_s(sve_vq_from_vl(kvm_host_sve_max_vl) - 1, SYS_ZCR_EL2);
} }
static void __hyp_sve_restore_host(void) static void __hyp_sve_restore_host(void)
@ -45,10 +45,11 @@ static void __hyp_sve_restore_host(void)
* the host. The layout of the data when saving the sve state depends * the host. The layout of the data when saving the sve state depends
* on the VL, so use a consistent (i.e., the maximum) host VL. * on the VL, so use a consistent (i.e., the maximum) host VL.
* *
* Setting ZCR_EL2 to ZCR_ELx_LEN_MASK sets the effective length * Note that this constrains the PE to the maximum shared VL
* supported by the system (or limited at EL3). * that was discovered, if we wish to use larger VLs this will
* need to be revisited.
*/ */
write_sysreg_s(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2); write_sysreg_s(sve_vq_from_vl(kvm_host_sve_max_vl) - 1, SYS_ZCR_EL2);
__sve_restore_state(sve_state->sve_regs + sve_ffr_offset(kvm_host_sve_max_vl), __sve_restore_state(sve_state->sve_regs + sve_ffr_offset(kvm_host_sve_max_vl),
&sve_state->fpsr, &sve_state->fpsr,
true); true);
@ -488,7 +489,8 @@ void handle_trap(struct kvm_cpu_context *host_ctxt)
case ESR_ELx_EC_SVE: case ESR_ELx_EC_SVE:
cpacr_clear_set(0, CPACR_ELx_ZEN); cpacr_clear_set(0, CPACR_ELx_ZEN);
isb(); isb();
sve_cond_update_zcr_vq(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2); sve_cond_update_zcr_vq(sve_vq_from_vl(kvm_host_sve_max_vl) - 1,
SYS_ZCR_EL2);
break; break;
case ESR_ELx_EC_IABT_LOW: case ESR_ELx_EC_IABT_LOW:
case ESR_ELx_EC_DABT_LOW: case ESR_ELx_EC_DABT_LOW:

View File

@ -574,12 +574,14 @@ int __pkvm_init_vcpu(pkvm_handle_t handle, struct kvm_vcpu *host_vcpu,
unlock: unlock:
hyp_spin_unlock(&vm_table_lock); hyp_spin_unlock(&vm_table_lock);
if (ret) if (ret) {
unmap_donated_memory(hyp_vcpu, sizeof(*hyp_vcpu)); unmap_donated_memory(hyp_vcpu, sizeof(*hyp_vcpu));
return ret;
}
hyp_vcpu->vcpu.arch.cptr_el2 = kvm_get_reset_cptr_el2(&hyp_vcpu->vcpu); hyp_vcpu->vcpu.arch.cptr_el2 = kvm_get_reset_cptr_el2(&hyp_vcpu->vcpu);
return ret; return 0;
} }
static void static void

View File

@ -13,7 +13,7 @@
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <asm/cpu-features.h> #include <asm/cpu-features.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#define _CRC32(crc, value, size, type) \ #define _CRC32(crc, value, size, type) \
do { \ do { \

View File

@ -8,7 +8,7 @@
#ifndef _ASM_MICROBLAZE_FLAT_H #ifndef _ASM_MICROBLAZE_FLAT_H
#define _ASM_MICROBLAZE_FLAT_H #define _ASM_MICROBLAZE_FLAT_H
#include <asm/unaligned.h> #include <linux/unaligned.h>
/* /*
* Microblaze works a little differently from other arches, because * Microblaze works a little differently from other arches, because

View File

@ -16,7 +16,7 @@
#include <linux/libfdt.h> #include <linux/libfdt.h>
#include <asm/addrspace.h> #include <asm/addrspace.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm-generic/vmlinux.lds.h> #include <asm-generic/vmlinux.lds.h>
#include "decompress.h" #include "decompress.h"

View File

@ -14,7 +14,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/string.h> #include <linux/string.h>
#include <asm/mipsregs.h> #include <asm/mipsregs.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>

View File

@ -5,7 +5,7 @@
* Copyright (C) 2019 Linaro Ltd. <ard.biesheuvel@linaro.org> * Copyright (C) 2019 Linaro Ltd. <ard.biesheuvel@linaro.org>
*/ */
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <crypto/algapi.h> #include <crypto/algapi.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <crypto/internal/poly1305.h> #include <crypto/internal/poly1305.h>

View File

@ -23,7 +23,7 @@
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <asm/traps.h> #include <asm/traps.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
/* instructions we emulate */ /* instructions we emulate */
#define INST_LDHU 0x0b #define INST_LDHU 0x0b

View File

@ -6,7 +6,7 @@
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/elf.h> #include <linux/elf.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/page.h> #include <asm/page.h>
#include "sizes.h" #include "sizes.h"

View File

@ -1,11 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_PARISC_UNALIGNED_H
#define _ASM_PARISC_UNALIGNED_H
#include <asm-generic/unaligned.h>
struct pt_regs;
void handle_unaligned(struct pt_regs *regs);
int check_unaligned(struct pt_regs *regs);
#endif /* _ASM_PARISC_UNALIGNED_H */

View File

@ -36,7 +36,7 @@
#include <asm/io.h> #include <asm/io.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/traps.h> #include <asm/traps.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <linux/atomic.h> #include <linux/atomic.h>
#include <asm/smp.h> #include <asm/smp.h>
#include <asm/pdc.h> #include <asm/pdc.h>
@ -47,6 +47,8 @@
#include <linux/kgdb.h> #include <linux/kgdb.h>
#include <linux/kprobes.h> #include <linux/kprobes.h>
#include "unaligned.h"
#if defined(CONFIG_LIGHTWEIGHT_SPINLOCK_CHECK) #if defined(CONFIG_LIGHTWEIGHT_SPINLOCK_CHECK)
#include <asm/spinlock.h> #include <asm/spinlock.h>
#endif #endif

View File

@ -12,9 +12,10 @@
#include <linux/ratelimit.h> #include <linux/ratelimit.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/sysctl.h> #include <linux/sysctl.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/hardirq.h> #include <asm/hardirq.h>
#include <asm/traps.h> #include <asm/traps.h>
#include "unaligned.h"
/* #define DEBUG_UNALIGNED 1 */ /* #define DEBUG_UNALIGNED 1 */

View File

@ -0,0 +1,3 @@
struct pt_regs;
void handle_unaligned(struct pt_regs *regs);
int check_unaligned(struct pt_regs *regs);

View File

@ -5,7 +5,7 @@
* Copyright 2022- IBM Inc. All rights reserved * Copyright 2022- IBM Inc. All rights reserved
*/ */
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/switch_to.h> #include <asm/switch_to.h>
#include <crypto/aes.h> #include <crypto/aes.h>

View File

@ -14,7 +14,7 @@
#include <crypto/internal/poly1305.h> #include <crypto/internal/poly1305.h>
#include <crypto/internal/simd.h> #include <crypto/internal/simd.h>
#include <linux/cpufeature.h> #include <linux/cpufeature.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/switch_to.h> #include <asm/switch_to.h>

View File

@ -494,6 +494,7 @@ FixupDAR:/* Entry point for dcbx workaround. */
bctr /* jump into table */ bctr /* jump into table */
152: 152:
mfdar r11 mfdar r11
mtdar r10
mtctr r11 /* restore ctr reg from DAR */ mtctr r11 /* restore ctr reg from DAR */
mfspr r11, SPRN_SPRG_THREAD mfspr r11, SPRN_SPRG_THREAD
stw r10, DAR(r11) stw r10, DAR(r11)

View File

@ -22,7 +22,7 @@ endif
ifneq ($(c-getrandom-y),) ifneq ($(c-getrandom-y),)
CFLAGS_vgetrandom-32.o += -include $(c-getrandom-y) CFLAGS_vgetrandom-32.o += -include $(c-getrandom-y)
CFLAGS_vgetrandom-64.o += -include $(c-getrandom-y) $(call cc-option, -ffixed-r30) CFLAGS_vgetrandom-64.o += -include $(c-getrandom-y)
endif endif
# Build rules # Build rules

View File

@ -19,7 +19,7 @@
#include <uapi/linux/papr_pdsm.h> #include <uapi/linux/papr_pdsm.h>
#include <linux/papr_scm.h> #include <linux/papr_scm.h>
#include <asm/mce.h> #include <asm/mce.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <linux/perf_event.h> #include <linux/perf_event.h>
#define BIND_ANY_ADDR (~0ul) #define BIND_ANY_ADDR (~0ul)

View File

@ -777,8 +777,7 @@ config IRQ_STACKS
config THREAD_SIZE_ORDER config THREAD_SIZE_ORDER
int "Kernel stack size (in power-of-two numbers of page size)" if VMAP_STACK && EXPERT int "Kernel stack size (in power-of-two numbers of page size)" if VMAP_STACK && EXPERT
range 0 4 range 0 4
default 1 if 32BIT && !KASAN default 1 if 32BIT
default 3 if 64BIT && KASAN
default 2 default 2
help help
Specify the Pages of thread stack size (from 4KB to 64KB), which also Specify the Pages of thread stack size (from 4KB to 64KB), which also

View File

@ -13,7 +13,12 @@
#include <linux/sizes.h> #include <linux/sizes.h>
/* thread information allocation */ /* thread information allocation */
#define THREAD_SIZE_ORDER CONFIG_THREAD_SIZE_ORDER #ifdef CONFIG_KASAN
#define KASAN_STACK_ORDER 1
#else
#define KASAN_STACK_ORDER 0
#endif
#define THREAD_SIZE_ORDER (CONFIG_THREAD_SIZE_ORDER + KASAN_STACK_ORDER)
#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER) #define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
/* /*

View File

@ -16,8 +16,10 @@
#include <asm/pci_io.h> #include <asm/pci_io.h>
#define xlate_dev_mem_ptr xlate_dev_mem_ptr #define xlate_dev_mem_ptr xlate_dev_mem_ptr
#define kc_xlate_dev_mem_ptr xlate_dev_mem_ptr
void *xlate_dev_mem_ptr(phys_addr_t phys); void *xlate_dev_mem_ptr(phys_addr_t phys);
#define unxlate_dev_mem_ptr unxlate_dev_mem_ptr #define unxlate_dev_mem_ptr unxlate_dev_mem_ptr
#define kc_unxlate_dev_mem_ptr unxlate_dev_mem_ptr
void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr); void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
#define IO_SPACE_LIMIT 0 #define IO_SPACE_LIMIT 0

View File

@ -9,7 +9,7 @@
#ifndef __ASM_SH_FLAT_H #ifndef __ASM_SH_FLAT_H
#define __ASM_SH_FLAT_H #define __ASM_SH_FLAT_H
#include <asm/unaligned.h> #include <linux/unaligned.h>
static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags,
u32 *addr) u32 *addr)

View File

@ -24,7 +24,7 @@
#include <asm/dwarf.h> #include <asm/dwarf.h>
#include <asm/unwinder.h> #include <asm/unwinder.h>
#include <asm/sections.h> #include <asm/sections.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/stacktrace.h> #include <asm/stacktrace.h>
/* Reserve enough memory for two stack frames */ /* Reserve enough memory for two stack frames */

View File

@ -18,7 +18,7 @@
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/dwarf.h> #include <asm/dwarf.h>
int apply_relocate_add(Elf32_Shdr *sechdrs, int apply_relocate_add(Elf32_Shdr *sechdrs,

View File

@ -20,7 +20,7 @@
#include <asm/pstate.h> #include <asm/pstate.h>
#include <asm/elf.h> #include <asm/elf.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include "opcodes.h" #include "opcodes.h"

View File

@ -14,7 +14,7 @@
#include <linux/virtio-uml.h> #include <linux/virtio-uml.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/msi.h> #include <linux/msi.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <irq_kern.h> #include <irq_kern.h>
#define MAX_DEVICES 8 #define MAX_DEVICES 8

View File

@ -8,7 +8,7 @@
#define __UM_UACCESS_H #define __UM_UACCESS_H
#include <asm/elf.h> #include <asm/elf.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#define __under_task_size(addr, size) \ #define __under_task_size(addr, size) \
(((unsigned long) (addr) < TASK_SIZE) && \ (((unsigned long) (addr) < TASK_SIZE) && \

View File

@ -8,7 +8,7 @@
* Copyright (C) 2006 NTT (Nippon Telegraph and Telephone Corporation) * Copyright (C) 2006 NTT (Nippon Telegraph and Telephone Corporation)
*/ */
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <linux/crypto.h> #include <linux/crypto.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/module.h> #include <linux/module.h>

View File

@ -19,7 +19,7 @@
#include <crypto/internal/simd.h> #include <crypto/internal/simd.h>
#include <asm/cpu_device_id.h> #include <asm/cpu_device_id.h>
#include <asm/simd.h> #include <asm/simd.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#define GHASH_BLOCK_SIZE 16 #define GHASH_BLOCK_SIZE 16
#define GHASH_DIGEST_SIZE 16 #define GHASH_DIGEST_SIZE 16

View File

@ -2,6 +2,8 @@
#ifndef _ASM_X86_FTRACE_H #ifndef _ASM_X86_FTRACE_H
#define _ASM_X86_FTRACE_H #define _ASM_X86_FTRACE_H
#include <asm/ptrace.h>
#ifdef CONFIG_FUNCTION_TRACER #ifdef CONFIG_FUNCTION_TRACER
#ifndef CC_USING_FENTRY #ifndef CC_USING_FENTRY
# error Compiler does not support fentry? # error Compiler does not support fentry?

View File

@ -26,7 +26,7 @@ void __noreturn machine_real_restart(unsigned int type);
#define MRR_APM 1 #define MRR_APM 1
typedef void (cpu_emergency_virt_cb)(void); typedef void (cpu_emergency_virt_cb)(void);
#if IS_ENABLED(CONFIG_KVM_INTEL) || IS_ENABLED(CONFIG_KVM_AMD) #if IS_ENABLED(CONFIG_KVM_X86)
void cpu_emergency_register_virt_callback(cpu_emergency_virt_cb *callback); void cpu_emergency_register_virt_callback(cpu_emergency_virt_cb *callback);
void cpu_emergency_unregister_virt_callback(cpu_emergency_virt_cb *callback); void cpu_emergency_unregister_virt_callback(cpu_emergency_virt_cb *callback);
void cpu_emergency_disable_virtualization(void); void cpu_emergency_disable_virtualization(void);
@ -34,7 +34,7 @@ void cpu_emergency_disable_virtualization(void);
static inline void cpu_emergency_register_virt_callback(cpu_emergency_virt_cb *callback) {} static inline void cpu_emergency_register_virt_callback(cpu_emergency_virt_cb *callback) {}
static inline void cpu_emergency_unregister_virt_callback(cpu_emergency_virt_cb *callback) {} static inline void cpu_emergency_unregister_virt_callback(cpu_emergency_virt_cb *callback) {}
static inline void cpu_emergency_disable_virtualization(void) {} static inline void cpu_emergency_disable_virtualization(void) {}
#endif /* CONFIG_KVM_INTEL || CONFIG_KVM_AMD */ #endif /* CONFIG_KVM_X86 */
typedef void (*nmi_shootdown_cb)(int, struct pt_regs*); typedef void (*nmi_shootdown_cb)(int, struct pt_regs*);
void nmi_shootdown_cpus(nmi_shootdown_cb callback); void nmi_shootdown_cpus(nmi_shootdown_cb callback);

View File

@ -530,7 +530,7 @@ static inline void kb_wait(void)
static inline void nmi_shootdown_cpus_on_restart(void); static inline void nmi_shootdown_cpus_on_restart(void);
#if IS_ENABLED(CONFIG_KVM_INTEL) || IS_ENABLED(CONFIG_KVM_AMD) #if IS_ENABLED(CONFIG_KVM_X86)
/* RCU-protected callback to disable virtualization prior to reboot. */ /* RCU-protected callback to disable virtualization prior to reboot. */
static cpu_emergency_virt_cb __rcu *cpu_emergency_virt_callback; static cpu_emergency_virt_cb __rcu *cpu_emergency_virt_callback;
@ -600,7 +600,7 @@ static void emergency_reboot_disable_virtualization(void)
} }
#else #else
static void emergency_reboot_disable_virtualization(void) { } static void emergency_reboot_disable_virtualization(void) { }
#endif /* CONFIG_KVM_INTEL || CONFIG_KVM_AMD */ #endif /* CONFIG_KVM_X86 */
void __attribute__((weak)) mach_reboot_fixups(void) void __attribute__((weak)) mach_reboot_fixups(void)
{ {

View File

@ -17,8 +17,8 @@ menuconfig VIRTUALIZATION
if VIRTUALIZATION if VIRTUALIZATION
config KVM config KVM_X86
tristate "Kernel-based Virtual Machine (KVM) support" def_tristate KVM if KVM_INTEL || KVM_AMD
depends on X86_LOCAL_APIC depends on X86_LOCAL_APIC
select KVM_COMMON select KVM_COMMON
select KVM_GENERIC_MMU_NOTIFIER select KVM_GENERIC_MMU_NOTIFIER
@ -44,7 +44,11 @@ config KVM
select HAVE_KVM_PM_NOTIFIER if PM select HAVE_KVM_PM_NOTIFIER if PM
select KVM_GENERIC_HARDWARE_ENABLING select KVM_GENERIC_HARDWARE_ENABLING
select KVM_GENERIC_PRE_FAULT_MEMORY select KVM_GENERIC_PRE_FAULT_MEMORY
select KVM_GENERIC_PRIVATE_MEM if KVM_SW_PROTECTED_VM
select KVM_WERROR if WERROR select KVM_WERROR if WERROR
config KVM
tristate "Kernel-based Virtual Machine (KVM) support"
help help
Support hosting fully virtualized guest machines using hardware Support hosting fully virtualized guest machines using hardware
virtualization extensions. You will need a fairly recent virtualization extensions. You will need a fairly recent
@ -77,7 +81,6 @@ config KVM_SW_PROTECTED_VM
bool "Enable support for KVM software-protected VMs" bool "Enable support for KVM software-protected VMs"
depends on EXPERT depends on EXPERT
depends on KVM && X86_64 depends on KVM && X86_64
select KVM_GENERIC_PRIVATE_MEM
help help
Enable support for KVM software-protected VMs. Currently, software- Enable support for KVM software-protected VMs. Currently, software-
protected VMs are purely a development and testing vehicle for protected VMs are purely a development and testing vehicle for

View File

@ -32,7 +32,7 @@ kvm-intel-y += vmx/vmx_onhyperv.o vmx/hyperv_evmcs.o
kvm-amd-y += svm/svm_onhyperv.o kvm-amd-y += svm/svm_onhyperv.o
endif endif
obj-$(CONFIG_KVM) += kvm.o obj-$(CONFIG_KVM_X86) += kvm.o
obj-$(CONFIG_KVM_INTEL) += kvm-intel.o obj-$(CONFIG_KVM_INTEL) += kvm-intel.o
obj-$(CONFIG_KVM_AMD) += kvm-amd.o obj-$(CONFIG_KVM_AMD) += kvm-amd.o

View File

@ -1884,10 +1884,14 @@ static bool sp_has_gptes(struct kvm_mmu_page *sp)
if (is_obsolete_sp((_kvm), (_sp))) { \ if (is_obsolete_sp((_kvm), (_sp))) { \
} else } else
#define for_each_gfn_valid_sp_with_gptes(_kvm, _sp, _gfn) \ #define for_each_gfn_valid_sp(_kvm, _sp, _gfn) \
for_each_valid_sp(_kvm, _sp, \ for_each_valid_sp(_kvm, _sp, \
&(_kvm)->arch.mmu_page_hash[kvm_page_table_hashfn(_gfn)]) \ &(_kvm)->arch.mmu_page_hash[kvm_page_table_hashfn(_gfn)]) \
if ((_sp)->gfn != (_gfn) || !sp_has_gptes(_sp)) {} else if ((_sp)->gfn != (_gfn)) {} else
#define for_each_gfn_valid_sp_with_gptes(_kvm, _sp, _gfn) \
for_each_gfn_valid_sp(_kvm, _sp, _gfn) \
if (!sp_has_gptes(_sp)) {} else
static bool kvm_sync_page_check(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp) static bool kvm_sync_page_check(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
{ {
@ -7047,14 +7051,42 @@ void kvm_arch_flush_shadow_all(struct kvm *kvm)
kvm_mmu_zap_all(kvm); kvm_mmu_zap_all(kvm);
} }
/* static void kvm_mmu_zap_memslot_pages_and_flush(struct kvm *kvm,
* Zapping leaf SPTEs with memslot range when a memslot is moved/deleted. struct kvm_memory_slot *slot,
* bool flush)
* Zapping non-leaf SPTEs, a.k.a. not-last SPTEs, isn't required, worst {
* case scenario we'll have unused shadow pages lying around until they LIST_HEAD(invalid_list);
* are recycled due to age or when the VM is destroyed. unsigned long i;
*/
static void kvm_mmu_zap_memslot_leafs(struct kvm *kvm, struct kvm_memory_slot *slot) if (list_empty(&kvm->arch.active_mmu_pages))
goto out_flush;
/*
* Since accounting information is stored in struct kvm_arch_memory_slot,
* shadow pages deletion (e.g. unaccount_shadowed()) requires that all
* gfns with a shadow page have a corresponding memslot. Do so before
* the memslot goes away.
*/
for (i = 0; i < slot->npages; i++) {
struct kvm_mmu_page *sp;
gfn_t gfn = slot->base_gfn + i;
for_each_gfn_valid_sp(kvm, sp, gfn)
kvm_mmu_prepare_zap_page(kvm, sp, &invalid_list);
if (need_resched() || rwlock_needbreak(&kvm->mmu_lock)) {
kvm_mmu_remote_flush_or_zap(kvm, &invalid_list, flush);
flush = false;
cond_resched_rwlock_write(&kvm->mmu_lock);
}
}
out_flush:
kvm_mmu_remote_flush_or_zap(kvm, &invalid_list, flush);
}
static void kvm_mmu_zap_memslot(struct kvm *kvm,
struct kvm_memory_slot *slot)
{ {
struct kvm_gfn_range range = { struct kvm_gfn_range range = {
.slot = slot, .slot = slot,
@ -7062,11 +7094,11 @@ static void kvm_mmu_zap_memslot_leafs(struct kvm *kvm, struct kvm_memory_slot *s
.end = slot->base_gfn + slot->npages, .end = slot->base_gfn + slot->npages,
.may_block = true, .may_block = true,
}; };
bool flush;
write_lock(&kvm->mmu_lock); write_lock(&kvm->mmu_lock);
if (kvm_unmap_gfn_range(kvm, &range)) flush = kvm_unmap_gfn_range(kvm, &range);
kvm_flush_remote_tlbs_memslot(kvm, slot); kvm_mmu_zap_memslot_pages_and_flush(kvm, slot, flush);
write_unlock(&kvm->mmu_lock); write_unlock(&kvm->mmu_lock);
} }
@ -7082,7 +7114,7 @@ void kvm_arch_flush_shadow_memslot(struct kvm *kvm,
if (kvm_memslot_flush_zap_all(kvm)) if (kvm_memslot_flush_zap_all(kvm))
kvm_mmu_zap_all_fast(kvm); kvm_mmu_zap_all_fast(kvm);
else else
kvm_mmu_zap_memslot_leafs(kvm, slot); kvm_mmu_zap_memslot(kvm, slot);
} }
void kvm_mmu_invalidate_mmio_sptes(struct kvm *kvm, u64 gen) void kvm_mmu_invalidate_mmio_sptes(struct kvm *kvm, u64 gen)

View File

@ -13,7 +13,7 @@
#endif #endif
#include <asm/inat.h> /*__ignore_sync_check__ */ #include <asm/inat.h> /*__ignore_sync_check__ */
#include <asm/insn.h> /* __ignore_sync_check__ */ #include <asm/insn.h> /* __ignore_sync_check__ */
#include <asm/unaligned.h> /* __ignore_sync_check__ */ #include <linux/unaligned.h> /* __ignore_sync_check__ */
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/kconfig.h> #include <linux/kconfig.h>

View File

@ -1032,6 +1032,10 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
switch (msr) { switch (msr) {
case MSR_IA32_APICBASE: case MSR_IA32_APICBASE:
val &= ~X2APIC_ENABLE; val &= ~X2APIC_ENABLE;
if (smp_processor_id() == 0)
val |= MSR_IA32_APICBASE_BSP;
else
val &= ~MSR_IA32_APICBASE_BSP;
break; break;
} }
return val; return val;

View File

@ -2,7 +2,7 @@
#ifndef __ASM_XTENSA_FLAT_H #ifndef __ASM_XTENSA_FLAT_H
#define __ASM_XTENSA_FLAT_H #define __ASM_XTENSA_FLAT_H
#include <asm/unaligned.h> #include <linux/unaligned.h>
static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags, static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags,
u32 *addr) u32 *addr)

View File

@ -56,8 +56,7 @@ new_segment:
/** /**
* blk_rq_map_integrity_sg - Map integrity metadata into a scatterlist * blk_rq_map_integrity_sg - Map integrity metadata into a scatterlist
* @q: request queue * @rq: request to map
* @bio: bio with integrity metadata attached
* @sglist: target scatterlist * @sglist: target scatterlist
* *
* Description: Map the integrity vectors in request into a * Description: Map the integrity vectors in request into a

View File

@ -3166,7 +3166,7 @@ static u64 ioc_qos_prfill(struct seq_file *sf, struct blkg_policy_data *pd,
if (!dname) if (!dname)
return 0; return 0;
spin_lock_irq(&ioc->lock); spin_lock(&ioc->lock);
seq_printf(sf, "%s enable=%d ctrl=%s rpct=%u.%02u rlat=%u wpct=%u.%02u wlat=%u min=%u.%02u max=%u.%02u\n", seq_printf(sf, "%s enable=%d ctrl=%s rpct=%u.%02u rlat=%u wpct=%u.%02u wlat=%u min=%u.%02u max=%u.%02u\n",
dname, ioc->enabled, ioc->user_qos_params ? "user" : "auto", dname, ioc->enabled, ioc->user_qos_params ? "user" : "auto",
ioc->params.qos[QOS_RPPM] / 10000, ioc->params.qos[QOS_RPPM] / 10000,
@ -3179,7 +3179,7 @@ static u64 ioc_qos_prfill(struct seq_file *sf, struct blkg_policy_data *pd,
ioc->params.qos[QOS_MIN] % 10000 / 100, ioc->params.qos[QOS_MIN] % 10000 / 100,
ioc->params.qos[QOS_MAX] / 10000, ioc->params.qos[QOS_MAX] / 10000,
ioc->params.qos[QOS_MAX] % 10000 / 100); ioc->params.qos[QOS_MAX] % 10000 / 100);
spin_unlock_irq(&ioc->lock); spin_unlock(&ioc->lock);
return 0; return 0;
} }
@ -3366,14 +3366,14 @@ static u64 ioc_cost_model_prfill(struct seq_file *sf,
if (!dname) if (!dname)
return 0; return 0;
spin_lock_irq(&ioc->lock); spin_lock(&ioc->lock);
seq_printf(sf, "%s ctrl=%s model=linear " seq_printf(sf, "%s ctrl=%s model=linear "
"rbps=%llu rseqiops=%llu rrandiops=%llu " "rbps=%llu rseqiops=%llu rrandiops=%llu "
"wbps=%llu wseqiops=%llu wrandiops=%llu\n", "wbps=%llu wseqiops=%llu wrandiops=%llu\n",
dname, ioc->user_cost_model ? "user" : "auto", dname, ioc->user_cost_model ? "user" : "auto",
u[I_LCOEF_RBPS], u[I_LCOEF_RSEQIOPS], u[I_LCOEF_RRANDIOPS], u[I_LCOEF_RBPS], u[I_LCOEF_RSEQIOPS], u[I_LCOEF_RRANDIOPS],
u[I_LCOEF_WBPS], u[I_LCOEF_WSEQIOPS], u[I_LCOEF_WRANDIOPS]); u[I_LCOEF_WBPS], u[I_LCOEF_WSEQIOPS], u[I_LCOEF_WRANDIOPS]);
spin_unlock_irq(&ioc->lock); spin_unlock(&ioc->lock);
return 0; return 0;
} }

View File

@ -15,7 +15,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/fs.h> #include <linux/fs.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
struct parsed_partitions; struct parsed_partitions;

View File

@ -36,7 +36,7 @@
* the nr_sects and start_sect partition table entries are * the nr_sects and start_sect partition table entries are
* at a 2 (mod 4) address. * at a 2 (mod 4) address.
*/ */
#include <asm/unaligned.h> #include <linux/unaligned.h>
static inline sector_t nr_sects(struct msdos_partition *p) static inline sector_t nr_sects(struct msdos_partition *p)
{ {

View File

@ -9,7 +9,7 @@
#include <linux/crc-t10dif.h> #include <linux/crc-t10dif.h>
#include <linux/crc64.h> #include <linux/crc64.h>
#include <net/checksum.h> #include <net/checksum.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
#include "blk.h" #include "blk.h"
struct blk_integrity_iter { struct blk_integrity_iter {

View File

@ -54,7 +54,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
#include <asm/unaligned.h> #include <linux/unaligned.h>
static inline u8 byte(const u32 x, const unsigned n) static inline u8 byte(const u32 x, const unsigned n)
{ {

Some files were not shown because too many files have changed in this diff Show More