Linux 6.11

-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAmbm9fQeHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGXcwH/A8+IXnrGv+VzYgD
 +mE4hgGGHt4dClcUZ31gQetkkT6xktEVp6pB6JkFO7oEgBiTkJBbYGl6VZtsAIOd
 Fi3jic8ik0uhZLFcxDJcHTceh6Pw8bkhWoh0tkF3bkDRwbppJdG7Khyk8DxTl24w
 ldqh9om2cC7w9IPVx93xTgKgMMZ63qiJyUdTvxEZI3BG8F70smlgZSPskLp2Iktd
 FIJZPcyKM0bhJYwZOpXK0vx5C2cA4oIW4xriHUw4aklv646OBxNKevB2JJAft2uA
 6LyvuLgnYn/OpdFGZ8slvdmhm6hLWft5B1/bWKorUkz7p5YGiySFzpkMVAkNJ6mS
 cRwHJNc=
 =flw3
 -----END PGP SIGNATURE-----

Merge tag 'v6.11' into for-6.12/block

Merge in 6.11 final to get the fix for preventing deadlocks on an
elevator switch, as there's a fixup for that patch.

* tag 'v6.11': (1788 commits)
  Linux 6.11
  Revert "KVM: VMX: Always honor guest PAT on CPUs that support self-snoop"
  pinctrl: pinctrl-cy8c95x0: Fix regcache
  cifs: Fix signature miscalculation
  mm: avoid leaving partial pfn mappings around in error case
  drm/xe/client: add missing bo locking in show_meminfo()
  drm/xe/client: fix deadlock in show_meminfo()
  drm/xe/oa: Enable Xe2+ PES disaggregation
  drm/xe/display: fix compat IS_DISPLAY_STEP() range end
  drm/xe: Fix access_ok check in user_fence_create
  drm/xe: Fix possible UAF in guc_exec_queue_process_msg
  drm/xe: Remove fence check from send_tlb_invalidation
  drm/xe/gt: Remove double include
  net: netfilter: move nf flowtable bpf initialization in nf_flow_table_module_init()
  PCI: Fix potential deadlock in pcim_intx()
  workqueue: Clear worker->pool in the worker thread context
  net: tighten bad gso csum offset check in virtio_net_hdr
  netlink: specs: mptcp: fix port endianness
  net: dpaa: Pad packets to ETH_ZLEN
  mptcp: pm: Fix uaf in __timer_delete_sync
  ...
This commit is contained in:
Jens Axboe 2024-09-17 08:32:53 -06:00
commit 42b16d3ac3
1710 changed files with 21317 additions and 10945 deletions

View File

@ -60,6 +60,7 @@ Amit Nischal <quic_anischal@quicinc.com> <anischal@codeaurora.org>
Andi Kleen <ak@linux.intel.com> <ak@suse.de> Andi Kleen <ak@linux.intel.com> <ak@suse.de>
Andi Shyti <andi@etezian.org> <andi.shyti@samsung.com> Andi Shyti <andi@etezian.org> <andi.shyti@samsung.com>
Andreas Herrmann <aherrman@de.ibm.com> Andreas Herrmann <aherrman@de.ibm.com>
Andreas Hindborg <a.hindborg@kernel.org> <a.hindborg@samsung.com>
Andrej Shadura <andrew.shadura@collabora.co.uk> Andrej Shadura <andrew.shadura@collabora.co.uk>
Andrej Shadura <andrew@shadura.me> <andrew@beldisplaytech.com> Andrej Shadura <andrew@shadura.me> <andrew@beldisplaytech.com>
Andrew Morton <akpm@linux-foundation.org> Andrew Morton <akpm@linux-foundation.org>
@ -166,6 +167,7 @@ Daniel Borkmann <daniel@iogearbox.net> <dborkman@redhat.com>
Daniel Borkmann <daniel@iogearbox.net> <dxchgb@gmail.com> Daniel Borkmann <daniel@iogearbox.net> <dxchgb@gmail.com>
David Brownell <david-b@pacbell.net> David Brownell <david-b@pacbell.net>
David Collins <quic_collinsd@quicinc.com> <collinsd@codeaurora.org> David Collins <quic_collinsd@quicinc.com> <collinsd@codeaurora.org>
David Heidelberg <david@ixit.cz> <d.okias@gmail.com>
David Rheinsberg <david@readahead.eu> <dh.herrmann@gmail.com> David Rheinsberg <david@readahead.eu> <dh.herrmann@gmail.com>
David Rheinsberg <david@readahead.eu> <dh.herrmann@googlemail.com> David Rheinsberg <david@readahead.eu> <dh.herrmann@googlemail.com>
David Rheinsberg <david@readahead.eu> <david.rheinsberg@gmail.com> David Rheinsberg <david@readahead.eu> <david.rheinsberg@gmail.com>
@ -268,6 +270,7 @@ James Ketrenos <jketreno@io.(none)>
Jan Glauber <jan.glauber@gmail.com> <jang@de.ibm.com> Jan Glauber <jan.glauber@gmail.com> <jang@de.ibm.com>
Jan Glauber <jan.glauber@gmail.com> <jang@linux.vnet.ibm.com> Jan Glauber <jan.glauber@gmail.com> <jang@linux.vnet.ibm.com>
Jan Glauber <jan.glauber@gmail.com> <jglauber@cavium.com> Jan Glauber <jan.glauber@gmail.com> <jglauber@cavium.com>
Jan Kuliga <jtkuliga.kdev@gmail.com> <jankul@alatek.krakow.pl>
Jarkko Sakkinen <jarkko@kernel.org> <jarkko.sakkinen@linux.intel.com> Jarkko Sakkinen <jarkko@kernel.org> <jarkko.sakkinen@linux.intel.com>
Jarkko Sakkinen <jarkko@kernel.org> <jarkko@profian.com> Jarkko Sakkinen <jarkko@kernel.org> <jarkko@profian.com>
Jarkko Sakkinen <jarkko@kernel.org> <jarkko.sakkinen@tuni.fi> Jarkko Sakkinen <jarkko@kernel.org> <jarkko.sakkinen@tuni.fi>
@ -353,6 +356,8 @@ Kenneth Westfield <quic_kwestfie@quicinc.com> <kwestfie@codeaurora.org>
Kiran Gunda <quic_kgunda@quicinc.com> <kgunda@codeaurora.org> Kiran Gunda <quic_kgunda@quicinc.com> <kgunda@codeaurora.org>
Kirill Tkhai <tkhai@ya.ru> <ktkhai@virtuozzo.com> Kirill Tkhai <tkhai@ya.ru> <ktkhai@virtuozzo.com>
Kishon Vijay Abraham I <kishon@kernel.org> <kishon@ti.com> Kishon Vijay Abraham I <kishon@kernel.org> <kishon@ti.com>
Konrad Dybcio <konradybcio@kernel.org> <konrad.dybcio@linaro.org>
Konrad Dybcio <konradybcio@kernel.org> <konrad.dybcio@somainline.org>
Konstantin Khlebnikov <koct9i@gmail.com> <khlebnikov@yandex-team.ru> Konstantin Khlebnikov <koct9i@gmail.com> <khlebnikov@yandex-team.ru>
Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com> Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
Koushik <raghavendra.koushik@neterion.com> Koushik <raghavendra.koushik@neterion.com>
@ -524,6 +529,7 @@ Pavankumar Kondeti <quic_pkondeti@quicinc.com> <pkondeti@codeaurora.org>
Peter A Jonsson <pj@ludd.ltu.se> Peter A Jonsson <pj@ludd.ltu.se>
Peter Oruba <peter.oruba@amd.com> Peter Oruba <peter.oruba@amd.com>
Peter Oruba <peter@oruba.de> Peter Oruba <peter@oruba.de>
Pierre-Louis Bossart <pierre-louis.bossart@linux.dev> <pierre-louis.bossart@linux.intel.com>
Pratyush Anand <pratyush.anand@gmail.com> <pratyush.anand@st.com> Pratyush Anand <pratyush.anand@gmail.com> <pratyush.anand@st.com>
Praveen BP <praveenbp@ti.com> Praveen BP <praveenbp@ti.com>
Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com> <pradeepc@codeaurora.org> Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com> <pradeepc@codeaurora.org>
@ -613,6 +619,7 @@ Simon Kelley <simon@thekelleys.org.uk>
Sricharan Ramabadhran <quic_srichara@quicinc.com> <sricharan@codeaurora.org> Sricharan Ramabadhran <quic_srichara@quicinc.com> <sricharan@codeaurora.org>
Srinivas Ramana <quic_sramana@quicinc.com> <sramana@codeaurora.org> Srinivas Ramana <quic_sramana@quicinc.com> <sramana@codeaurora.org>
Sriram R <quic_srirrama@quicinc.com> <srirrama@codeaurora.org> Sriram R <quic_srirrama@quicinc.com> <srirrama@codeaurora.org>
Sriram Yagnaraman <sriram.yagnaraman@ericsson.com> <sriram.yagnaraman@est.tech>
Stanislav Fomichev <sdf@fomichev.me> <sdf@google.com> Stanislav Fomichev <sdf@fomichev.me> <sdf@google.com>
Stefan Wahren <wahrenst@gmx.net> <stefan.wahren@i2se.com> Stefan Wahren <wahrenst@gmx.net> <stefan.wahren@i2se.com>
Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr> Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr>

View File

@ -32,9 +32,9 @@ Description: (RW) The front button on the Turris Omnia router can be
interrupt. interrupt.
This file switches between these two modes: This file switches between these two modes:
- "mcu" makes the button press event be handled by the MCU to - ``mcu`` makes the button press event be handled by the MCU to
change the LEDs panel intensity. change the LEDs panel intensity.
- "cpu" makes the button press event be handled by the CPU. - ``cpu`` makes the button press event be handled by the CPU.
Format: %s. Format: %s.

View File

@ -562,7 +562,8 @@ Description: Control Symmetric Multi Threading (SMT)
================ ========================================= ================ =========================================
If control status is "forceoff" or "notsupported" writes If control status is "forceoff" or "notsupported" writes
are rejected. are rejected. Note that enabling SMT on PowerPC skips
offline cores.
What: /sys/devices/system/cpu/cpuX/power/energy_perf_bias What: /sys/devices/system/cpu/cpuX/power/energy_perf_bias
Date: March 2019 Date: March 2019

View File

@ -258,24 +258,29 @@ Description: (RW) When retrieving the PHC with the PTP SYS_OFFSET_EXTENDED
the estimated point where the FPGA latches the PHC time. This the estimated point where the FPGA latches the PHC time. This
value may be changed by writing an unsigned integer. value may be changed by writing an unsigned integer.
What: /sys/class/timecard/ocpN/ttyGNSS What: /sys/class/timecard/ocpN/tty
What: /sys/class/timecard/ocpN/ttyGNSS2 Date: August 2024
Date: September 2021 Contact: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Contact: Jonathan Lemon <jonathan.lemon@gmail.com> Description: (RO) Directory containing the sysfs nodes for TTY attributes
Description: These optional attributes link to the TTY serial ports
associated with the GNSS devices.
What: /sys/class/timecard/ocpN/ttyMAC What: /sys/class/timecard/ocpN/tty/ttyGNSS
Date: September 2021 What: /sys/class/timecard/ocpN/tty/ttyGNSS2
Date: August 2024
Contact: Jonathan Lemon <jonathan.lemon@gmail.com> Contact: Jonathan Lemon <jonathan.lemon@gmail.com>
Description: This optional attribute links to the TTY serial port Description: (RO) These optional attributes contain names of the TTY serial
associated with the Miniature Atomic Clock. ports associated with the GNSS devices.
What: /sys/class/timecard/ocpN/ttyNMEA What: /sys/class/timecard/ocpN/tty/ttyMAC
Date: September 2021 Date: August 2024
Contact: Jonathan Lemon <jonathan.lemon@gmail.com> Contact: Jonathan Lemon <jonathan.lemon@gmail.com>
Description: This optional attribute links to the TTY serial port Description: (RO) This optional attribute contains name of the TTY serial
which outputs the PHC time in NMEA ZDA format. port associated with the Miniature Atomic Clock.
What: /sys/class/timecard/ocpN/tty/ttyNMEA
Date: August 2024
Contact: Jonathan Lemon <jonathan.lemon@gmail.com>
Description: (RO) This optional attribute contains name of the TTY serial
port which outputs the PHC time in NMEA ZDA format.
What: /sys/class/timecard/ocpN/utc_tai_offset What: /sys/class/timecard/ocpN/utc_tai_offset
Date: September 2021 Date: September 2021

View File

@ -1717,9 +1717,10 @@ The following nested keys are defined.
entries fault back in or are written out to disk. entries fault back in or are written out to disk.
memory.zswap.writeback memory.zswap.writeback
A read-write single value file. The default value is "1". The A read-write single value file. The default value is "1".
initial value of the root cgroup is 1, and when a new cgroup is Note that this setting is hierarchical, i.e. the writeback would be
created, it inherits the current value of its parent. implicitly disabled for child cgroups if the upper hierarchy
does so.
When this is set to 0, all swapping attempts to swapping devices When this is set to 0, all swapping attempts to swapping devices
are disabled. This included both zswap writebacks, and swapping due are disabled. This included both zswap writebacks, and swapping due

View File

@ -742,7 +742,7 @@ SecurityFlags Flags which control security negotiation and
may use NTLMSSP 0x00080 may use NTLMSSP 0x00080
must use NTLMSSP 0x80080 must use NTLMSSP 0x80080
seal (packet encryption) 0x00040 seal (packet encryption) 0x00040
must seal (not implemented yet) 0x40040 must seal 0x40040
cifsFYI If set to non-zero value, additional debug information cifsFYI If set to non-zero value, additional debug information
will be logged to the system error log. This field will be logged to the system error log. This field

View File

@ -162,13 +162,14 @@ iv_large_sectors
Module parameters:: Module parameters::
max_read_size
max_write_size max_read_size
Maximum size of read or write requests. When a request larger than this size max_write_size
is received, dm-crypt will split the request. The splitting improves Maximum size of read or write requests. When a request larger than this size
concurrency (the split requests could be encrypted in parallel by multiple is received, dm-crypt will split the request. The splitting improves
cores), but it also causes overhead. The user should tune these parameters to concurrency (the split requests could be encrypted in parallel by multiple
fit the actual workload. cores), but it also causes overhead. The user should tune these parameters to
fit the actual workload.
Example scripts Example scripts

View File

@ -4798,11 +4798,9 @@
profile= [KNL] Enable kernel profiling via /proc/profile profile= [KNL] Enable kernel profiling via /proc/profile
Format: [<profiletype>,]<number> Format: [<profiletype>,]<number>
Param: <profiletype>: "schedule", "sleep", or "kvm" Param: <profiletype>: "schedule" or "kvm"
[defaults to kernel profiling] [defaults to kernel profiling]
Param: "schedule" - profile schedule points. Param: "schedule" - profile schedule points.
Param: "sleep" - profile D-state sleeping (millisecs).
Requires CONFIG_SCHEDSTATS
Param: "kvm" - profile VM exits. Param: "kvm" - profile VM exits.
Param: <number> - step/bucket size as a power of 2 for Param: <number> - step/bucket size as a power of 2 for
statistical time based profiling. statistical time based profiling.

View File

@ -122,10 +122,18 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A76 | #1490853 | N/A | | ARM | Cortex-A76 | #1490853 | N/A |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A76 | #3324349 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A77 | #1491015 | N/A | | ARM | Cortex-A77 | #1491015 | N/A |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 | | ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A77 | #3324348 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A78 | #3324344 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A78C | #3324346,3324347| ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 | | ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 | | ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 |
@ -138,8 +146,14 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A720 | #3456091 | ARM64_ERRATUM_3194386 | | ARM | Cortex-A720 | #3456091 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A725 | #3456106 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-X1 | #1502854 | N/A | | ARM | Cortex-X1 | #1502854 | N/A |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-X1 | #3324344 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-X1C | #3324346 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-X2 | #2119858 | ARM64_ERRATUM_2119858 | | ARM | Cortex-X2 | #2119858 | ARM64_ERRATUM_2119858 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-X2 | #2224489 | ARM64_ERRATUM_2224489 | | ARM | Cortex-X2 | #2224489 | ARM64_ERRATUM_2224489 |
@ -160,6 +174,8 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 | | ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-N1 | #3324349 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-N2 | #2139208 | ARM64_ERRATUM_2139208 | | ARM | Neoverse-N2 | #2139208 | ARM64_ERRATUM_2139208 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-N2 | #2067961 | ARM64_ERRATUM_2067961 | | ARM | Neoverse-N2 | #2067961 | ARM64_ERRATUM_2067961 |
@ -170,6 +186,8 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-V1 | #1619801 | N/A | | ARM | Neoverse-V1 | #1619801 | N/A |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-V1 | #3324341 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-V2 | #3324336 | ARM64_ERRATUM_3194386 | | ARM | Neoverse-V2 | #3324336 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-V3 | #3312417 | ARM64_ERRATUM_3194386 | | ARM | Neoverse-V3 | #3312417 | ARM64_ERRATUM_3194386 |

View File

@ -239,25 +239,33 @@ The following keys are defined:
ratified in commit 98918c844281 ("Merge pull request #1217 from ratified in commit 98918c844281 ("Merge pull request #1217 from
riscv/zawrs") of riscv-isa-manual. riscv/zawrs") of riscv-isa-manual.
* :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: A bitmask that contains performance * :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: Deprecated. Returns similar values to
information about the selected set of processors. :c:macro:`RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF`, but the key was
mistakenly classified as a bitmask rather than a value.
* :c:macro:`RISCV_HWPROBE_MISALIGNED_UNKNOWN`: The performance of misaligned * :c:macro:`RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF`: An enum value describing
accesses is unknown. the performance of misaligned scalar native word accesses on the selected set
of processors.
* :c:macro:`RISCV_HWPROBE_MISALIGNED_EMULATED`: Misaligned accesses are * :c:macro:`RISCV_HWPROBE_MISALIGNED_SCALAR_UNKNOWN`: The performance of
emulated via software, either in or below the kernel. These accesses are misaligned scalar accesses is unknown.
always extremely slow.
* :c:macro:`RISCV_HWPROBE_MISALIGNED_SLOW`: Misaligned accesses are slower * :c:macro:`RISCV_HWPROBE_MISALIGNED_SCALAR_EMULATED`: Misaligned scalar
than equivalent byte accesses. Misaligned accesses may be supported accesses are emulated via software, either in or below the kernel. These
directly in hardware, or trapped and emulated by software. accesses are always extremely slow.
* :c:macro:`RISCV_HWPROBE_MISALIGNED_FAST`: Misaligned accesses are faster * :c:macro:`RISCV_HWPROBE_MISALIGNED_SCALAR_SLOW`: Misaligned scalar native
than equivalent byte accesses. word sized accesses are slower than the equivalent quantity of byte
accesses. Misaligned accesses may be supported directly in hardware, or
trapped and emulated by software.
* :c:macro:`RISCV_HWPROBE_MISALIGNED_UNSUPPORTED`: Misaligned accesses are * :c:macro:`RISCV_HWPROBE_MISALIGNED_SCALAR_FAST`: Misaligned scalar native
not supported at all and will generate a misaligned address fault. word sized accesses are faster than the equivalent quantity of byte
accesses.
* :c:macro:`RISCV_HWPROBE_MISALIGNED_SCALAR_UNSUPPORTED`: Misaligned scalar
accesses are not supported at all and will generate a misaligned address
fault.
* :c:macro:`RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE`: An unsigned int which * :c:macro:`RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE`: An unsigned int which
represents the size of the Zicboz block in bytes. represents the size of the Zicboz block in bytes.

View File

@ -134,19 +134,3 @@ RISC-V Linux Kernel SV57
ffffffff00000000 | -4 GB | ffffffff7fffffff | 2 GB | modules, BPF ffffffff00000000 | -4 GB | ffffffff7fffffff | 2 GB | modules, BPF
ffffffff80000000 | -2 GB | ffffffffffffffff | 2 GB | kernel ffffffff80000000 | -2 GB | ffffffffffffffff | 2 GB | kernel
__________________|____________|__________________|_________|____________________________________________________________ __________________|____________|__________________|_________|____________________________________________________________
Userspace VAs
--------------------
To maintain compatibility with software that relies on the VA space with a
maximum of 48 bits the kernel will, by default, return virtual addresses to
userspace from a 48-bit range (sv48). This default behavior is achieved by
passing 0 into the hint address parameter of mmap. On CPUs with an address space
smaller than sv48, the CPU maximum supported address space will be the default.
Software can "opt-in" to receiving VAs from another VA space by providing
a hint address to mmap. When a hint address is passed to mmap, the returned
address will never use more bits than the hint address. For example, if a hint
address of `1 << 40` is passed to mmap, a valid returned address will never use
bits 41 through 63. If no mappable addresses are available in that range, mmap
will return `MAP_FAILED`.

View File

@ -260,7 +260,7 @@ Some users depend on strict execution ordering where only one work item
is in flight at any given time and the work items are processed in is in flight at any given time and the work items are processed in
queueing order. While the combination of ``@max_active`` of 1 and queueing order. While the combination of ``@max_active`` of 1 and
``WQ_UNBOUND`` used to achieve this behavior, this is no longer the ``WQ_UNBOUND`` used to achieve this behavior, this is no longer the
case. Use ``alloc_ordered_queue()`` instead. case. Use alloc_ordered_workqueue() instead.
Example Execution Scenarios Example Execution Scenarios

View File

@ -35,6 +35,9 @@ properties:
ports-implemented: ports-implemented:
const: 1 const: 1
power-domains:
maxItems: 1
sata-port@0: sata-port@0:
$ref: /schemas/ata/snps,dwc-ahci-common.yaml#/$defs/dwc-ahci-port $ref: /schemas/ata/snps,dwc-ahci-common.yaml#/$defs/dwc-ahci-port

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Display Clock & Reset Controller on SM6350 title: Qualcomm Display Clock & Reset Controller on SM6350
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@somainline.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm display clock control module provides the clocks, resets and power Qualcomm display clock control module provides the clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Global Clock & Reset Controller on MSM8994 title: Qualcomm Global Clock & Reset Controller on MSM8994
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@somainline.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm global clock control module provides the clocks, resets and power Qualcomm global clock control module provides the clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Global Clock & Reset Controller on SM6125 title: Qualcomm Global Clock & Reset Controller on SM6125
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@somainline.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm global clock control module provides the clocks, resets and power Qualcomm global clock control module provides the clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Global Clock & Reset Controller on SM6350 title: Qualcomm Global Clock & Reset Controller on SM6350
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@somainline.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm global clock control module provides the clocks, resets and power Qualcomm global clock control module provides the clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Graphics Clock & Reset Controller on SM6115 title: Qualcomm Graphics Clock & Reset Controller on SM6115
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm graphics clock control module provides clocks, resets and power Qualcomm graphics clock control module provides clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Graphics Clock & Reset Controller on SM6125 title: Qualcomm Graphics Clock & Reset Controller on SM6125
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm graphics clock control module provides clocks and power domains on Qualcomm graphics clock control module provides clocks and power domains on

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Camera Clock & Reset Controller on SM6350 title: Qualcomm Camera Clock & Reset Controller on SM6350
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm camera clock control module provides the clocks, resets and power Qualcomm camera clock control module provides the clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Display Clock & Reset Controller on SM6375 title: Qualcomm Display Clock & Reset Controller on SM6375
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm display clock control module provides the clocks, resets and power Qualcomm display clock control module provides the clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Global Clock & Reset Controller on SM6375 title: Qualcomm Global Clock & Reset Controller on SM6375
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@somainline.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm global clock control module provides the clocks, resets and power Qualcomm global clock control module provides the clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Graphics Clock & Reset Controller on SM6375 title: Qualcomm Graphics Clock & Reset Controller on SM6375
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm graphics clock control module provides clocks, resets and power Qualcomm graphics clock control module provides clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm SM8350 Video Clock & Reset Controller title: Qualcomm SM8350 Video Clock & Reset Controller
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm video clock control module provides the clocks, resets and power Qualcomm video clock control module provides the clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Graphics Clock & Reset Controller on SM8450 title: Qualcomm Graphics Clock & Reset Controller on SM8450
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm graphics clock control module provides the clocks, resets and power Qualcomm graphics clock control module provides the clocks, resets and power

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm SM6375 Display MDSS title: Qualcomm SM6375 Display MDSS
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: description:
SM6375 MSM Mobile Display Subsystem (MDSS), which encapsulates sub-blocks SM6375 MSM Mobile Display Subsystem (MDSS), which encapsulates sub-blocks

View File

@ -1,10 +1,10 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2 %YAML 1.2
--- ---
$id: http://devicetree.org/schemas/display/panel/wl-355608-a8.yaml# $id: http://devicetree.org/schemas/display/panel/anbernic,rg35xx-plus-panel.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml#
title: WL-355608-A8 3.5" (640x480 pixels) 24-bit IPS LCD panel title: Anbernic RG35XX series (WL-355608-A8) 3.5" 640x480 24-bit IPS LCD panel
maintainers: maintainers:
- Ryan Walklin <ryan@testtoast.com> - Ryan Walklin <ryan@testtoast.com>
@ -15,7 +15,14 @@ allOf:
properties: properties:
compatible: compatible:
const: wl-355608-a8 oneOf:
- const: anbernic,rg35xx-plus-panel
- items:
- enum:
- anbernic,rg35xx-2024-panel
- anbernic,rg35xx-h-panel
- anbernic,rg35xx-sp-panel
- const: anbernic,rg35xx-plus-panel
reg: reg:
maxItems: 1 maxItems: 1
@ -40,7 +47,7 @@ examples:
#size-cells = <0>; #size-cells = <0>;
panel@0 { panel@0 {
compatible = "wl-355608-a8"; compatible = "anbernic,rg35xx-plus-panel";
reg = <0>; reg = <0>;
spi-3wire; spi-3wire;

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: ASUS Z00T TM5P5 NT35596 5.5" 1080×1920 LCD Panel title: ASUS Z00T TM5P5 NT35596 5.5" 1080×1920 LCD Panel
maintainers: maintainers:
- Konrad Dybcio <konradybcio@gmail.com> - Konrad Dybcio <konradybcio@kernel.org>
description: |+ description: |+
This panel seems to only be found in the Asus Z00T This panel seems to only be found in the Asus Z00T

View File

@ -17,9 +17,12 @@ properties:
oneOf: oneOf:
# Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel # Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel
- const: samsung,atna33xc20 - const: samsung,atna33xc20
# Samsung 14.5" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
- items: - items:
- const: samsung,atna45af01 - enum:
# Samsung 14.5" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
- samsung,atna45af01
# Samsung 14.5" 3K (2944x1840 pixels) eDP AMOLED panel
- samsung,atna45dc02
- const: samsung,atna33xc20 - const: samsung,atna33xc20
enable-gpios: true enable-gpios: true

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Sony TD4353 JDI 5 / 5.7" 2160x1080 MIPI-DSI Panel title: Sony TD4353 JDI 5 / 5.7" 2160x1080 MIPI-DSI Panel
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@somainline.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
The Sony TD4353 JDI is a 5 (XZ2c) / 5.7 (XZ2) inch 2160x1080 The Sony TD4353 JDI is a 5 (XZ2c) / 5.7 (XZ2) inch 2160x1080

View File

@ -28,6 +28,7 @@ properties:
- anvo,anv32e61w - anvo,anv32e61w
- atmel,at25256B - atmel,at25256B
- fujitsu,mb85rs1mt - fujitsu,mb85rs1mt
- fujitsu,mb85rs256
- fujitsu,mb85rs64 - fujitsu,mb85rs64
- microchip,at25160bn - microchip,at25160bn
- microchip,25lc040 - microchip,25lc040

View File

@ -42,6 +42,7 @@ properties:
- focaltech,ft5426 - focaltech,ft5426
- focaltech,ft5452 - focaltech,ft5452
- focaltech,ft6236 - focaltech,ft6236
- focaltech,ft8201
- focaltech,ft8719 - focaltech,ft8719
reg: reg:

View File

@ -8,7 +8,7 @@ title: Qualcomm RPMh Network-On-Chip Interconnect on SC7280
maintainers: maintainers:
- Bjorn Andersson <andersson@kernel.org> - Bjorn Andersson <andersson@kernel.org>
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
RPMh interconnect providers support system bandwidth requirements through RPMh interconnect providers support system bandwidth requirements through

View File

@ -8,7 +8,7 @@ title: Qualcomm RPMh Network-On-Chip Interconnect on SC8280XP
maintainers: maintainers:
- Bjorn Andersson <andersson@kernel.org> - Bjorn Andersson <andersson@kernel.org>
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
RPMh interconnect providers support system bandwidth requirements through RPMh interconnect providers support system bandwidth requirements through

View File

@ -8,7 +8,7 @@ title: Qualcomm RPMh Network-On-Chip Interconnect on SM8450
maintainers: maintainers:
- Bjorn Andersson <andersson@kernel.org> - Bjorn Andersson <andersson@kernel.org>
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
RPMh interconnect providers support system bandwidth requirements through RPMh interconnect providers support system bandwidth requirements through

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies legacy IOMMU implementations title: Qualcomm Technologies legacy IOMMU implementations
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
Qualcomm "B" family devices which are not compatible with arm-smmu have Qualcomm "B" family devices which are not compatible with arm-smmu have

View File

@ -38,6 +38,10 @@ properties:
managed: true managed: true
phys:
description: A reference to the SerDes lane(s)
maxItems: 1
required: required:
- reg - reg

View File

@ -14,8 +14,53 @@ maintainers:
description: description:
Bindings for NXP TJA11xx automotive PHYs Bindings for NXP TJA11xx automotive PHYs
properties:
compatible:
enum:
- ethernet-phy-id0180.dc40
- ethernet-phy-id0180.dc41
- ethernet-phy-id0180.dc48
- ethernet-phy-id0180.dd00
- ethernet-phy-id0180.dd01
- ethernet-phy-id0180.dd02
- ethernet-phy-id0180.dc80
- ethernet-phy-id0180.dc82
- ethernet-phy-id001b.b010
- ethernet-phy-id001b.b013
- ethernet-phy-id001b.b030
- ethernet-phy-id001b.b031
allOf: allOf:
- $ref: ethernet-phy.yaml# - $ref: ethernet-phy.yaml#
- if:
properties:
compatible:
contains:
enum:
- ethernet-phy-id0180.dc40
- ethernet-phy-id0180.dc41
- ethernet-phy-id0180.dc48
- ethernet-phy-id0180.dd00
- ethernet-phy-id0180.dd01
- ethernet-phy-id0180.dd02
then:
properties:
nxp,rmii-refclk-in:
type: boolean
description: |
The REF_CLK is provided for both transmitted and received data
in RMII mode. This clock signal is provided by the PHY and is
typically derived from an external 25MHz crystal. Alternatively,
a 50MHz clock signal generated by an external oscillator can be
connected to pin REF_CLK. A third option is to connect a 25MHz
clock to pin CLK_IN_OUT. So, the REF_CLK should be configured
as input or output according to the actual circuit connection.
If present, indicates that the REF_CLK will be configured as
interface reference clock input when RMII mode enabled.
If not present, the REF_CLK will be configured as interface
reference clock output when RMII mode enabled.
Only supported on TJA1100 and TJA1101.
patternProperties: patternProperties:
"^ethernet-phy@[0-9a-f]+$": "^ethernet-phy@[0-9a-f]+$":
@ -32,22 +77,6 @@ patternProperties:
description: description:
The ID number for the child PHY. Should be +1 of parent PHY. The ID number for the child PHY. Should be +1 of parent PHY.
nxp,rmii-refclk-in:
type: boolean
description: |
The REF_CLK is provided for both transmitted and received data
in RMII mode. This clock signal is provided by the PHY and is
typically derived from an external 25MHz crystal. Alternatively,
a 50MHz clock signal generated by an external oscillator can be
connected to pin REF_CLK. A third option is to connect a 25MHz
clock to pin CLK_IN_OUT. So, the REF_CLK should be configured
as input or output according to the actual circuit connection.
If present, indicates that the REF_CLK will be configured as
interface reference clock input when RMII mode enabled.
If not present, the REF_CLK will be configured as interface
reference clock output when RMII mode enabled.
Only supported on TJA1100 and TJA1101.
required: required:
- reg - reg
@ -60,6 +89,7 @@ examples:
#size-cells = <0>; #size-cells = <0>;
tja1101_phy0: ethernet-phy@4 { tja1101_phy0: ethernet-phy@4 {
compatible = "ethernet-phy-id0180.dc40";
reg = <0x4>; reg = <0x4>;
nxp,rmii-refclk-in; nxp,rmii-refclk-in;
}; };

View File

@ -28,7 +28,7 @@ unevaluatedProperties: false
examples: examples:
- | - |
nvmem { soc-nvmem {
compatible = "xlnx,zynqmp-nvmem-fw"; compatible = "xlnx,zynqmp-nvmem-fw";
nvmem-layout { nvmem-layout {
compatible = "fixed-layout"; compatible = "fixed-layout";

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies, Inc. MDM9607 TLMM block title: Qualcomm Technologies, Inc. MDM9607 TLMM block
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@somainline.org> - Konrad Dybcio <konradybcio@kernel.org>
description: description:
Top Level Mode Multiplexer pin controller in Qualcomm MDM9607 SoC. Top Level Mode Multiplexer pin controller in Qualcomm MDM9607 SoC.

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies, Inc. SM6350 TLMM block title: Qualcomm Technologies, Inc. SM6350 TLMM block
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@somainline.org> - Konrad Dybcio <konradybcio@kernel.org>
description: description:
Top Level Mode Multiplexer pin controller in Qualcomm SM6350 SoC. Top Level Mode Multiplexer pin controller in Qualcomm SM6350 SoC.

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies, Inc. SM6375 TLMM block title: Qualcomm Technologies, Inc. SM6375 TLMM block
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@somainline.org> - Konrad Dybcio <konradybcio@kernel.org>
description: description:
Top Level Mode Multiplexer pin controller in Qualcomm SM6375 SoC. Top Level Mode Multiplexer pin controller in Qualcomm SM6375 SoC.

View File

@ -8,7 +8,7 @@ title: Qualcomm Resource Power Manager (RPM) Processor/Subsystem
maintainers: maintainers:
- Bjorn Andersson <andersson@kernel.org> - Bjorn Andersson <andersson@kernel.org>
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
- Stephan Gerhold <stephan@gerhold.net> - Stephan Gerhold <stephan@gerhold.net>
description: | description: |

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies, Inc. (QTI) RPM Master Stats title: Qualcomm Technologies, Inc. (QTI) RPM Master Stats
maintainers: maintainers:
- Konrad Dybcio <konrad.dybcio@linaro.org> - Konrad Dybcio <konradybcio@kernel.org>
description: | description: |
The Qualcomm RPM (Resource Power Manager) architecture includes a concept The Qualcomm RPM (Resource Power Manager) architecture includes a concept

View File

@ -31,10 +31,16 @@ properties:
- rockchip,rk3588-pcie3-pipe-grf - rockchip,rk3588-pcie3-pipe-grf
- rockchip,rk3588-usb-grf - rockchip,rk3588-usb-grf
- rockchip,rk3588-usbdpphy-grf - rockchip,rk3588-usbdpphy-grf
- rockchip,rk3588-vo-grf - rockchip,rk3588-vo0-grf
- rockchip,rk3588-vo1-grf
- rockchip,rk3588-vop-grf - rockchip,rk3588-vop-grf
- rockchip,rv1108-usbgrf - rockchip,rv1108-usbgrf
- const: syscon - const: syscon
- items:
- const: rockchip,rk3588-vo-grf
- const: syscon
deprecated: true
description: Use rockchip,rk3588-vo{0,1}-grf instead.
- items: - items:
- enum: - enum:
- rockchip,px30-grf - rockchip,px30-grf
@ -262,6 +268,8 @@ allOf:
contains: contains:
enum: enum:
- rockchip,rk3588-vo-grf - rockchip,rk3588-vo-grf
- rockchip,rk3588-vo0-grf
- rockchip,rk3588-vo1-grf
then: then:
required: required:

View File

@ -199,10 +199,11 @@ additionalProperties: false
examples: examples:
- | - |
#include <dt-bindings/gpio/gpio.h>
codec@1,0{ codec@1,0{
compatible = "slim217,250"; compatible = "slim217,250";
reg = <1 0>; reg = <1 0>;
reset-gpios = <&tlmm 64 0>; reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
slim-ifc-dev = <&wcd9340_ifd>; slim-ifc-dev = <&wcd9340_ifd>;
#sound-dai-cells = <1>; #sound-dai-cells = <1>;
interrupt-parent = <&tlmm>; interrupt-parent = <&tlmm>;

View File

@ -42,7 +42,7 @@ examples:
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
pinctrl-0 = <&wcd_reset_n>; pinctrl-0 = <&wcd_reset_n>;
pinctrl-1 = <&wcd_reset_n_sleep>; pinctrl-1 = <&wcd_reset_n_sleep>;
reset-gpios = <&tlmm 83 GPIO_ACTIVE_HIGH>; reset-gpios = <&tlmm 83 GPIO_ACTIVE_LOW>;
vdd-buck-supply = <&vreg_l17b_1p8>; vdd-buck-supply = <&vreg_l17b_1p8>;
vdd-rxtx-supply = <&vreg_l18b_1p8>; vdd-rxtx-supply = <&vreg_l18b_1p8>;
vdd-px-supply = <&vreg_l18b_1p8>; vdd-px-supply = <&vreg_l18b_1p8>;

View File

@ -34,9 +34,10 @@ unevaluatedProperties: false
examples: examples:
- | - |
#include <dt-bindings/gpio/gpio.h>
codec { codec {
compatible = "qcom,wcd9380-codec"; compatible = "qcom,wcd9380-codec";
reset-gpios = <&tlmm 32 0>; reset-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
#sound-dai-cells = <1>; #sound-dai-cells = <1>;
qcom,tx-device = <&wcd938x_tx>; qcom,tx-device = <&wcd938x_tx>;
qcom,rx-device = <&wcd938x_rx>; qcom,rx-device = <&wcd938x_rx>;

View File

@ -52,10 +52,10 @@ unevaluatedProperties: false
examples: examples:
- | - |
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/gpio/gpio.h>
codec { codec {
compatible = "qcom,wcd9390-codec"; compatible = "qcom,wcd9390-codec";
reset-gpios = <&tlmm 32 IRQ_TYPE_NONE>; reset-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
#sound-dai-cells = <1>; #sound-dai-cells = <1>;
qcom,tx-device = <&wcd939x_tx>; qcom,tx-device = <&wcd939x_tx>;
qcom,rx-device = <&wcd939x_rx>; qcom,rx-device = <&wcd939x_rx>;

View File

@ -10,7 +10,7 @@ maintainers:
- Fabio Estevam <festevam@gmail.com> - Fabio Estevam <festevam@gmail.com>
allOf: allOf:
- $ref: usb-hcd.yaml# - $ref: usb-device.yaml#
properties: properties:
compatible: compatible:
@ -18,6 +18,7 @@ properties:
- usb424,2412 - usb424,2412
- usb424,2417 - usb424,2417
- usb424,2514 - usb424,2514
- usb424,2517
reg: true reg: true
@ -35,6 +36,13 @@ required:
- compatible - compatible
- reg - reg
patternProperties:
"^.*@[0-9a-f]{1,2}$":
description: The hard wired USB devices
type: object
$ref: /schemas/usb/usb-device.yaml
additionalProperties: true
unevaluatedProperties: false unevaluatedProperties: false
examples: examples:

View File

@ -4,8 +4,6 @@ Generic Thermal Sysfs driver How To
Written by Sujith Thomas <sujith.thomas@intel.com>, Zhang Rui <rui.zhang@intel.com> Written by Sujith Thomas <sujith.thomas@intel.com>, Zhang Rui <rui.zhang@intel.com>
Updated: 2 January 2008
Copyright (c) 2008 Intel Corporation Copyright (c) 2008 Intel Corporation
@ -38,23 +36,23 @@ temperature) and throttle appropriate devices.
:: ::
struct thermal_zone_device struct thermal_zone_device *
*thermal_zone_device_register(char *type, thermal_zone_device_register_with_trips(const char *type,
int trips, int mask, void *devdata, const struct thermal_trip *trips,
struct thermal_zone_device_ops *ops, int num_trips, void *devdata,
const struct thermal_zone_params *tzp, const struct thermal_zone_device_ops *ops,
int passive_delay, int polling_delay)) const struct thermal_zone_params *tzp,
unsigned int passive_delay,
unsigned int polling_delay)
This interface function adds a new thermal zone device (sensor) to This interface function adds a new thermal zone device (sensor) to the
/sys/class/thermal folder as `thermal_zone[0-*]`. It tries to bind all the /sys/class/thermal folder as `thermal_zone[0-*]`. It tries to bind all the
thermal cooling devices registered at the same time. thermal cooling devices registered to it at the same time.
type: type:
the thermal zone type. the thermal zone type.
trips: trips:
the total number of trip points this thermal zone supports. the table of trip points for this thermal zone.
mask:
Bit string: If 'n'th bit is set, then trip point 'n' is writable.
devdata: devdata:
device private data device private data
ops: ops:
@ -67,32 +65,29 @@ temperature) and throttle appropriate devices.
.get_temp: .get_temp:
get the current temperature of the thermal zone. get the current temperature of the thermal zone.
.set_trips: .set_trips:
set the trip points window. Whenever the current temperature set the trip points window. Whenever the current temperature
is updated, the trip points immediately below and above the is updated, the trip points immediately below and above the
current temperature are found. current temperature are found.
.get_mode: .change_mode:
get the current mode (enabled/disabled) of the thermal zone. change the mode (enabled/disabled) of the thermal zone.
.set_trip_temp:
- "enabled" means the kernel thermal management is set the temperature of a given trip point.
enabled. .get_crit_temp:
- "disabled" will prevent kernel thermal driver action get the critical temperature for this thermal zone.
upon trip points so that user applications can take
charge of thermal management.
.set_mode:
set the mode (enabled/disabled) of the thermal zone.
.get_trip_type:
get the type of certain trip point.
.get_trip_temp:
get the temperature above which the certain trip point
will be fired.
.set_emul_temp: .set_emul_temp:
set the emulation temperature which helps in debugging set the emulation temperature which helps in debugging
different threshold temperature points. different threshold temperature points.
.get_trend:
get the trend of most recent zone temperature changes.
.hot:
hot trip point crossing handler.
.critical:
critical trip point crossing handler.
tzp: tzp:
thermal zone platform parameters. thermal zone platform parameters.
passive_delay: passive_delay:
number of milliseconds to wait between polls when number of milliseconds to wait between polls when performing passive
performing passive cooling. cooling.
polling_delay: polling_delay:
number of milliseconds to wait between polls when checking number of milliseconds to wait between polls when checking
whether trip points have been crossed (0 for interrupt driven systems). whether trip points have been crossed (0 for interrupt driven systems).

View File

@ -318,10 +318,10 @@ where the columns are:
Debugging Debugging
========= =========
If CONFIG_FSCACHE_DEBUG is enabled, the FS-Cache facility can have runtime If CONFIG_NETFS_DEBUG is enabled, the FS-Cache facility and NETFS support can
debugging enabled by adjusting the value in:: have runtime debugging enabled by adjusting the value in::
/sys/module/fscache/parameters/debug /sys/module/netfs/parameters/debug
This is a bitmask of debugging streams to enable: This is a bitmask of debugging streams to enable:
@ -343,6 +343,6 @@ This is a bitmask of debugging streams to enable:
The appropriate set of values should be OR'd together and the result written to The appropriate set of values should be OR'd together and the result written to
the control file. For example:: the control file. For example::
echo $((1|8|512)) >/sys/module/fscache/parameters/debug echo $((1|8|512)) >/sys/module/netfs/parameters/debug
will turn on all function entry debugging. will turn on all function entry debugging.

View File

@ -75,7 +75,7 @@ Here are the main features of EROFS:
- Support merging tail-end data into a special inode as fragments. - Support merging tail-end data into a special inode as fragments.
- Support large folios for uncompressed files. - Support large folios to make use of THPs (Transparent Hugepages);
- Support direct I/O on uncompressed files to avoid double caching for loop - Support direct I/O on uncompressed files to avoid double caching for loop
devices; devices;

View File

@ -13,7 +13,7 @@ KSMBD architecture
The subset of performance related operations belong in kernelspace and The subset of performance related operations belong in kernelspace and
the other subset which belong to operations which are not really related with the other subset which belong to operations which are not really related with
performance in userspace. So, DCE/RPC management that has historically resulted performance in userspace. So, DCE/RPC management that has historically resulted
into number of buffer overflow issues and dangerous security bugs and user into a number of buffer overflow issues and dangerous security bugs and user
account management are implemented in user space as ksmbd.mountd. account management are implemented in user space as ksmbd.mountd.
File operations that are related with performance (open/read/write/close etc.) File operations that are related with performance (open/read/write/close etc.)
in kernel space (ksmbd). This also allows for easier integration with VFS in kernel space (ksmbd). This also allows for easier integration with VFS
@ -24,8 +24,8 @@ ksmbd (kernel daemon)
When the server daemon is started, It starts up a forker thread When the server daemon is started, It starts up a forker thread
(ksmbd/interface name) at initialization time and open a dedicated port 445 (ksmbd/interface name) at initialization time and open a dedicated port 445
for listening to SMB requests. Whenever new clients make request, Forker for listening to SMB requests. Whenever new clients make a request, the Forker
thread will accept the client connection and fork a new thread for dedicated thread will accept the client connection and fork a new thread for a dedicated
communication channel between the client and the server. It allows for parallel communication channel between the client and the server. It allows for parallel
processing of SMB requests(commands) from clients as well as allowing for new processing of SMB requests(commands) from clients as well as allowing for new
clients to make new connections. Each instance is named ksmbd/1~n(port number) clients to make new connections. Each instance is named ksmbd/1~n(port number)
@ -34,12 +34,12 @@ thread can decide to pass through the commands to the user space (ksmbd.mountd),
currently DCE/RPC commands are identified to be handled through the user space. currently DCE/RPC commands are identified to be handled through the user space.
To further utilize the linux kernel, it has been chosen to process the commands To further utilize the linux kernel, it has been chosen to process the commands
as workitems and to be executed in the handlers of the ksmbd-io kworker threads. as workitems and to be executed in the handlers of the ksmbd-io kworker threads.
It allows for multiplexing of the handlers as the kernel take care of initiating It allows for multiplexing of the handlers as the kernel takes care of initiating
extra worker threads if the load is increased and vice versa, if the load is extra worker threads if the load is increased and vice versa, if the load is
decreased it destroys the extra worker threads. So, after connection is decreased it destroys the extra worker threads. So, after the connection is
established with client. Dedicated ksmbd/1..n(port number) takes complete established with the client. Dedicated ksmbd/1..n(port number) takes complete
ownership of receiving/parsing of SMB commands. Each received command is worked ownership of receiving/parsing of SMB commands. Each received command is worked
in parallel i.e., There can be multiple clients commands which are worked in in parallel i.e., there can be multiple client commands which are worked in
parallel. After receiving each command a separated kernel workitem is prepared parallel. After receiving each command a separated kernel workitem is prepared
for each command which is further queued to be handled by ksmbd-io kworkers. for each command which is further queued to be handled by ksmbd-io kworkers.
So, each SMB workitem is queued to the kworkers. This allows the benefit of load So, each SMB workitem is queued to the kworkers. This allows the benefit of load
@ -49,9 +49,9 @@ performance by handling client commands in parallel.
ksmbd.mountd (user space daemon) ksmbd.mountd (user space daemon)
-------------------------------- --------------------------------
ksmbd.mountd is userspace process to, transfer user account and password that ksmbd.mountd is a userspace process to, transfer the user account and password that
are registered using ksmbd.adduser (part of utils for user space). Further it are registered using ksmbd.adduser (part of utils for user space). Further it
allows sharing information parameters that parsed from smb.conf to ksmbd in allows sharing information parameters that are parsed from smb.conf to ksmbd in
kernel. For the execution part it has a daemon which is continuously running kernel. For the execution part it has a daemon which is continuously running
and connected to the kernel interface using netlink socket, it waits for the and connected to the kernel interface using netlink socket, it waits for the
requests (dcerpc and share/user info). It handles RPC calls (at a minimum few requests (dcerpc and share/user info). It handles RPC calls (at a minimum few
@ -124,7 +124,7 @@ How to run
1. Download ksmbd-tools(https://github.com/cifsd-team/ksmbd-tools/releases) and 1. Download ksmbd-tools(https://github.com/cifsd-team/ksmbd-tools/releases) and
compile them. compile them.
- Refer README(https://github.com/cifsd-team/ksmbd-tools/blob/master/README.md) - Refer to README(https://github.com/cifsd-team/ksmbd-tools/blob/master/README.md)
to know how to use ksmbd.mountd/adduser/addshare/control utils to know how to use ksmbd.mountd/adduser/addshare/control utils
$ ./autogen.sh $ ./autogen.sh
@ -133,7 +133,7 @@ How to run
2. Create /usr/local/etc/ksmbd/ksmbd.conf file, add SMB share in ksmbd.conf file. 2. Create /usr/local/etc/ksmbd/ksmbd.conf file, add SMB share in ksmbd.conf file.
- Refer ksmbd.conf.example in ksmbd-utils, See ksmbd.conf manpage - Refer to ksmbd.conf.example in ksmbd-utils, See ksmbd.conf manpage
for details to configure shares. for details to configure shares.
$ man ksmbd.conf $ man ksmbd.conf
@ -145,7 +145,7 @@ How to run
$ man ksmbd.adduser $ man ksmbd.adduser
$ sudo ksmbd.adduser -a <Enter USERNAME for SMB share access> $ sudo ksmbd.adduser -a <Enter USERNAME for SMB share access>
4. Insert ksmbd.ko module after build your kernel. No need to load module 4. Insert the ksmbd.ko module after you build your kernel. No need to load the module
if ksmbd is built into the kernel. if ksmbd is built into the kernel.
- Set ksmbd in menuconfig(e.g. $ make menuconfig) - Set ksmbd in menuconfig(e.g. $ make menuconfig)
@ -175,7 +175,7 @@ Each layer
1. Enable all component prints 1. Enable all component prints
# sudo ksmbd.control -d "all" # sudo ksmbd.control -d "all"
2. Enable one of components (smb, auth, vfs, oplock, ipc, conn, rdma) 2. Enable one of the components (smb, auth, vfs, oplock, ipc, conn, rdma)
# sudo ksmbd.control -d "smb" # sudo ksmbd.control -d "smb"
3. Show what prints are enabled. 3. Show what prints are enabled.

View File

@ -126,7 +126,7 @@ Ccache
``ccache`` can be used with ``clang`` to improve subsequent builds, (though ``ccache`` can be used with ``clang`` to improve subsequent builds, (though
KBUILD_BUILD_TIMESTAMP_ should be set to a deterministic value between builds KBUILD_BUILD_TIMESTAMP_ should be set to a deterministic value between builds
in order to avoid 100% cache misses, see Reproducible_builds_ for more info): in order to avoid 100% cache misses, see Reproducible_builds_ for more info)::
KBUILD_BUILD_TIMESTAMP='' make LLVM=1 CC="ccache clang" KBUILD_BUILD_TIMESTAMP='' make LLVM=1 CC="ccache clang"

View File

@ -1753,6 +1753,7 @@ operations:
request: request:
attributes: attributes:
- header - header
- context
reply: reply:
attributes: attributes:
- header - header
@ -1761,7 +1762,6 @@ operations:
- indir - indir
- hkey - hkey
- input_xfrm - input_xfrm
dump: *rss-get-op
- -
name: plca-get-cfg name: plca-get-cfg
doc: Get PLCA params. doc: Get PLCA params.

View File

@ -109,7 +109,6 @@ attribute-sets:
- -
name: port name: port
type: u16 type: u16
byte-order: big-endian
- -
name: flags name: flags
type: u32 type: u32

View File

@ -1875,6 +1875,7 @@ Kernel response contents:
===================================== ====== ========================== ===================================== ====== ==========================
``ETHTOOL_A_RSS_HEADER`` nested reply header ``ETHTOOL_A_RSS_HEADER`` nested reply header
``ETHTOOL_A_RSS_CONTEXT`` u32 context number
``ETHTOOL_A_RSS_HFUNC`` u32 RSS hash func ``ETHTOOL_A_RSS_HFUNC`` u32 RSS hash func
``ETHTOOL_A_RSS_INDIR`` binary Indir table bytes ``ETHTOOL_A_RSS_INDIR`` binary Indir table bytes
``ETHTOOL_A_RSS_HKEY`` binary Hash key bytes ``ETHTOOL_A_RSS_HKEY`` binary Hash key bytes

View File

@ -629,18 +629,6 @@ The preferred style for long (multi-line) comments is:
* with beginning and ending almost-blank lines. * with beginning and ending almost-blank lines.
*/ */
For files in net/ and drivers/net/ the preferred style for long (multi-line)
comments is a little different.
.. code-block:: c
/* The preferred comment style for files in net/ and drivers/net
* looks like this.
*
* It is nearly the same as the generally preferred comment style,
* but there is no initial almost-blank line.
*/
It's also important to comment data, whether they are basic types or derived It's also important to comment data, whether they are basic types or derived
types. To this end, use just one data declaration per line (no commas for types. To this end, use just one data declaration per line (no commas for
multiple data declarations). This leaves you room for a small comment on each multiple data declarations). This leaves you room for a small comment on each

View File

@ -13,9 +13,9 @@ kernel.
Hardware issues like Meltdown, Spectre, L1TF etc. must be treated Hardware issues like Meltdown, Spectre, L1TF etc. must be treated
differently because they usually affect all Operating Systems ("OS") and differently because they usually affect all Operating Systems ("OS") and
therefore need coordination across different OS vendors, distributions, therefore need coordination across different OS vendors, distributions,
hardware vendors and other parties. For some of the issues, software silicon vendors, hardware integrators, and other parties. For some of the
mitigations can depend on microcode or firmware updates, which need further issues, software mitigations can depend on microcode or firmware updates,
coordination. which need further coordination.
.. _Contact: .. _Contact:
@ -32,8 +32,8 @@ Linux kernel security team (:ref:`Documentation/admin-guide/
<securitybugs>`) instead. <securitybugs>`) instead.
The team can be contacted by email at <hardware-security@kernel.org>. This The team can be contacted by email at <hardware-security@kernel.org>. This
is a private list of security officers who will help you to coordinate a is a private list of security officers who will help you coordinate a fix
fix according to our documented process. according to our documented process.
The list is encrypted and email to the list can be sent by either PGP or The list is encrypted and email to the list can be sent by either PGP or
S/MIME encrypted and must be signed with the reporter's PGP key or S/MIME S/MIME encrypted and must be signed with the reporter's PGP key or S/MIME
@ -43,7 +43,7 @@ the following URLs:
- PGP: https://www.kernel.org/static/files/hardware-security.asc - PGP: https://www.kernel.org/static/files/hardware-security.asc
- S/MIME: https://www.kernel.org/static/files/hardware-security.crt - S/MIME: https://www.kernel.org/static/files/hardware-security.crt
While hardware security issues are often handled by the affected hardware While hardware security issues are often handled by the affected silicon
vendor, we welcome contact from researchers or individuals who have vendor, we welcome contact from researchers or individuals who have
identified a potential hardware flaw. identified a potential hardware flaw.
@ -65,7 +65,7 @@ of Linux Foundation's IT operations personnel technically have the
ability to access the embargoed information, but are obliged to ability to access the embargoed information, but are obliged to
confidentiality by their employment contract. Linux Foundation IT confidentiality by their employment contract. Linux Foundation IT
personnel are also responsible for operating and managing the rest of personnel are also responsible for operating and managing the rest of
kernel.org infrastructure. kernel.org's infrastructure.
The Linux Foundation's current director of IT Project infrastructure is The Linux Foundation's current director of IT Project infrastructure is
Konstantin Ryabitsev. Konstantin Ryabitsev.
@ -85,7 +85,7 @@ Memorandum of Understanding
The Linux kernel community has a deep understanding of the requirement to The Linux kernel community has a deep understanding of the requirement to
keep hardware security issues under embargo for coordination between keep hardware security issues under embargo for coordination between
different OS vendors, distributors, hardware vendors and other parties. different OS vendors, distributors, silicon vendors, and other parties.
The Linux kernel community has successfully handled hardware security The Linux kernel community has successfully handled hardware security
issues in the past and has the necessary mechanisms in place to allow issues in the past and has the necessary mechanisms in place to allow
@ -103,11 +103,11 @@ the issue in the best technical way.
All involved developers pledge to adhere to the embargo rules and to keep All involved developers pledge to adhere to the embargo rules and to keep
the received information confidential. Violation of the pledge will lead to the received information confidential. Violation of the pledge will lead to
immediate exclusion from the current issue and removal from all related immediate exclusion from the current issue and removal from all related
mailing-lists. In addition, the hardware security team will also exclude mailing lists. In addition, the hardware security team will also exclude
the offender from future issues. The impact of this consequence is a highly the offender from future issues. The impact of this consequence is a highly
effective deterrent in our community. In case a violation happens the effective deterrent in our community. In case a violation happens the
hardware security team will inform the involved parties immediately. If you hardware security team will inform the involved parties immediately. If you
or anyone becomes aware of a potential violation, please report it or anyone else becomes aware of a potential violation, please report it
immediately to the Hardware security officers. immediately to the Hardware security officers.
@ -124,14 +124,16 @@ method for these types of issues.
Start of Disclosure Start of Disclosure
""""""""""""""""""" """""""""""""""""""
Disclosure starts by contacting the Linux kernel hardware security team by Disclosure starts by emailing the Linux kernel hardware security team per
email. This initial contact should contain a description of the problem and the Contact section above. This initial contact should contain a
a list of any known affected hardware. If your organization builds or description of the problem and a list of any known affected silicon. If
distributes the affected hardware, we encourage you to also consider what your organization builds or distributes the affected hardware, we encourage
other hardware could be affected. you to also consider what other hardware could be affected. The disclosing
party is responsible for contacting the affected silicon vendors in a
timely manner.
The hardware security team will provide an incident-specific encrypted The hardware security team will provide an incident-specific encrypted
mailing-list which will be used for initial discussion with the reporter, mailing list which will be used for initial discussion with the reporter,
further disclosure, and coordination of fixes. further disclosure, and coordination of fixes.
The hardware security team will provide the disclosing party a list of The hardware security team will provide the disclosing party a list of
@ -158,8 +160,8 @@ This serves several purposes:
- The disclosed entities can be contacted to name experts who should - The disclosed entities can be contacted to name experts who should
participate in the mitigation development. participate in the mitigation development.
- If an expert which is required to handle an issue is employed by an - If an expert who is required to handle an issue is employed by a listed
listed entity or member of an listed entity, then the response teams can entity or member of an listed entity, then the response teams can
request the disclosure of that expert from that entity. This ensures request the disclosure of that expert from that entity. This ensures
that the expert is also part of the entity's response team. that the expert is also part of the entity's response team.
@ -169,8 +171,8 @@ Disclosure
The disclosing party provides detailed information to the initial response The disclosing party provides detailed information to the initial response
team via the specific encrypted mailing-list. team via the specific encrypted mailing-list.
From our experience the technical documentation of these issues is usually From our experience, the technical documentation of these issues is usually
a sufficient starting point and further technical clarification is best a sufficient starting point, and further technical clarification is best
done via email. done via email.
Mitigation development Mitigation development
@ -179,57 +181,93 @@ Mitigation development
The initial response team sets up an encrypted mailing-list or repurposes The initial response team sets up an encrypted mailing-list or repurposes
an existing one if appropriate. an existing one if appropriate.
Using a mailing-list is close to the normal Linux development process and Using a mailing list is close to the normal Linux development process and
has been successfully used in developing mitigations for various hardware has been successfully used to develop mitigations for various hardware
security issues in the past. security issues in the past.
The mailing-list operates in the same way as normal Linux development. The mailing list operates in the same way as normal Linux development.
Patches are posted, discussed and reviewed and if agreed on applied to a Patches are posted, discussed, and reviewed and if agreed upon, applied to
non-public git repository which is only accessible to the participating a non-public git repository which is only accessible to the participating
developers via a secure connection. The repository contains the main developers via a secure connection. The repository contains the main
development branch against the mainline kernel and backport branches for development branch against the mainline kernel and backport branches for
stable kernel versions as necessary. stable kernel versions as necessary.
The initial response team will identify further experts from the Linux The initial response team will identify further experts from the Linux
kernel developer community as needed. Bringing in experts can happen at any kernel developer community as needed. Any involved party can suggest
time of the development process and needs to be handled in a timely manner. further experts to be included, each of which will be subject to the same
requirements outlined above.
If an expert is employed by or member of an entity on the disclosure list Bringing in experts can happen at any time in the development process and
needs to be handled in a timely manner.
If an expert is employed by or a member of an entity on the disclosure list
provided by the disclosing party, then participation will be requested from provided by the disclosing party, then participation will be requested from
the relevant entity. the relevant entity.
If not, then the disclosing party will be informed about the experts If not, then the disclosing party will be informed about the experts'
participation. The experts are covered by the Memorandum of Understanding participation. The experts are covered by the Memorandum of Understanding
and the disclosing party is requested to acknowledge the participation. In and the disclosing party is requested to acknowledge their participation.
case that the disclosing party has a compelling reason to object, then this In the case where the disclosing party has a compelling reason to object,
objection has to be raised within five work days and resolved with the any objection must to be raised within five working days and resolved with
incident team immediately. If the disclosing party does not react within the incident team immediately. If the disclosing party does not react
five work days this is taken as silent acknowledgement. within five working days this is taken as silent acknowledgment.
After acknowledgement or resolution of an objection the expert is disclosed After the incident team acknowledges or resolves an objection, the expert
by the incident team and brought into the development process. is disclosed and brought into the development process.
List participants may not communicate about the issue outside of the List participants may not communicate about the issue outside of the
private mailing list. List participants may not use any shared resources private mailing list. List participants may not use any shared resources
(e.g. employer build farms, CI systems, etc) when working on patches. (e.g. employer build farms, CI systems, etc) when working on patches.
Early access
""""""""""""
The patches discussed and developed on the list can neither be distributed
to any individual who is not a member of the response team nor to any other
organization.
To allow the affected silicon vendors to work with their internal teams and
industry partners on testing, validation, and logistics, the following
exception is provided:
Designated representatives of the affected silicon vendors are
allowed to hand over the patches at any time to the silicon
vendors response team. The representative must notify the kernel
response team about the handover. The affected silicon vendor must
have and maintain their own documented security process for any
patches shared with their response team that is consistent with
this policy.
The silicon vendors response team can distribute these patches to
their industry partners and to their internal teams under the
silicon vendors documented security process. Feedback from the
industry partners goes back to the silicon vendor and is
communicated by the silicon vendor to the kernel response team.
The handover to the silicon vendors response team removes any
responsibility or liability from the kernel response team regarding
premature disclosure, which happens due to the involvement of the
silicon vendors internal teams or industry partners. The silicon
vendor guarantees this release of liability by agreeing to this
process.
Coordinated release Coordinated release
""""""""""""""""""" """""""""""""""""""
The involved parties will negotiate the date and time where the embargo The involved parties will negotiate the date and time when the embargo
ends. At that point the prepared mitigations are integrated into the ends. At that point, the prepared mitigations are published into the
relevant kernel trees and published. There is no pre-notification process: relevant kernel trees. There is no pre-notification process: the
fixes are published in public and available to everyone at the same time. mitigations are published in public and available to everyone at the same
time.
While we understand that hardware security issues need coordinated embargo While we understand that hardware security issues need coordinated embargo
time, the embargo time should be constrained to the minimum time which is time, the embargo time should be constrained to the minimum time that is
required for all involved parties to develop, test and prepare the required for all involved parties to develop, test, and prepare their
mitigations. Extending embargo time artificially to meet conference talk mitigations. Extending embargo time artificially to meet conference talk
dates or other non-technical reasons is creating more work and burden for dates or other non-technical reasons creates more work and burden for the
the involved developers and response teams as the patches need to be kept involved developers and response teams as the patches need to be kept up to
up to date in order to follow the ongoing upstream kernel development, date in order to follow the ongoing upstream kernel development, which
which might create conflicting changes. might create conflicting changes.
CVE assignment CVE assignment
"""""""""""""" """"""""""""""
@ -275,34 +313,35 @@ an involved disclosed party. The current ambassadors list:
If you want your organization to be added to the ambassadors list, please If you want your organization to be added to the ambassadors list, please
contact the hardware security team. The nominated ambassador has to contact the hardware security team. The nominated ambassador has to
understand and support our process fully and is ideally well connected in understand and support our process fully and is ideally well-connected in
the Linux kernel community. the Linux kernel community.
Encrypted mailing-lists Encrypted mailing-lists
----------------------- -----------------------
We use encrypted mailing-lists for communication. The operating principle We use encrypted mailing lists for communication. The operating principle
of these lists is that email sent to the list is encrypted either with the of these lists is that email sent to the list is encrypted either with the
list's PGP key or with the list's S/MIME certificate. The mailing-list list's PGP key or with the list's S/MIME certificate. The mailing list
software decrypts the email and re-encrypts it individually for each software decrypts the email and re-encrypts it individually for each
subscriber with the subscriber's PGP key or S/MIME certificate. Details subscriber with the subscriber's PGP key or S/MIME certificate. Details
about the mailing-list software and the setup which is used to ensure the about the mailing list software and the setup that is used to ensure the
security of the lists and protection of the data can be found here: security of the lists and protection of the data can be found here:
https://korg.wiki.kernel.org/userdoc/remail. https://korg.wiki.kernel.org/userdoc/remail.
List keys List keys
^^^^^^^^^ ^^^^^^^^^
For initial contact see :ref:`Contact`. For incident specific mailing-lists For initial contact see the :ref:`Contact` section above. For incident
the key and S/MIME certificate are conveyed to the subscribers by email specific mailing lists, the key and S/MIME certificate are conveyed to the
sent from the specific list. subscribers by email sent from the specific list.
Subscription to incident specific lists Subscription to incident-specific lists
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Subscription is handled by the response teams. Disclosed parties who want Subscription to incident-specific lists is handled by the response teams.
to participate in the communication send a list of potential subscribers to Disclosed parties who want to participate in the communication send a list
the response team so the response team can validate subscription requests. of potential experts to the response team so the response team can validate
subscription requests.
Each subscriber needs to send a subscription request to the response team Each subscriber needs to send a subscription request to the response team
by email. The email must be signed with the subscriber's PGP key or S/MIME by email. The email must be signed with the subscriber's PGP key or S/MIME

View File

@ -355,23 +355,6 @@ 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.
Multi-line comments
~~~~~~~~~~~~~~~~~~~
Comment style convention is slightly different for networking and most of
the tree. Instead of this::
/*
* foobar blah blah blah
* another line of text
*/
it is requested that you make it look like this::
/* foobar blah blah blah
* another line of text
*/
Local variable ordering ("reverse xmas tree", "RCS") Local variable ordering ("reverse xmas tree", "RCS")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -392,6 +375,22 @@ When working in existing code which uses nonstandard formatting make
your code follow the most recent guidelines, so that eventually all code your code follow the most recent guidelines, so that eventually all code
in the domain of netdev is in the preferred format. in the domain of netdev is in the preferred format.
Using device-managed and cleanup.h constructs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Netdev remains skeptical about promises of all "auto-cleanup" APIs,
including even ``devm_`` helpers, historically. They are not the preferred
style of implementation, merely an acceptable one.
Use of ``guard()`` is discouraged within any function longer than 20 lines,
``scoped_guard()`` is considered more readable. Using normal lock/unlock is
still (weakly) preferred.
Low level cleanup constructs (such as ``__free()``) can be used when building
APIs and helpers, especially scoped iterators. However, direct use of
``__free()`` within networking core and drivers is discouraged.
Similar guidance applies to declaring variables mid-function.
Resending after review Resending after review
~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

View File

@ -145,32 +145,32 @@ This is how a well-documented Rust function may look like:
This example showcases a few ``rustdoc`` features and some conventions followed This example showcases a few ``rustdoc`` features and some conventions followed
in the kernel: in the kernel:
- The first paragraph must be a single sentence briefly describing what - The first paragraph must be a single sentence briefly describing what
the documented item does. Further explanations must go in extra paragraphs. the documented item does. Further explanations must go in extra paragraphs.
- Unsafe functions must document their safety preconditions under - Unsafe functions must document their safety preconditions under
a ``# Safety`` section. a ``# Safety`` section.
- While not shown here, if a function may panic, the conditions under which - While not shown here, if a function may panic, the conditions under which
that happens must be described under a ``# Panics`` section. that happens must be described under a ``# Panics`` section.
Please note that panicking should be very rare and used only with a good Please note that panicking should be very rare and used only with a good
reason. In almost all cases, a fallible approach should be used, typically reason. In almost all cases, a fallible approach should be used, typically
returning a ``Result``. returning a ``Result``.
- If providing examples of usage would help readers, they must be written in - If providing examples of usage would help readers, they must be written in
a section called ``# Examples``. a section called ``# Examples``.
- Rust items (functions, types, constants...) must be linked appropriately - Rust items (functions, types, constants...) must be linked appropriately
(``rustdoc`` will create a link automatically). (``rustdoc`` will create a link automatically).
- Any ``unsafe`` block must be preceded by a ``// SAFETY:`` comment - Any ``unsafe`` block must be preceded by a ``// SAFETY:`` comment
describing why the code inside is sound. describing why the code inside is sound.
While sometimes the reason might look trivial and therefore unneeded, While sometimes the reason might look trivial and therefore unneeded,
writing these comments is not just a good way of documenting what has been writing these comments is not just a good way of documenting what has been
taken into account, but most importantly, it provides a way to know that taken into account, but most importantly, it provides a way to know that
there are no *extra* implicit constraints. there are no *extra* implicit constraints.
To learn more about how to write documentation for Rust and extra features, To learn more about how to write documentation for Rust and extra features,
please take a look at the ``rustdoc`` book at: please take a look at the ``rustdoc`` book at:

View File

@ -305,7 +305,7 @@ If GDB/Binutils is used and Rust symbols are not getting demangled, the reason
is the toolchain does not support Rust's new v0 mangling scheme yet. is the toolchain does not support Rust's new v0 mangling scheme yet.
There are a few ways out: There are a few ways out:
- Install a newer release (GDB >= 10.2, Binutils >= 2.36). - Install a newer release (GDB >= 10.2, Binutils >= 2.36).
- Some versions of GDB (e.g. vanilla GDB 10.1) are able to use - Some versions of GDB (e.g. vanilla GDB 10.1) are able to use
the pre-demangled names embedded in the debug info (``CONFIG_DEBUG_INFO``). the pre-demangled names embedded in the debug info (``CONFIG_DEBUG_INFO``).

View File

@ -21,9 +21,9 @@ are often referred to as greyscale formats.
.. raw:: latex .. raw:: latex
\scriptsize \tiny
.. tabularcolumns:: |p{3.6cm}|p{3.0cm}|p{1.3cm}|p{2.6cm}|p{1.3cm}|p{1.3cm}|p{1.3cm}| .. tabularcolumns:: |p{3.6cm}|p{2.4cm}|p{1.3cm}|p{1.3cm}|p{1.3cm}|p{1.3cm}|p{1.3cm}|p{1.3cm}|p{1.3cm}|
.. flat-table:: Luma-Only Image Formats .. flat-table:: Luma-Only Image Formats
:header-rows: 1 :header-rows: 1

View File

@ -0,0 +1,260 @@
.. SPDX-License-Identifier: GPL-2.0
Confidential Computing VMs
==========================
Hyper-V can create and run Linux guests that are Confidential Computing
(CoCo) VMs. Such VMs cooperate with the physical processor to better protect
the confidentiality and integrity of data in the VM's memory, even in the
face of a hypervisor/VMM that has been compromised and may behave maliciously.
CoCo VMs on Hyper-V share the generic CoCo VM threat model and security
objectives described in Documentation/security/snp-tdx-threat-model.rst. Note
that Hyper-V specific code in Linux refers to CoCo VMs as "isolated VMs" or
"isolation VMs".
A Linux CoCo VM on Hyper-V requires the cooperation and interaction of the
following:
* Physical hardware with a processor that supports CoCo VMs
* The hardware runs a version of Windows/Hyper-V with support for CoCo VMs
* The VM runs a version of Linux that supports being a CoCo VM
The physical hardware requirements are as follows:
* AMD processor with SEV-SNP. Hyper-V does not run guest VMs with AMD SME,
SEV, or SEV-ES encryption, and such encryption is not sufficient for a CoCo
VM on Hyper-V.
* Intel processor with TDX
To create a CoCo VM, the "Isolated VM" attribute must be specified to Hyper-V
when the VM is created. A VM cannot be changed from a CoCo VM to a normal VM,
or vice versa, after it is created.
Operational Modes
-----------------
Hyper-V CoCo VMs can run in two modes. The mode is selected when the VM is
created and cannot be changed during the life of the VM.
* Fully-enlightened mode. In this mode, the guest operating system is
enlightened to understand and manage all aspects of running as a CoCo VM.
* Paravisor mode. In this mode, a paravisor layer between the guest and the
host provides some operations needed to run as a CoCo VM. The guest operating
system can have fewer CoCo enlightenments than is required in the
fully-enlightened case.
Conceptually, fully-enlightened mode and paravisor mode may be treated as
points on a spectrum spanning the degree of guest enlightenment needed to run
as a CoCo VM. Fully-enlightened mode is one end of the spectrum. A full
implementation of paravisor mode is the other end of the spectrum, where all
aspects of running as a CoCo VM are handled by the paravisor, and a normal
guest OS with no knowledge of memory encryption or other aspects of CoCo VMs
can run successfully. However, the Hyper-V implementation of paravisor mode
does not go this far, and is somewhere in the middle of the spectrum. Some
aspects of CoCo VMs are handled by the Hyper-V paravisor while the guest OS
must be enlightened for other aspects. Unfortunately, there is no
standardized enumeration of feature/functions that might be provided in the
paravisor, and there is no standardized mechanism for a guest OS to query the
paravisor for the feature/functions it provides. The understanding of what
the paravisor provides is hard-coded in the guest OS.
Paravisor mode has similarities to the `Coconut project`_, which aims to provide
a limited paravisor to provide services to the guest such as a virtual TPM.
However, the Hyper-V paravisor generally handles more aspects of CoCo VMs
than is currently envisioned for Coconut, and so is further toward the "no
guest enlightenments required" end of the spectrum.
.. _Coconut project: https://github.com/coconut-svsm/svsm
In the CoCo VM threat model, the paravisor is in the guest security domain
and must be trusted by the guest OS. By implication, the hypervisor/VMM must
protect itself against a potentially malicious paravisor just like it
protects against a potentially malicious guest.
The hardware architectural approach to fully-enlightened vs. paravisor mode
varies depending on the underlying processor.
* With AMD SEV-SNP processors, in fully-enlightened mode the guest OS runs in
VMPL 0 and has full control of the guest context. In paravisor mode, the
guest OS runs in VMPL 2 and the paravisor runs in VMPL 0. The paravisor
running in VMPL 0 has privileges that the guest OS in VMPL 2 does not have.
Certain operations require the guest to invoke the paravisor. Furthermore, in
paravisor mode the guest OS operates in "virtual Top Of Memory" (vTOM) mode
as defined by the SEV-SNP architecture. This mode simplifies guest management
of memory encryption when a paravisor is used.
* With Intel TDX processor, in fully-enlightened mode the guest OS runs in an
L1 VM. In paravisor mode, TD partitioning is used. The paravisor runs in the
L1 VM, and the guest OS runs in a nested L2 VM.
Hyper-V exposes a synthetic MSR to guests that describes the CoCo mode. This
MSR indicates if the underlying processor uses AMD SEV-SNP or Intel TDX, and
whether a paravisor is being used. It is straightforward to build a single
kernel image that can boot and run properly on either architecture, and in
either mode.
Paravisor Effects
-----------------
Running in paravisor mode affects the following areas of generic Linux kernel
CoCo VM functionality:
* Initial guest memory setup. When a new VM is created in paravisor mode, the
paravisor runs first and sets up the guest physical memory as encrypted. The
guest Linux does normal memory initialization, except for explicitly marking
appropriate ranges as decrypted (shared). In paravisor mode, Linux does not
perform the early boot memory setup steps that are particularly tricky with
AMD SEV-SNP in fully-enlightened mode.
* #VC/#VE exception handling. In paravisor mode, Hyper-V configures the guest
CoCo VM to route #VC and #VE exceptions to VMPL 0 and the L1 VM,
respectively, and not the guest Linux. Consequently, these exception handlers
do not run in the guest Linux and are not a required enlightenment for a
Linux guest in paravisor mode.
* CPUID flags. Both AMD SEV-SNP and Intel TDX provide a CPUID flag in the
guest indicating that the VM is operating with the respective hardware
support. While these CPUID flags are visible in fully-enlightened CoCo VMs,
the paravisor filters out these flags and the guest Linux does not see them.
Throughout the Linux kernel, explicitly testing these flags has mostly been
eliminated in favor of the cc_platform_has() function, with the goal of
abstracting the differences between SEV-SNP and TDX. But the
cc_platform_has() abstraction also allows the Hyper-V paravisor configuration
to selectively enable aspects of CoCo VM functionality even when the CPUID
flags are not set. The exception is early boot memory setup on SEV-SNP, which
tests the CPUID SEV-SNP flag. But not having the flag in Hyper-V paravisor
mode VM achieves the desired effect or not running SEV-SNP specific early
boot memory setup.
* Device emulation. In paravisor mode, the Hyper-V paravisor provides
emulation of devices such as the IO-APIC and TPM. Because the emulation
happens in the paravisor in the guest context (instead of the hypervisor/VMM
context), MMIO accesses to these devices must be encrypted references instead
of the decrypted references that would be used in a fully-enlightened CoCo
VM. The __ioremap_caller() function has been enhanced to make a callback to
check whether a particular address range should be treated as encrypted
(private). See the "is_private_mmio" callback.
* Encrypt/decrypt memory transitions. In a CoCo VM, transitioning guest
memory between encrypted and decrypted requires coordinating with the
hypervisor/VMM. This is done via callbacks invoked from
__set_memory_enc_pgtable(). In fully-enlightened mode, the normal SEV-SNP and
TDX implementations of these callbacks are used. In paravisor mode, a Hyper-V
specific set of callbacks is used. These callbacks invoke the paravisor so
that the paravisor can coordinate the transitions and inform the hypervisor
as necessary. See hv_vtom_init() where these callback are set up.
* Interrupt injection. In fully enlightened mode, a malicious hypervisor
could inject interrupts into the guest OS at times that violate x86/x64
architectural rules. For full protection, the guest OS should include
enlightenments that use the interrupt injection management features provided
by CoCo-capable processors. In paravisor mode, the paravisor mediates
interrupt injection into the guest OS, and ensures that the guest OS only
sees interrupts that are "legal". The paravisor uses the interrupt injection
management features provided by the CoCo-capable physical processor, thereby
masking these complexities from the guest OS.
Hyper-V Hypercalls
------------------
When in fully-enlightened mode, hypercalls made by the Linux guest are routed
directly to the hypervisor, just as in a non-CoCo VM. But in paravisor mode,
normal hypercalls trap to the paravisor first, which may in turn invoke the
hypervisor. But the paravisor is idiosyncratic in this regard, and a few
hypercalls made by the Linux guest must always be routed directly to the
hypervisor. These hypercall sites test for a paravisor being present, and use
a special invocation sequence. See hv_post_message(), for example.
Guest communication with Hyper-V
--------------------------------
Separate from the generic Linux kernel handling of memory encryption in Linux
CoCo VMs, Hyper-V has VMBus and VMBus devices that communicate using memory
shared between the Linux guest and the host. This shared memory must be
marked decrypted to enable communication. Furthermore, since the threat model
includes a compromised and potentially malicious host, the guest must guard
against leaking any unintended data to the host through this shared memory.
These Hyper-V and VMBus memory pages are marked as decrypted:
* VMBus monitor pages
* Synthetic interrupt controller (synic) related pages (unless supplied by
the paravisor)
* Per-cpu hypercall input and output pages (unless running with a paravisor)
* VMBus ring buffers. The direct mapping is marked decrypted in
__vmbus_establish_gpadl(). The secondary mapping created in
hv_ringbuffer_init() must also include the "decrypted" attribute.
When the guest writes data to memory that is shared with the host, it must
ensure that only the intended data is written. Padding or unused fields must
be initialized to zeros before copying into the shared memory so that random
kernel data is not inadvertently given to the host.
Similarly, when the guest reads memory that is shared with the host, it must
validate the data before acting on it so that a malicious host cannot induce
the guest to expose unintended data. Doing such validation can be tricky
because the host can modify the shared memory areas even while or after
validation is performed. For messages passed from the host to the guest in a
VMBus ring buffer, the length of the message is validated, and the message is
copied into a temporary (encrypted) buffer for further validation and
processing. The copying adds a small amount of overhead, but is the only way
to protect against a malicious host. See hv_pkt_iter_first().
Many drivers for VMBus devices have been "hardened" by adding code to fully
validate messages received over VMBus, instead of assuming that Hyper-V is
acting cooperatively. Such drivers are marked as "allowed_in_isolated" in the
vmbus_devs[] table. Other drivers for VMBus devices that are not needed in a
CoCo VM have not been hardened, and they are not allowed to load in a CoCo
VM. See vmbus_is_valid_offer() where such devices are excluded.
Two VMBus devices depend on the Hyper-V host to do DMA data transfers:
storvsc for disk I/O and netvsc for network I/O. storvsc uses the normal
Linux kernel DMA APIs, and so bounce buffering through decrypted swiotlb
memory is done implicitly. netvsc has two modes for data transfers. The first
mode goes through send and receive buffer space that is explicitly allocated
by the netvsc driver, and is used for most smaller packets. These send and
receive buffers are marked decrypted by __vmbus_establish_gpadl(). Because
the netvsc driver explicitly copies packets to/from these buffers, the
equivalent of bounce buffering between encrypted and decrypted memory is
already part of the data path. The second mode uses the normal Linux kernel
DMA APIs, and is bounce buffered through swiotlb memory implicitly like in
storvsc.
Finally, the VMBus virtual PCI driver needs special handling in a CoCo VM.
Linux PCI device drivers access PCI config space using standard APIs provided
by the Linux PCI subsystem. On Hyper-V, these functions directly access MMIO
space, and the access traps to Hyper-V for emulation. But in CoCo VMs, memory
encryption prevents Hyper-V from reading the guest instruction stream to
emulate the access. So in a CoCo VM, these functions must make a hypercall
with arguments explicitly describing the access. See
_hv_pcifront_read_config() and _hv_pcifront_write_config() and the
"use_calls" flag indicating to use hypercalls.
load_unaligned_zeropad()
------------------------
When transitioning memory between encrypted and decrypted, the caller of
set_memory_encrypted() or set_memory_decrypted() is responsible for ensuring
the memory isn't in use and isn't referenced while the transition is in
progress. The transition has multiple steps, and includes interaction with
the Hyper-V host. The memory is in an inconsistent state until all steps are
complete. A reference while the state is inconsistent could result in an
exception that can't be cleanly fixed up.
However, the kernel load_unaligned_zeropad() mechanism may make stray
references that can't be prevented by the caller of set_memory_encrypted() or
set_memory_decrypted(), so there's specific code in the #VC or #VE exception
handler to fixup this case. But a CoCo VM running on Hyper-V may be
configured to run with a paravisor, with the #VC or #VE exception routed to
the paravisor. There's no architectural way to forward the exceptions back to
the guest kernel, and in such a case, the load_unaligned_zeropad() fixup code
in the #VC/#VE handlers doesn't run.
To avoid this problem, the Hyper-V specific functions for notifying the
hypervisor of the transition mark pages as "not present" while a transition
is in progress. If load_unaligned_zeropad() causes a stray reference, a
normal page fault is generated instead of #VC or #VE, and the page-fault-
based handlers for load_unaligned_zeropad() fixup the reference. When the
encrypted/decrypted transition is complete, the pages are marked as "present"
again. See hv_vtom_clear_present() and hv_vtom_set_host_visibility().

View File

@ -11,3 +11,4 @@ Hyper-V Enlightenments
vmbus vmbus
clocks clocks
vpci vpci
coco

View File

@ -2592,7 +2592,7 @@ Specifically:
0x6030 0000 0010 004a SPSR_ABT 64 spsr[KVM_SPSR_ABT] 0x6030 0000 0010 004a SPSR_ABT 64 spsr[KVM_SPSR_ABT]
0x6030 0000 0010 004c SPSR_UND 64 spsr[KVM_SPSR_UND] 0x6030 0000 0010 004c SPSR_UND 64 spsr[KVM_SPSR_UND]
0x6030 0000 0010 004e SPSR_IRQ 64 spsr[KVM_SPSR_IRQ] 0x6030 0000 0010 004e SPSR_IRQ 64 spsr[KVM_SPSR_IRQ]
0x6060 0000 0010 0050 SPSR_FIQ 64 spsr[KVM_SPSR_FIQ] 0x6030 0000 0010 0050 SPSR_FIQ 64 spsr[KVM_SPSR_FIQ]
0x6040 0000 0010 0054 V0 128 fp_regs.vregs[0] [1]_ 0x6040 0000 0010 0054 V0 128 fp_regs.vregs[0] [1]_
0x6040 0000 0010 0058 V1 128 fp_regs.vregs[1] [1]_ 0x6040 0000 0010 0058 V1 128 fp_regs.vregs[1] [1]_
... ...
@ -6368,7 +6368,7 @@ a single guest_memfd file, but the bound ranges must not overlap).
See KVM_SET_USER_MEMORY_REGION2 for additional details. See KVM_SET_USER_MEMORY_REGION2 for additional details.
4.143 KVM_PRE_FAULT_MEMORY 4.143 KVM_PRE_FAULT_MEMORY
------------------------ ---------------------------
:Capability: KVM_CAP_PRE_FAULT_MEMORY :Capability: KVM_CAP_PRE_FAULT_MEMORY
:Architectures: none :Architectures: none
@ -6405,6 +6405,12 @@ for the current vCPU state. KVM maps memory as if the vCPU generated a
stage-2 read page fault, e.g. faults in memory as needed, but doesn't break stage-2 read page fault, e.g. faults in memory as needed, but doesn't break
CoW. However, KVM does not mark any newly created stage-2 PTE as Accessed. CoW. However, KVM does not mark any newly created stage-2 PTE as Accessed.
In the case of confidential VM types where there is an initial set up of
private guest memory before the guest is 'finalized'/measured, this ioctl
should only be issued after completing all the necessary setup to put the
guest into a 'finalized' state so that the above semantics can be reliably
ensured.
In some cases, multiple vCPUs might share the page tables. In this In some cases, multiple vCPUs might share the page tables. In this
case, the ioctl can be called in parallel. case, the ioctl can be called in parallel.

View File

@ -130,12 +130,12 @@ data using the `bmfdec <https://github.com/pali/bmfdec>`_ utility:
Due to a peculiarity in how Windows handles the ``CreateByteField()`` ACPI operator (errors only Due to a peculiarity in how Windows handles the ``CreateByteField()`` ACPI operator (errors only
happen when a invalid byte field is ultimately accessed), all methods require a 32 byte input happen when a invalid byte field is ultimately accessed), all methods require a 32 byte input
buffer, even if the Binay MOF says otherwise. buffer, even if the Binary MOF says otherwise.
The input buffer contains a single byte to select the subfeature to be accessed and 31 bytes of The input buffer contains a single byte to select the subfeature to be accessed and 31 bytes of
input data, the meaning of which depends on the subfeature being accessed. input data, the meaning of which depends on the subfeature being accessed.
The output buffer contains a singe byte which signals success or failure (``0x00`` on failure) The output buffer contains a single byte which signals success or failure (``0x00`` on failure)
and 31 bytes of output data, the meaning if which depends on the subfeature being accessed. and 31 bytes of output data, the meaning if which depends on the subfeature being accessed.
WMI method Get_EC() WMI method Get_EC()
@ -147,7 +147,7 @@ data contains a flag byte and a 28 byte controller firmware version string.
The first 4 bits of the flag byte contain the minor version of the embedded controller interface, The first 4 bits of the flag byte contain the minor version of the embedded controller interface,
with the next 2 bits containing the major version of the embedded controller interface. with the next 2 bits containing the major version of the embedded controller interface.
The 7th bit signals if the embedded controller page chaged (exact meaning is unknown), and the The 7th bit signals if the embedded controller page changed (exact meaning is unknown), and the
last bit signals if the platform is a Tigerlake platform. last bit signals if the platform is a Tigerlake platform.
The MSI software seems to only use this interface when the last bit is set. The MSI software seems to only use this interface when the last bit is set.

View File

@ -1880,6 +1880,10 @@ F: Documentation/devicetree/bindings/iommu/arm,smmu*
F: drivers/iommu/arm/ F: drivers/iommu/arm/
F: drivers/iommu/io-pgtable-arm* F: drivers/iommu/io-pgtable-arm*
ARM SMMU SVA SUPPORT
R: Jean-Philippe Brucker <jean-philippe@linaro.org>
F: drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c
ARM SUB-ARCHITECTURES ARM SUB-ARCHITECTURES
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Maintained S: Maintained
@ -2535,8 +2539,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Supported S: Supported
W: http://www.linux4sam.org W: http://www.linux4sam.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux.git
F: arch/arm/boot/dts/microchip/at91* F: arch/arm/boot/dts/microchip/
F: arch/arm/boot/dts/microchip/sama*
F: arch/arm/include/debug/at91.S F: arch/arm/include/debug/at91.S
F: arch/arm/mach-at91/ F: arch/arm/mach-at91/
F: drivers/memory/atmel* F: drivers/memory/atmel*
@ -2745,7 +2748,7 @@ F: include/linux/soc/qcom/
ARM/QUALCOMM SUPPORT ARM/QUALCOMM SUPPORT
M: Bjorn Andersson <andersson@kernel.org> M: Bjorn Andersson <andersson@kernel.org>
M: Konrad Dybcio <konrad.dybcio@linaro.org> M: Konrad Dybcio <konradybcio@kernel.org>
L: linux-arm-msm@vger.kernel.org L: linux-arm-msm@vger.kernel.org
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
@ -3504,7 +3507,9 @@ S: Maintained
W: http://linux-atm.sourceforge.net W: http://linux-atm.sourceforge.net
F: drivers/atm/ F: drivers/atm/
F: include/linux/atm* F: include/linux/atm*
F: include/linux/sonet.h
F: include/uapi/linux/atm* F: include/uapi/linux/atm*
F: include/uapi/linux/sonet.h
ATMEL MACB ETHERNET DRIVER ATMEL MACB ETHERNET DRIVER
M: Nicolas Ferre <nicolas.ferre@microchip.com> M: Nicolas Ferre <nicolas.ferre@microchip.com>
@ -3862,7 +3867,7 @@ F: kernel/trace/blktrace.c
F: lib/sbitmap.c F: lib/sbitmap.c
BLOCK LAYER DEVICE DRIVER API [RUST] BLOCK LAYER DEVICE DRIVER API [RUST]
M: Andreas Hindborg <a.hindborg@samsung.com> M: Andreas Hindborg <a.hindborg@kernel.org>
R: Boqun Feng <boqun.feng@gmail.com> R: Boqun Feng <boqun.feng@gmail.com>
L: linux-block@vger.kernel.org L: linux-block@vger.kernel.org
L: rust-for-linux@vger.kernel.org L: rust-for-linux@vger.kernel.org
@ -5305,7 +5310,7 @@ F: drivers/media/cec/i2c/ch7322.c
CIRRUS LOGIC AUDIO CODEC DRIVERS CIRRUS LOGIC AUDIO CODEC DRIVERS
M: David Rhodes <david.rhodes@cirrus.com> M: David Rhodes <david.rhodes@cirrus.com>
M: Richard Fitzgerald <rf@opensource.cirrus.com> M: Richard Fitzgerald <rf@opensource.cirrus.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
L: patches@opensource.cirrus.com L: patches@opensource.cirrus.com
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/sound/cirrus,cs* F: Documentation/devicetree/bindings/sound/cirrus,cs*
@ -5374,7 +5379,7 @@ F: sound/soc/codecs/lochnagar-sc.c
CIRRUS LOGIC MADERA CODEC DRIVERS CIRRUS LOGIC MADERA CODEC DRIVERS
M: Charles Keepax <ckeepax@opensource.cirrus.com> M: Charles Keepax <ckeepax@opensource.cirrus.com>
M: Richard Fitzgerald <rf@opensource.cirrus.com> M: Richard Fitzgerald <rf@opensource.cirrus.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: linux-sound@vger.kernel.org
L: patches@opensource.cirrus.com L: patches@opensource.cirrus.com
S: Supported S: Supported
W: https://github.com/CirrusLogic/linux-drivers/wiki W: https://github.com/CirrusLogic/linux-drivers/wiki
@ -5950,6 +5955,7 @@ F: Documentation/process/cve.rst
CW1200 WLAN driver CW1200 WLAN driver
S: Orphan S: Orphan
F: drivers/net/wireless/st/cw1200/ F: drivers/net/wireless/st/cw1200/
F: include/linux/platform_data/net-cw1200.h
CX18 VIDEO4LINUX DRIVER CX18 VIDEO4LINUX DRIVER
M: Andy Walls <awalls@md.metrocast.net> M: Andy Walls <awalls@md.metrocast.net>
@ -7105,7 +7111,7 @@ F: drivers/gpu/drm/tiny/panel-mipi-dbi.c
DRM DRIVER for Qualcomm Adreno GPUs DRM DRIVER for Qualcomm Adreno GPUs
M: Rob Clark <robdclark@gmail.com> M: Rob Clark <robdclark@gmail.com>
R: Sean Paul <sean@poorly.run> R: Sean Paul <sean@poorly.run>
R: Konrad Dybcio <konrad.dybcio@linaro.org> R: Konrad Dybcio <konradybcio@kernel.org>
L: linux-arm-msm@vger.kernel.org L: linux-arm-msm@vger.kernel.org
L: dri-devel@lists.freedesktop.org L: dri-devel@lists.freedesktop.org
L: freedreno@lists.freedesktop.org L: freedreno@lists.freedesktop.org
@ -7451,8 +7457,8 @@ S: Maintained
T: git https://gitlab.freedesktop.org/drm/misc/kernel.git T: git https://gitlab.freedesktop.org/drm/misc/kernel.git
F: Documentation/devicetree/bindings/display/bridge/ F: Documentation/devicetree/bindings/display/bridge/
F: drivers/gpu/drm/bridge/ F: drivers/gpu/drm/bridge/
F: drivers/gpu/drm/display/drm_bridge_connector.c
F: drivers/gpu/drm/drm_bridge.c F: drivers/gpu/drm/drm_bridge.c
F: drivers/gpu/drm/drm_bridge_connector.c
F: include/drm/drm_bridge.h F: include/drm/drm_bridge.h
F: include/drm/drm_bridge_connector.h F: include/drm/drm_bridge_connector.h
@ -8858,6 +8864,7 @@ F: drivers/dma/fsldma.*
FREESCALE DSPI DRIVER FREESCALE DSPI DRIVER
M: Vladimir Oltean <olteanv@gmail.com> M: Vladimir Oltean <olteanv@gmail.com>
L: linux-spi@vger.kernel.org L: linux-spi@vger.kernel.org
L: imx@lists.linux.dev
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/spi/fsl,dspi*.yaml F: Documentation/devicetree/bindings/spi/fsl,dspi*.yaml
F: drivers/spi/spi-fsl-dspi.c F: drivers/spi/spi-fsl-dspi.c
@ -8942,6 +8949,14 @@ S: Maintained
F: Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml F: Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml
F: drivers/i2c/busses/i2c-imx-lpi2c.c F: drivers/i2c/busses/i2c-imx-lpi2c.c
FREESCALE IMX LPSPI DRIVER
M: Frank Li <Frank.Li@nxp.com>
L: linux-spi@vger.kernel.org
L: imx@lists.linux.dev
S: Maintained
F: Documentation/devicetree/bindings/spi/spi-fsl-lpspi.yaml
F: drivers/spi/spi-fsl-lpspi.c
FREESCALE MPC I2C DRIVER FREESCALE MPC I2C DRIVER
M: Chris Packham <chris.packham@alliedtelesis.co.nz> M: Chris Packham <chris.packham@alliedtelesis.co.nz>
L: linux-i2c@vger.kernel.org L: linux-i2c@vger.kernel.org
@ -8978,6 +8993,7 @@ F: include/linux/fsl/ptp_qoriq.h
FREESCALE QUAD SPI DRIVER FREESCALE QUAD SPI DRIVER
M: Han Xu <han.xu@nxp.com> M: Han Xu <han.xu@nxp.com>
L: linux-spi@vger.kernel.org L: linux-spi@vger.kernel.org
L: imx@lists.linux.dev
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/spi/fsl,spi-fsl-qspi.yaml F: Documentation/devicetree/bindings/spi/fsl,spi-fsl-qspi.yaml
F: drivers/spi/spi-fsl-qspi.c F: drivers/spi/spi-fsl-qspi.c
@ -10172,7 +10188,7 @@ F: Documentation/devicetree/bindings/infiniband/hisilicon-hns-roce.txt
F: drivers/infiniband/hw/hns/ F: drivers/infiniband/hw/hns/
HISILICON SAS Controller HISILICON SAS Controller
M: Xiang Chen <chenxiang66@hisilicon.com> M: Yihang Li <liyihang9@huawei.com>
S: Supported S: Supported
W: http://www.hisilicon.com W: http://www.hisilicon.com
F: Documentation/devicetree/bindings/scsi/hisilicon-sas.txt F: Documentation/devicetree/bindings/scsi/hisilicon-sas.txt
@ -11139,12 +11155,12 @@ F: drivers/gpio/gpio-i8255.h
INTEL ASoC DRIVERS INTEL ASoC DRIVERS
M: Cezary Rojewski <cezary.rojewski@intel.com> M: Cezary Rojewski <cezary.rojewski@intel.com>
M: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
M: Liam Girdwood <liam.r.girdwood@linux.intel.com> M: Liam Girdwood <liam.r.girdwood@linux.intel.com>
M: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> M: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
M: Bard Liao <yung-chuan.liao@linux.intel.com> 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>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: alsa-devel@alsa-project.org (moderated for non-subscribers)
S: Supported S: Supported
F: sound/soc/intel/ F: sound/soc/intel/
@ -11992,7 +12008,7 @@ F: fs/jfs/
JME NETWORK DRIVER JME NETWORK DRIVER
M: Guo-Fu Tseng <cooldavid@cooldavid.org> M: Guo-Fu Tseng <cooldavid@cooldavid.org>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
S: Maintained S: Odd Fixes
F: drivers/net/ethernet/jme.* F: drivers/net/ethernet/jme.*
JOURNALLING FLASH FILE SYSTEM V2 (JFFS2) JOURNALLING FLASH FILE SYSTEM V2 (JFFS2)
@ -12164,7 +12180,7 @@ KERNEL NFSD, SUNRPC, AND LOCKD SERVERS
M: Chuck Lever <chuck.lever@oracle.com> M: Chuck Lever <chuck.lever@oracle.com>
M: Jeff Layton <jlayton@kernel.org> M: Jeff Layton <jlayton@kernel.org>
R: Neil Brown <neilb@suse.de> R: Neil Brown <neilb@suse.de>
R: Olga Kornievskaia <kolga@netapp.com> R: Olga Kornievskaia <okorniev@redhat.com>
R: Dai Ngo <Dai.Ngo@oracle.com> R: Dai Ngo <Dai.Ngo@oracle.com>
R: Tom Talpey <tom@talpey.com> R: Tom Talpey <tom@talpey.com>
L: linux-nfs@vger.kernel.org L: linux-nfs@vger.kernel.org
@ -13323,14 +13339,16 @@ F: Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt
F: drivers/i2c/muxes/i2c-mux-ltc4306.c F: drivers/i2c/muxes/i2c-mux-ltc4306.c
LTP (Linux Test Project) LTP (Linux Test Project)
M: Andrea Cervesato <andrea.cervesato@suse.com>
M: Cyril Hrubis <chrubis@suse.cz> M: Cyril Hrubis <chrubis@suse.cz>
M: Jan Stancek <jstancek@redhat.com> M: Jan Stancek <jstancek@redhat.com>
M: Petr Vorel <pvorel@suse.cz> M: Petr Vorel <pvorel@suse.cz>
M: Li Wang <liwang@redhat.com> M: Li Wang <liwang@redhat.com>
M: Yang Xu <xuyang2018.jy@fujitsu.com> M: Yang Xu <xuyang2018.jy@fujitsu.com>
M: Xiao Yang <yangx.jy@fujitsu.com>
L: ltp@lists.linux.it (subscribers-only) L: ltp@lists.linux.it (subscribers-only)
S: Maintained S: Maintained
W: http://linux-test-project.github.io/ W: https://linux-test-project.readthedocs.io/
T: git https://github.com/linux-test-project/ltp.git T: git https://github.com/linux-test-project/ltp.git
LTR390 AMBIENT/UV LIGHT SENSOR DRIVER LTR390 AMBIENT/UV LIGHT SENSOR DRIVER
@ -13538,7 +13556,7 @@ MARVELL GIGABIT ETHERNET DRIVERS (skge/sky2)
M: Mirko Lindner <mlindner@marvell.com> M: Mirko Lindner <mlindner@marvell.com>
M: Stephen Hemminger <stephen@networkplumber.org> M: Stephen Hemminger <stephen@networkplumber.org>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
S: Maintained S: Odd fixes
F: drivers/net/ethernet/marvell/sk* F: drivers/net/ethernet/marvell/sk*
MARVELL LIBERTAS WIRELESS DRIVER MARVELL LIBERTAS WIRELESS DRIVER
@ -15874,15 +15892,21 @@ F: drivers/net/
F: include/dt-bindings/net/ F: include/dt-bindings/net/
F: include/linux/cn_proc.h F: include/linux/cn_proc.h
F: include/linux/etherdevice.h F: include/linux/etherdevice.h
F: include/linux/ethtool_netlink.h
F: include/linux/fcdevice.h F: include/linux/fcdevice.h
F: include/linux/fddidevice.h F: include/linux/fddidevice.h
F: include/linux/hippidevice.h F: include/linux/hippidevice.h
F: include/linux/if_* F: include/linux/if_*
F: include/linux/inetdevice.h F: include/linux/inetdevice.h
F: include/linux/netdevice.h F: include/linux/netdev*
F: include/linux/platform_data/wiznet.h
F: include/uapi/linux/cn_proc.h F: include/uapi/linux/cn_proc.h
F: include/uapi/linux/ethtool_netlink.h
F: include/uapi/linux/if_* F: include/uapi/linux/if_*
F: include/uapi/linux/netdevice.h F: include/uapi/linux/netdev*
F: tools/testing/selftests/drivers/net/
X: Documentation/devicetree/bindings/net/bluetooth/
X: Documentation/devicetree/bindings/net/wireless/
X: drivers/net/wireless/ X: drivers/net/wireless/
NETWORKING DRIVERS (WIRELESS) NETWORKING DRIVERS (WIRELESS)
@ -15933,13 +15957,28 @@ F: include/linux/framer/framer-provider.h
F: include/linux/framer/framer.h F: include/linux/framer/framer.h
F: include/linux/in.h F: include/linux/in.h
F: include/linux/indirect_call_wrapper.h F: include/linux/indirect_call_wrapper.h
F: include/linux/inet.h
F: include/linux/inet_diag.h
F: include/linux/net.h F: include/linux/net.h
F: include/linux/netdevice.h F: include/linux/netdev*
F: include/linux/netlink.h
F: include/linux/netpoll.h
F: include/linux/rtnetlink.h
F: include/linux/seq_file_net.h
F: include/linux/skbuff*
F: include/net/ F: include/net/
F: include/uapi/linux/genetlink.h
F: include/uapi/linux/hsr_netlink.h
F: include/uapi/linux/in.h F: include/uapi/linux/in.h
F: include/uapi/linux/inet_diag.h
F: include/uapi/linux/nbd-netlink.h
F: include/uapi/linux/net.h F: include/uapi/linux/net.h
F: include/uapi/linux/net_namespace.h F: include/uapi/linux/net_namespace.h
F: include/uapi/linux/netdevice.h F: include/uapi/linux/netconf.h
F: include/uapi/linux/netdev*
F: include/uapi/linux/netlink.h
F: include/uapi/linux/netlink_diag.h
F: include/uapi/linux/rtnetlink.h
F: lib/net_utils.c F: lib/net_utils.c
F: lib/random32.c F: lib/random32.c
F: net/ F: net/
@ -16381,6 +16420,7 @@ M: Han Xu <han.xu@nxp.com>
M: Haibo Chen <haibo.chen@nxp.com> M: Haibo Chen <haibo.chen@nxp.com>
R: Yogesh Gaur <yogeshgaur.83@gmail.com> R: Yogesh Gaur <yogeshgaur.83@gmail.com>
L: linux-spi@vger.kernel.org L: linux-spi@vger.kernel.org
L: imx@lists.linux.dev
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml F: Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
F: drivers/spi/spi-nxp-fspi.c F: drivers/spi/spi-nxp-fspi.c
@ -17092,7 +17132,7 @@ F: include/dt-bindings/
OPENCOMPUTE PTP CLOCK DRIVER OPENCOMPUTE PTP CLOCK DRIVER
M: Jonathan Lemon <jonathan.lemon@gmail.com> M: Jonathan Lemon <jonathan.lemon@gmail.com>
M: Vadim Fedorenko <vadfed@linux.dev> M: Vadim Fedorenko <vadim.fedorenko@linux.dev>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
S: Maintained S: Maintained
F: drivers/ptp/ptp_ocp.c F: drivers/ptp/ptp_ocp.c
@ -17411,6 +17451,7 @@ M: Roy Zang <roy.zang@nxp.com>
L: linuxppc-dev@lists.ozlabs.org L: linuxppc-dev@lists.ozlabs.org
L: linux-pci@vger.kernel.org L: linux-pci@vger.kernel.org
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: imx@lists.linux.dev
S: Maintained S: Maintained
F: drivers/pci/controller/dwc/*layerscape* F: drivers/pci/controller/dwc/*layerscape*
@ -17437,6 +17478,7 @@ M: Richard Zhu <hongxing.zhu@nxp.com>
M: Lucas Stach <l.stach@pengutronix.de> M: Lucas Stach <l.stach@pengutronix.de>
L: linux-pci@vger.kernel.org L: linux-pci@vger.kernel.org
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: imx@lists.linux.dev
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml
F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml
@ -17615,6 +17657,7 @@ F: drivers/pci/controller/pci-xgene-msi.c
PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
M: Lorenzo Pieralisi <lpieralisi@kernel.org> M: Lorenzo Pieralisi <lpieralisi@kernel.org>
M: Krzysztof Wilczyński <kw@linux.com> M: Krzysztof Wilczyński <kw@linux.com>
R: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
R: Rob Herring <robh@kernel.org> R: Rob Herring <robh@kernel.org>
L: linux-pci@vger.kernel.org L: linux-pci@vger.kernel.org
S: Supported S: Supported
@ -18363,6 +18406,7 @@ L: netdev@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/net/pse-pd/ F: Documentation/devicetree/bindings/net/pse-pd/
F: drivers/net/pse-pd/ F: drivers/net/pse-pd/
F: net/ethtool/pse-pd.c
PSTORE FILESYSTEM PSTORE FILESYSTEM
M: Kees Cook <kees@kernel.org> M: Kees Cook <kees@kernel.org>
@ -18521,7 +18565,6 @@ 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>
M: Banajit Goswami <bgoswami@quicinc.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: alsa-devel@alsa-project.org (moderated for non-subscribers)
L: linux-arm-msm@vger.kernel.org L: linux-arm-msm@vger.kernel.org
S: Supported S: Supported
@ -18555,7 +18598,7 @@ F: drivers/usb/misc/qcom_eud.c
QCOM IPA DRIVER QCOM IPA DRIVER
M: Alex Elder <elder@kernel.org> M: Alex Elder <elder@kernel.org>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
S: Supported S: Maintained
F: drivers/net/ipa/ F: drivers/net/ipa/
QEMU MACHINE EMULATOR AND VIRTUALIZER SUPPORT QEMU MACHINE EMULATOR AND VIRTUALIZER SUPPORT
@ -18770,7 +18813,7 @@ F: include/uapi/drm/qaic_accel.h
QUALCOMM CORE POWER REDUCTION (CPR) AVS DRIVER QUALCOMM CORE POWER REDUCTION (CPR) AVS DRIVER
M: Bjorn Andersson <andersson@kernel.org> M: Bjorn Andersson <andersson@kernel.org>
M: Konrad Dybcio <konrad.dybcio@linaro.org> M: Konrad Dybcio <konradybcio@kernel.org>
L: linux-pm@vger.kernel.org L: linux-pm@vger.kernel.org
L: linux-arm-msm@vger.kernel.org L: linux-arm-msm@vger.kernel.org
S: Maintained S: Maintained
@ -19903,12 +19946,11 @@ F: tools/verification/
RUST RUST
M: Miguel Ojeda <ojeda@kernel.org> M: Miguel Ojeda <ojeda@kernel.org>
M: Alex Gaynor <alex.gaynor@gmail.com> M: Alex Gaynor <alex.gaynor@gmail.com>
M: Wedson Almeida Filho <wedsonaf@gmail.com>
R: Boqun Feng <boqun.feng@gmail.com> R: Boqun Feng <boqun.feng@gmail.com>
R: Gary Guo <gary@garyguo.net> R: Gary Guo <gary@garyguo.net>
R: Björn Roy Baron <bjorn3_gh@protonmail.com> R: Björn Roy Baron <bjorn3_gh@protonmail.com>
R: Benno Lossin <benno.lossin@proton.me> R: Benno Lossin <benno.lossin@proton.me>
R: Andreas Hindborg <a.hindborg@samsung.com> R: Andreas Hindborg <a.hindborg@kernel.org>
R: Alice Ryhl <aliceryhl@google.com> R: Alice Ryhl <aliceryhl@google.com>
L: rust-for-linux@vger.kernel.org L: rust-for-linux@vger.kernel.org
S: Supported S: Supported
@ -20350,6 +20392,7 @@ F: Documentation/devicetree/bindings/scsi/
F: drivers/scsi/ F: drivers/scsi/
F: drivers/ufs/ F: drivers/ufs/
F: include/scsi/ F: include/scsi/
F: include/uapi/scsi/
SCSI TAPE DRIVER SCSI TAPE DRIVER
M: Kai Mäkisara <Kai.Makisara@kolumbus.fi> M: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
@ -21050,6 +21093,7 @@ SOCKET TIMESTAMPING
M: Willem de Bruijn <willemdebruijn.kernel@gmail.com> M: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
S: Maintained S: Maintained
F: Documentation/networking/timestamping.rst F: Documentation/networking/timestamping.rst
F: include/linux/net_tstamp.h
F: include/uapi/linux/net_tstamp.h F: include/uapi/linux/net_tstamp.h
F: tools/testing/selftests/net/so_txtime.c F: tools/testing/selftests/net/so_txtime.c
@ -21346,13 +21390,13 @@ S: Maintained
F: tools/sound/dapm-graph F: tools/sound/dapm-graph
SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS
M: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
M: Liam Girdwood <lgirdwood@gmail.com> M: Liam Girdwood <lgirdwood@gmail.com>
M: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> M: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
M: Bard Liao <yung-chuan.liao@linux.intel.com> 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: Daniel Baluta <daniel.baluta@nxp.com> M: Daniel Baluta <daniel.baluta@nxp.com>
R: Kai Vehmanen <kai.vehmanen@linux.intel.com> R: Kai Vehmanen <kai.vehmanen@linux.intel.com>
R: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
L: sound-open-firmware@alsa-project.org (moderated for non-subscribers) L: sound-open-firmware@alsa-project.org (moderated for non-subscribers)
S: Supported S: Supported
W: https://github.com/thesofproject/linux/ W: https://github.com/thesofproject/linux/
@ -21361,7 +21405,7 @@ F: sound/soc/sof/
SOUNDWIRE SUBSYSTEM SOUNDWIRE SUBSYSTEM
M: Vinod Koul <vkoul@kernel.org> 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.intel.com> 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: alsa-devel@alsa-project.org (moderated for non-subscribers)
S: Supported S: Supported
@ -23817,10 +23861,8 @@ F: drivers/media/usb/uvc/
F: include/uapi/linux/uvcvideo.h F: include/uapi/linux/uvcvideo.h
USB WEBCAM GADGET USB WEBCAM GADGET
M: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
M: Daniel Scally <dan.scally@ideasonboard.com>
L: linux-usb@vger.kernel.org L: linux-usb@vger.kernel.org
S: Maintained S: Orphan
F: drivers/usb/gadget/function/*uvc* F: drivers/usb/gadget/function/*uvc*
F: drivers/usb/gadget/legacy/webcam.c F: drivers/usb/gadget/legacy/webcam.c
F: include/uapi/linux/usb/g_uvc.h F: include/uapi/linux/usb/g_uvc.h

View File

@ -2,7 +2,7 @@
VERSION = 6 VERSION = 6
PATCHLEVEL = 11 PATCHLEVEL = 11
SUBLEVEL = 0 SUBLEVEL = 0
EXTRAVERSION = -rc1 EXTRAVERSION =
NAME = Baby Opossum Posse NAME = Baby Opossum Posse
# *DOCUMENTATION* # *DOCUMENTATION*
@ -445,6 +445,7 @@ KBUILD_USERLDFLAGS := $(USERLDFLAGS)
# host programs. # host programs.
export rust_common_flags := --edition=2021 \ export rust_common_flags := --edition=2021 \
-Zbinary_dep_depinfo=y \ -Zbinary_dep_depinfo=y \
-Astable_features \
-Dunsafe_op_in_unsafe_fn \ -Dunsafe_op_in_unsafe_fn \
-Dnon_ascii_idents \ -Dnon_ascii_idents \
-Wrust_2018_idioms \ -Wrust_2018_idioms \
@ -1963,7 +1964,7 @@ tags TAGS cscope gtags: FORCE
# Protocol). # Protocol).
PHONY += rust-analyzer PHONY += rust-analyzer
rust-analyzer: rust-analyzer:
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/rust_is_available.sh +$(Q)$(CONFIG_SHELL) $(srctree)/scripts/rust_is_available.sh
$(Q)$(MAKE) $(build)=rust $@ $(Q)$(MAKE) $(build)=rust $@
# Script to generate missing namespace dependencies # Script to generate missing namespace dependencies
@ -1980,7 +1981,7 @@ nsdeps: modules
quiet_cmd_gen_compile_commands = GEN $@ quiet_cmd_gen_compile_commands = GEN $@
cmd_gen_compile_commands = $(PYTHON3) $< -a $(AR) -o $@ $(filter-out $<, $(real-prereqs)) cmd_gen_compile_commands = $(PYTHON3) $< -a $(AR) -o $@ $(filter-out $<, $(real-prereqs))
$(extmod_prefix)compile_commands.json: scripts/clang-tools/gen_compile_commands.py \ $(extmod_prefix)compile_commands.json: $(srctree)/scripts/clang-tools/gen_compile_commands.py \
$(if $(KBUILD_EXTMOD),, vmlinux.a $(KBUILD_VMLINUX_LIBS)) \ $(if $(KBUILD_EXTMOD),, vmlinux.a $(KBUILD_VMLINUX_LIBS)) \
$(if $(CONFIG_MODULES), $(MODORDER)) FORCE $(if $(CONFIG_MODULES), $(MODORDER)) FORCE
$(call if_changed,gen_compile_commands) $(call if_changed,gen_compile_commands)

View File

@ -534,8 +534,10 @@ extern inline void writeq(u64 b, volatile void __iomem *addr)
#define ioread16be(p) swab16(ioread16(p)) #define ioread16be(p) swab16(ioread16(p))
#define ioread32be(p) swab32(ioread32(p)) #define ioread32be(p) swab32(ioread32(p))
#define ioread64be(p) swab64(ioread64(p))
#define iowrite16be(v,p) iowrite16(swab16(v), (p)) #define iowrite16be(v,p) iowrite16(swab16(v), (p))
#define iowrite32be(v,p) iowrite32(swab32(v), (p)) #define iowrite32be(v,p) iowrite32(swab32(v), (p))
#define iowrite64be(v,p) iowrite64(swab64(v), (p))
#define inb_p inb #define inb_p inb
#define inw_p inw #define inw_p inw
@ -634,8 +636,6 @@ extern void outsl (unsigned long port, const void *src, unsigned long count);
*/ */
#define ioread64 ioread64 #define ioread64 ioread64
#define iowrite64 iowrite64 #define iowrite64 iowrite64
#define ioread64be ioread64be
#define iowrite64be iowrite64be
#define ioread8_rep ioread8_rep #define ioread8_rep ioread8_rep
#define ioread16_rep ioread16_rep #define ioread16_rep ioread16_rep
#define ioread32_rep ioread32_rep #define ioread32_rep ioread32_rep

View File

@ -87,6 +87,7 @@ config ARM
select HAVE_ARCH_PFN_VALID select HAVE_ARCH_PFN_VALID
select HAVE_ARCH_SECCOMP select HAVE_ARCH_SECCOMP
select HAVE_ARCH_SECCOMP_FILTER if AEABI && !OABI_COMPAT select HAVE_ARCH_SECCOMP_FILTER if AEABI && !OABI_COMPAT
select HAVE_ARCH_STACKLEAK
select HAVE_ARCH_THREAD_STRUCT_WHITELIST select HAVE_ARCH_THREAD_STRUCT_WHITELIST
select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_TRACEHOOK
select HAVE_ARCH_TRANSPARENT_HUGEPAGE if ARM_LPAE select HAVE_ARCH_TRANSPARENT_HUGEPAGE if ARM_LPAE
@ -116,6 +117,7 @@ config ARM
select HAVE_KERNEL_XZ select HAVE_KERNEL_XZ
select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M
select HAVE_KRETPROBES if HAVE_KPROBES select HAVE_KRETPROBES if HAVE_KPROBES
select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if (LD_VERSION >= 23600 || LD_IS_LLD)
select HAVE_MOD_ARCH_SPECIFIC select HAVE_MOD_ARCH_SPECIFIC
select HAVE_NMI select HAVE_NMI
select HAVE_OPTPROBES if !THUMB2_KERNEL select HAVE_OPTPROBES if !THUMB2_KERNEL
@ -736,7 +738,7 @@ config ARM_ERRATA_764319
bool "ARM errata: Read to DBGPRSR and DBGOSLSR may generate Undefined instruction" bool "ARM errata: Read to DBGPRSR and DBGOSLSR may generate Undefined instruction"
depends on CPU_V7 depends on CPU_V7
help help
This option enables the workaround for the 764319 Cortex A-9 erratum. This option enables the workaround for the 764319 Cortex-A9 erratum.
CP14 read accesses to the DBGPRSR and DBGOSLSR registers generate an CP14 read accesses to the DBGPRSR and DBGOSLSR registers generate an
unexpected Undefined Instruction exception when the DBGSWENABLE unexpected Undefined Instruction exception when the DBGSWENABLE
external pin is set to 0, even when the CP14 accesses are performed external pin is set to 0, even when the CP14 accesses are performed

View File

@ -9,6 +9,7 @@ OBJS =
HEAD = head.o HEAD = head.o
OBJS += misc.o decompress.o OBJS += misc.o decompress.o
CFLAGS_decompress.o += $(DISABLE_STACKLEAK_PLUGIN)
ifeq ($(CONFIG_DEBUG_UNCOMPRESS),y) ifeq ($(CONFIG_DEBUG_UNCOMPRESS),y)
OBJS += debug.o OBJS += debug.o
AFLAGS_head.o += -DDEBUG AFLAGS_head.o += -DDEBUG

View File

@ -125,7 +125,7 @@ SECTIONS
. = BSS_START; . = BSS_START;
__bss_start = .; __bss_start = .;
.bss : { *(.bss) } .bss : { *(.bss .bss.*) }
_end = .; _end = .;
. = ALIGN(8); /* the stack must be 64-bit aligned */ . = ALIGN(8); /* the stack must be 64-bit aligned */

View File

@ -157,7 +157,7 @@ timclk: clock-1000000 {
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
pclk: clock-24000000 { pclk: clock-pclk {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "fixed-factor-clock"; compatible = "fixed-factor-clock";
clock-div = <1>; clock-div = <1>;

View File

@ -274,24 +274,24 @@ leds: led-controller@30 {
led@0 { led@0 {
chan-name = "R"; chan-name = "R";
led-cur = /bits/ 8 <0x20>; led-cur = /bits/ 8 <0x6e>;
max-cur = /bits/ 8 <0x60>; max-cur = /bits/ 8 <0xc8>;
reg = <0>; reg = <0>;
color = <LED_COLOR_ID_RED>; color = <LED_COLOR_ID_RED>;
}; };
led@1 { led@1 {
chan-name = "G"; chan-name = "G";
led-cur = /bits/ 8 <0x20>; led-cur = /bits/ 8 <0xbe>;
max-cur = /bits/ 8 <0x60>; max-cur = /bits/ 8 <0xc8>;
reg = <1>; reg = <1>;
color = <LED_COLOR_ID_GREEN>; color = <LED_COLOR_ID_GREEN>;
}; };
led@2 { led@2 {
chan-name = "B"; chan-name = "B";
led-cur = /bits/ 8 <0x20>; led-cur = /bits/ 8 <0xbe>;
max-cur = /bits/ 8 <0x60>; max-cur = /bits/ 8 <0xc8>;
reg = <2>; reg = <2>;
color = <LED_COLOR_ID_BLUE>; color = <LED_COLOR_ID_BLUE>;
}; };

View File

@ -781,7 +781,7 @@ accelerometer@1d {
mount-matrix = "-1", "0", "0", mount-matrix = "-1", "0", "0",
"0", "1", "0", "0", "1", "0",
"0", "0", "1"; "0", "0", "-1";
}; };
cam1: camera@3e { cam1: camera@3e {

View File

@ -26,6 +26,13 @@ struct stackframe {
#endif #endif
}; };
static inline bool on_thread_stack(void)
{
unsigned long delta = current_stack_pointer ^ (unsigned long)current->stack;
return delta < THREAD_SIZE;
}
static __always_inline static __always_inline
void arm_get_current_stackframe(struct pt_regs *regs, struct stackframe *frame) void arm_get_current_stackframe(struct pt_regs *regs, struct stackframe *frame)
{ {

View File

@ -42,7 +42,7 @@
#define PROC_INFO \ #define PROC_INFO \
. = ALIGN(4); \ . = ALIGN(4); \
__proc_info_begin = .; \ __proc_info_begin = .; \
*(.proc.info.init) \ KEEP(*(.proc.info.init)) \
__proc_info_end = .; __proc_info_end = .;
#define IDMAP_TEXT \ #define IDMAP_TEXT \

View File

@ -29,6 +29,12 @@
#include "entry-header.S" #include "entry-header.S"
#include <asm/probes.h> #include <asm/probes.h>
#ifdef CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION
#define RELOC_TEXT_NONE .reloc .text, R_ARM_NONE, .
#else
#define RELOC_TEXT_NONE
#endif
/* /*
* Interrupt handling. * Interrupt handling.
*/ */
@ -1065,6 +1071,7 @@ vector_addrexcptn:
.globl vector_fiq .globl vector_fiq
.section .vectors, "ax", %progbits .section .vectors, "ax", %progbits
RELOC_TEXT_NONE
W(b) vector_rst W(b) vector_rst
W(b) vector_und W(b) vector_und
ARM( .reloc ., R_ARM_LDR_PC_G0, .L__vector_swi ) ARM( .reloc ., R_ARM_LDR_PC_G0, .L__vector_swi )
@ -1078,6 +1085,7 @@ THUMB( .reloc ., R_ARM_THM_PC12, .L__vector_swi )
#ifdef CONFIG_HARDEN_BRANCH_HISTORY #ifdef CONFIG_HARDEN_BRANCH_HISTORY
.section .vectors.bhb.loop8, "ax", %progbits .section .vectors.bhb.loop8, "ax", %progbits
RELOC_TEXT_NONE
W(b) vector_rst W(b) vector_rst
W(b) vector_bhb_loop8_und W(b) vector_bhb_loop8_und
ARM( .reloc ., R_ARM_LDR_PC_G0, .L__vector_bhb_loop8_swi ) ARM( .reloc ., R_ARM_LDR_PC_G0, .L__vector_bhb_loop8_swi )
@ -1090,6 +1098,7 @@ THUMB( .reloc ., R_ARM_THM_PC12, .L__vector_bhb_loop8_swi )
W(b) vector_bhb_loop8_fiq W(b) vector_bhb_loop8_fiq
.section .vectors.bhb.bpiall, "ax", %progbits .section .vectors.bhb.bpiall, "ax", %progbits
RELOC_TEXT_NONE
W(b) vector_rst W(b) vector_rst
W(b) vector_bhb_bpiall_und W(b) vector_bhb_bpiall_und
ARM( .reloc ., R_ARM_LDR_PC_G0, .L__vector_bhb_bpiall_swi ) ARM( .reloc ., R_ARM_LDR_PC_G0, .L__vector_bhb_bpiall_swi )

View File

@ -119,6 +119,9 @@ no_work_pending:
ct_user_enter save = 0 ct_user_enter save = 0
#ifdef CONFIG_GCC_PLUGIN_STACKLEAK
bl stackleak_erase_on_task_stack
#endif
restore_user_regs fast = 0, offset = 0 restore_user_regs fast = 0, offset = 0
ENDPROC(ret_to_user_from_irq) ENDPROC(ret_to_user_from_irq)
ENDPROC(ret_to_user) ENDPROC(ret_to_user)

View File

@ -395,11 +395,6 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
return 0; return 0;
} }
struct mod_unwind_map {
const Elf_Shdr *unw_sec;
const Elf_Shdr *txt_sec;
};
static const Elf_Shdr *find_mod_section(const Elf32_Ehdr *hdr, static const Elf_Shdr *find_mod_section(const Elf32_Ehdr *hdr,
const Elf_Shdr *sechdrs, const char *name) const Elf_Shdr *sechdrs, const char *name)
{ {

View File

@ -85,8 +85,7 @@ static bool
callchain_trace(void *data, unsigned long pc) callchain_trace(void *data, unsigned long pc)
{ {
struct perf_callchain_entry_ctx *entry = data; struct perf_callchain_entry_ctx *entry = data;
perf_callchain_store(entry, pc); return perf_callchain_store(entry, pc) == 0;
return true;
} }
void void

View File

@ -63,7 +63,7 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
__start___ex_table = .; __start___ex_table = .;
ARM_MMU_KEEP(*(__ex_table)) ARM_MMU_KEEP(KEEP(*(__ex_table)))
__stop___ex_table = .; __stop___ex_table = .;
} }
@ -83,7 +83,7 @@ SECTIONS
} }
.init.arch.info : { .init.arch.info : {
__arch_info_begin = .; __arch_info_begin = .;
*(.arch.info.init) KEEP(*(.arch.info.init))
__arch_info_end = .; __arch_info_end = .;
} }
.init.tagtable : { .init.tagtable : {

View File

@ -74,7 +74,7 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
__start___ex_table = .; __start___ex_table = .;
ARM_MMU_KEEP(*(__ex_table)) ARM_MMU_KEEP(KEEP(*(__ex_table)))
__stop___ex_table = .; __stop___ex_table = .;
} }
@ -99,7 +99,7 @@ SECTIONS
} }
.init.arch.info : { .init.arch.info : {
__arch_info_begin = .; __arch_info_begin = .;
*(.arch.info.init) KEEP(*(.arch.info.init))
__arch_info_end = .; __arch_info_end = .;
} }
.init.tagtable : { .init.tagtable : {
@ -116,7 +116,7 @@ SECTIONS
#endif #endif
.init.pv_table : { .init.pv_table : {
__pv_table_begin = .; __pv_table_begin = .;
*(.pv_table) KEEP(*(.pv_table))
__pv_table_end = .; __pv_table_end = .;
} }

View File

@ -29,7 +29,7 @@ int alpine_cpu_wakeup(unsigned int phys_cpu, uint32_t phys_resume_addr)
/* /*
* Set CPU resume address - * Set CPU resume address -
* secure firmware running on boot will jump to this address * secure firmware running on boot will jump to this address
* after setting proper CPU mode, and initialiing e.g. secure * after setting proper CPU mode, and initializing e.g. secure
* regs (the same mode all CPUs are booted to - usually HYP) * regs (the same mode all CPUs are booted to - usually HYP)
*/ */
writel(phys_resume_addr, writel(phys_resume_addr,

View File

@ -21,6 +21,7 @@
#include <linux/mtd/mtd.h> #include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <linux/gpio/machine.h> #include <linux/gpio/machine.h>
#include <linux/gpio/property.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/clk.h> #include <linux/clk.h>
@ -40,6 +41,7 @@
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include "udc.h" #include "udc.h"
#include "gumstix.h" #include "gumstix.h"
#include "devices.h"
#include "generic.h" #include "generic.h"
@ -99,8 +101,8 @@ static void __init gumstix_mmc_init(void)
} }
#endif #endif
#ifdef CONFIG_USB_PXA25X #if IS_ENABLED(CONFIG_USB_PXA25X)
static const struct property_entry spitz_mci_props[] __initconst = { static const struct property_entry gumstix_vbus_props[] __initconst = {
PROPERTY_ENTRY_GPIO("vbus-gpios", &pxa2xx_gpiochip_node, PROPERTY_ENTRY_GPIO("vbus-gpios", &pxa2xx_gpiochip_node,
GPIO_GUMSTIX_USB_GPIOn, GPIO_ACTIVE_HIGH), GPIO_GUMSTIX_USB_GPIOn, GPIO_ACTIVE_HIGH),
PROPERTY_ENTRY_GPIO("pullup-gpios", &pxa2xx_gpiochip_node, PROPERTY_ENTRY_GPIO("pullup-gpios", &pxa2xx_gpiochip_node,
@ -109,8 +111,9 @@ static const struct property_entry spitz_mci_props[] __initconst = {
}; };
static const struct platform_device_info gumstix_gpio_vbus_info __initconst = { static const struct platform_device_info gumstix_gpio_vbus_info __initconst = {
.name = "gpio-vbus", .name = "gpio-vbus",
.id = PLATFORM_DEVID_NONE, .id = PLATFORM_DEVID_NONE,
.properties = gumstix_vbus_props,
}; };
static void __init gumstix_udc_init(void) static void __init gumstix_udc_init(void)

View File

@ -1109,7 +1109,7 @@ void ecard_remove_driver(struct ecard_driver *drv)
driver_unregister(&drv->drv); driver_unregister(&drv->drv);
} }
static int ecard_match(struct device *_dev, struct device_driver *_drv) static int ecard_match(struct device *_dev, const struct device_driver *_drv)
{ {
struct expansion_card *ec = ECARD_DEV(_dev); struct expansion_card *ec = ECARD_DEV(_dev);
struct ecard_driver *drv = ECARD_DRV(_drv); struct ecard_driver *drv = ECARD_DRV(_drv);

View File

@ -17,7 +17,7 @@ void cpu_arm7tdmi_proc_init(void);
__ADDRESSABLE(cpu_arm7tdmi_proc_init); __ADDRESSABLE(cpu_arm7tdmi_proc_init);
void cpu_arm7tdmi_proc_fin(void); void cpu_arm7tdmi_proc_fin(void);
__ADDRESSABLE(cpu_arm7tdmi_proc_fin); __ADDRESSABLE(cpu_arm7tdmi_proc_fin);
void cpu_arm7tdmi_reset(void); void cpu_arm7tdmi_reset(unsigned long addr, bool hvc);
__ADDRESSABLE(cpu_arm7tdmi_reset); __ADDRESSABLE(cpu_arm7tdmi_reset);
int cpu_arm7tdmi_do_idle(void); int cpu_arm7tdmi_do_idle(void);
__ADDRESSABLE(cpu_arm7tdmi_do_idle); __ADDRESSABLE(cpu_arm7tdmi_do_idle);
@ -32,7 +32,7 @@ void cpu_arm720_proc_init(void);
__ADDRESSABLE(cpu_arm720_proc_init); __ADDRESSABLE(cpu_arm720_proc_init);
void cpu_arm720_proc_fin(void); void cpu_arm720_proc_fin(void);
__ADDRESSABLE(cpu_arm720_proc_fin); __ADDRESSABLE(cpu_arm720_proc_fin);
void cpu_arm720_reset(void); void cpu_arm720_reset(unsigned long addr, bool hvc);
__ADDRESSABLE(cpu_arm720_reset); __ADDRESSABLE(cpu_arm720_reset);
int cpu_arm720_do_idle(void); int cpu_arm720_do_idle(void);
__ADDRESSABLE(cpu_arm720_do_idle); __ADDRESSABLE(cpu_arm720_do_idle);
@ -49,7 +49,7 @@ void cpu_arm740_proc_init(void);
__ADDRESSABLE(cpu_arm740_proc_init); __ADDRESSABLE(cpu_arm740_proc_init);
void cpu_arm740_proc_fin(void); void cpu_arm740_proc_fin(void);
__ADDRESSABLE(cpu_arm740_proc_fin); __ADDRESSABLE(cpu_arm740_proc_fin);
void cpu_arm740_reset(void); void cpu_arm740_reset(unsigned long addr, bool hvc);
__ADDRESSABLE(cpu_arm740_reset); __ADDRESSABLE(cpu_arm740_reset);
int cpu_arm740_do_idle(void); int cpu_arm740_do_idle(void);
__ADDRESSABLE(cpu_arm740_do_idle); __ADDRESSABLE(cpu_arm740_do_idle);
@ -64,7 +64,7 @@ void cpu_arm9tdmi_proc_init(void);
__ADDRESSABLE(cpu_arm9tdmi_proc_init); __ADDRESSABLE(cpu_arm9tdmi_proc_init);
void cpu_arm9tdmi_proc_fin(void); void cpu_arm9tdmi_proc_fin(void);
__ADDRESSABLE(cpu_arm9tdmi_proc_fin); __ADDRESSABLE(cpu_arm9tdmi_proc_fin);
void cpu_arm9tdmi_reset(void); void cpu_arm9tdmi_reset(unsigned long addr, bool hvc);
__ADDRESSABLE(cpu_arm9tdmi_reset); __ADDRESSABLE(cpu_arm9tdmi_reset);
int cpu_arm9tdmi_do_idle(void); int cpu_arm9tdmi_do_idle(void);
__ADDRESSABLE(cpu_arm9tdmi_do_idle); __ADDRESSABLE(cpu_arm9tdmi_do_idle);
@ -79,7 +79,7 @@ void cpu_arm920_proc_init(void);
__ADDRESSABLE(cpu_arm920_proc_init); __ADDRESSABLE(cpu_arm920_proc_init);
void cpu_arm920_proc_fin(void); void cpu_arm920_proc_fin(void);
__ADDRESSABLE(cpu_arm920_proc_fin); __ADDRESSABLE(cpu_arm920_proc_fin);
void cpu_arm920_reset(void); void cpu_arm920_reset(unsigned long addr, bool hvc);
__ADDRESSABLE(cpu_arm920_reset); __ADDRESSABLE(cpu_arm920_reset);
int cpu_arm920_do_idle(void); int cpu_arm920_do_idle(void);
__ADDRESSABLE(cpu_arm920_do_idle); __ADDRESSABLE(cpu_arm920_do_idle);
@ -102,7 +102,7 @@ void cpu_arm922_proc_init(void);
__ADDRESSABLE(cpu_arm922_proc_init); __ADDRESSABLE(cpu_arm922_proc_init);
void cpu_arm922_proc_fin(void); void cpu_arm922_proc_fin(void);
__ADDRESSABLE(cpu_arm922_proc_fin); __ADDRESSABLE(cpu_arm922_proc_fin);
void cpu_arm922_reset(void); void cpu_arm922_reset(unsigned long addr, bool hvc);
__ADDRESSABLE(cpu_arm922_reset); __ADDRESSABLE(cpu_arm922_reset);
int cpu_arm922_do_idle(void); int cpu_arm922_do_idle(void);
__ADDRESSABLE(cpu_arm922_do_idle); __ADDRESSABLE(cpu_arm922_do_idle);
@ -119,7 +119,7 @@ void cpu_arm925_proc_init(void);
__ADDRESSABLE(cpu_arm925_proc_init); __ADDRESSABLE(cpu_arm925_proc_init);
void cpu_arm925_proc_fin(void); void cpu_arm925_proc_fin(void);
__ADDRESSABLE(cpu_arm925_proc_fin); __ADDRESSABLE(cpu_arm925_proc_fin);
void cpu_arm925_reset(void); void cpu_arm925_reset(unsigned long addr, bool hvc);
__ADDRESSABLE(cpu_arm925_reset); __ADDRESSABLE(cpu_arm925_reset);
int cpu_arm925_do_idle(void); int cpu_arm925_do_idle(void);
__ADDRESSABLE(cpu_arm925_do_idle); __ADDRESSABLE(cpu_arm925_do_idle);
@ -159,7 +159,7 @@ void cpu_arm940_proc_init(void);
__ADDRESSABLE(cpu_arm940_proc_init); __ADDRESSABLE(cpu_arm940_proc_init);
void cpu_arm940_proc_fin(void); void cpu_arm940_proc_fin(void);
__ADDRESSABLE(cpu_arm940_proc_fin); __ADDRESSABLE(cpu_arm940_proc_fin);
void cpu_arm940_reset(void); void cpu_arm940_reset(unsigned long addr, bool hvc);
__ADDRESSABLE(cpu_arm940_reset); __ADDRESSABLE(cpu_arm940_reset);
int cpu_arm940_do_idle(void); int cpu_arm940_do_idle(void);
__ADDRESSABLE(cpu_arm940_do_idle); __ADDRESSABLE(cpu_arm940_do_idle);
@ -174,7 +174,7 @@ void cpu_arm946_proc_init(void);
__ADDRESSABLE(cpu_arm946_proc_init); __ADDRESSABLE(cpu_arm946_proc_init);
void cpu_arm946_proc_fin(void); void cpu_arm946_proc_fin(void);
__ADDRESSABLE(cpu_arm946_proc_fin); __ADDRESSABLE(cpu_arm946_proc_fin);
void cpu_arm946_reset(void); void cpu_arm946_reset(unsigned long addr, bool hvc);
__ADDRESSABLE(cpu_arm946_reset); __ADDRESSABLE(cpu_arm946_reset);
int cpu_arm946_do_idle(void); int cpu_arm946_do_idle(void);
__ADDRESSABLE(cpu_arm946_do_idle); __ADDRESSABLE(cpu_arm946_do_idle);
@ -429,7 +429,7 @@ void cpu_v7_proc_init(void);
__ADDRESSABLE(cpu_v7_proc_init); __ADDRESSABLE(cpu_v7_proc_init);
void cpu_v7_proc_fin(void); void cpu_v7_proc_fin(void);
__ADDRESSABLE(cpu_v7_proc_fin); __ADDRESSABLE(cpu_v7_proc_fin);
void cpu_v7_reset(void); void cpu_v7_reset(unsigned long addr, bool hvc);
__ADDRESSABLE(cpu_v7_reset); __ADDRESSABLE(cpu_v7_reset);
int cpu_v7_do_idle(void); int cpu_v7_do_idle(void);
__ADDRESSABLE(cpu_v7_do_idle); __ADDRESSABLE(cpu_v7_do_idle);

View File

@ -1069,18 +1069,28 @@ config ARM64_ERRATUM_3117295
If unsure, say Y. If unsure, say Y.
config ARM64_ERRATUM_3194386 config ARM64_ERRATUM_3194386
bool "Cortex-{A720,X4,X925}/Neoverse-V3: workaround for MSR SSBS not self-synchronizing" bool "Cortex-*/Neoverse-*: workaround for MSR SSBS not self-synchronizing"
default y default y
help help
This option adds the workaround for the following errata: This option adds the workaround for the following errata:
* ARM Cortex-A76 erratum 3324349
* ARM Cortex-A77 erratum 3324348
* ARM Cortex-A78 erratum 3324344
* ARM Cortex-A78C erratum 3324346
* ARM Cortex-A78C erratum 3324347
* ARM Cortex-A710 erratam 3324338 * ARM Cortex-A710 erratam 3324338
* ARM Cortex-A720 erratum 3456091 * ARM Cortex-A720 erratum 3456091
* ARM Cortex-A725 erratum 3456106
* ARM Cortex-X1 erratum 3324344
* ARM Cortex-X1C erratum 3324346
* ARM Cortex-X2 erratum 3324338 * ARM Cortex-X2 erratum 3324338
* ARM Cortex-X3 erratum 3324335 * ARM Cortex-X3 erratum 3324335
* ARM Cortex-X4 erratum 3194386 * ARM Cortex-X4 erratum 3194386
* ARM Cortex-X925 erratum 3324334 * ARM Cortex-X925 erratum 3324334
* ARM Neoverse-N1 erratum 3324349
* ARM Neoverse N2 erratum 3324339 * ARM Neoverse N2 erratum 3324339
* 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
@ -1088,11 +1098,11 @@ config ARM64_ERRATUM_3194386
subsequent speculative instructions, which may permit unexepected subsequent speculative instructions, which may permit unexepected
speculative store bypassing. speculative store bypassing.
Work around this problem by placing a speculation barrier after Work around this problem by placing a Speculation Barrier (SB) or
kernel changes to SSBS. The presence of the SSBS special-purpose Instruction Synchronization Barrier (ISB) after kernel changes to
register is hidden from hwcaps and EL0 reads of ID_AA64PFR1_EL1, such SSBS. The presence of the SSBS special-purpose register is hidden
that userspace will use the PR_SPEC_STORE_BYPASS prctl to change from hwcaps and EL0 reads of ID_AA64PFR1_EL1, such that userspace
SSBS. will use the PR_SPEC_STORE_BYPASS prctl to change SSBS.
If unsure, say Y. If unsure, say Y.

View File

@ -175,7 +175,7 @@ ddr-ctrler-crit {
}; };
}; };
core-cluster-thermal { cluster-thermal {
polling-delay-passive = <1000>; polling-delay-passive = <1000>;
polling-delay = <5000>; polling-delay = <5000>;
thermal-sensors = <&tmu 1>; thermal-sensors = <&tmu 1>;

View File

@ -214,7 +214,7 @@ fman-crit {
}; };
}; };
core-cluster-thermal { cluster-thermal {
polling-delay-passive = <1000>; polling-delay-passive = <1000>;
polling-delay = <5000>; polling-delay = <5000>;
thermal-sensors = <&tmu 3>; thermal-sensors = <&tmu 3>;

View File

@ -182,7 +182,7 @@ fman-crit {
}; };
}; };
core-cluster-thermal { cluster-thermal {
polling-delay-passive = <1000>; polling-delay-passive = <1000>;
polling-delay = <5000>; polling-delay = <5000>;
thermal-sensors = <&tmu 3>; thermal-sensors = <&tmu 3>;

View File

@ -131,7 +131,7 @@ its: msi-controller@6020000 {
}; };
thermal-zones { thermal-zones {
core-cluster-thermal { cluster-thermal {
polling-delay-passive = <1000>; polling-delay-passive = <1000>;
polling-delay = <5000>; polling-delay = <5000>;
thermal-sensors = <&tmu 0>; thermal-sensors = <&tmu 0>;

View File

@ -122,7 +122,7 @@ ddr-ctrler3-crit {
}; };
}; };
core-cluster1-thermal { cluster1-thermal {
polling-delay-passive = <1000>; polling-delay-passive = <1000>;
polling-delay = <5000>; polling-delay = <5000>;
thermal-sensors = <&tmu 4>; thermal-sensors = <&tmu 4>;
@ -151,7 +151,7 @@ map0 {
}; };
}; };
core-cluster2-thermal { cluster2-thermal {
polling-delay-passive = <1000>; polling-delay-passive = <1000>;
polling-delay = <5000>; polling-delay = <5000>;
thermal-sensors = <&tmu 5>; thermal-sensors = <&tmu 5>;
@ -180,7 +180,7 @@ map0 {
}; };
}; };
core-cluster3-thermal { cluster3-thermal {
polling-delay-passive = <1000>; polling-delay-passive = <1000>;
polling-delay = <5000>; polling-delay = <5000>;
thermal-sensors = <&tmu 6>; thermal-sensors = <&tmu 6>;
@ -209,7 +209,7 @@ map0 {
}; };
}; };
core-cluster4-thermal { cluster4-thermal {
polling-delay-passive = <1000>; polling-delay-passive = <1000>;
polling-delay = <5000>; polling-delay = <5000>;
thermal-sensors = <&tmu 7>; thermal-sensors = <&tmu 7>;

View File

@ -492,7 +492,7 @@ map0 {
}; };
}; };
ddr-cluster5-thermal { ddr-ctrl5-thermal {
polling-delay-passive = <1000>; polling-delay-passive = <1000>;
polling-delay = <5000>; polling-delay = <5000>;
thermal-sensors = <&tmu 1>; thermal-sensors = <&tmu 1>;

View File

@ -21,7 +21,7 @@
&gpio3 { &gpio3 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrcl-0 = <&pinctrl_gpio3_hog>; pinctrl-0 = <&pinctrl_gpio3_hog>;
uart4_rs485_en { uart4_rs485_en {
gpio-hog; gpio-hog;

View File

@ -22,7 +22,7 @@
&gpio3 { &gpio3 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrcl-0 = <&pinctrl_gpio3_hog>; pinctrl-0 = <&pinctrl_gpio3_hog>;
uart4_rs485_en { uart4_rs485_en {
gpio-hog; gpio-hog;

View File

@ -211,13 +211,12 @@ sound-wm8962 {
simple-audio-card,cpu { simple-audio-card,cpu {
sound-dai = <&sai3>; sound-dai = <&sai3>;
frame-master;
bitclock-master;
}; };
simple-audio-card,codec { simple-audio-card,codec {
sound-dai = <&wm8962>; sound-dai = <&wm8962>;
clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO1>;
frame-master;
bitclock-master;
}; };
}; };
}; };
@ -507,10 +506,9 @@ &pcie_phy {
&sai3 { &sai3 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>; pinctrl-0 = <&pinctrl_sai3>;
assigned-clocks = <&clk IMX8MP_CLK_SAI3>, assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
<&clk IMX8MP_AUDIO_PLL2> ; assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>; assigned-clock-rates = <12288000>;
assigned-clock-rates = <12288000>, <361267200>;
fsl,sai-mclk-direction-output; fsl,sai-mclk-direction-output;
status = "okay"; status = "okay";
}; };

View File

@ -499,7 +499,7 @@ &usdhc2 {
pinctrl-0 = <&pinctrl_usdhc2_hs>, <&pinctrl_usdhc2_gpio>; pinctrl-0 = <&pinctrl_usdhc2_hs>, <&pinctrl_usdhc2_gpio>;
pinctrl-1 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>; pinctrl-1 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>;
pinctrl-2 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>; pinctrl-2 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>;
cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>; cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
vmmc-supply = <&reg_usdhc2_vmmc>; vmmc-supply = <&reg_usdhc2_vmmc>;
bus-width = <4>; bus-width = <4>;
no-sdio; no-sdio;

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