mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-04 04:02:26 +00:00
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:
commit
42b16d3ac3
7
.mailmap
7
.mailmap
@ -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>
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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.
|
||||||
|
@ -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 |
|
||||||
|
@ -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.
|
||||||
|
@ -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`.
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -38,6 +38,10 @@ properties:
|
|||||||
|
|
||||||
managed: true
|
managed: true
|
||||||
|
|
||||||
|
phys:
|
||||||
|
description: A reference to the SerDes lane(s)
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- reg
|
- reg
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
@ -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";
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
||||||
|
@ -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: |
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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>;
|
||||||
|
@ -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>;
|
||||||
|
@ -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>;
|
||||||
|
@ -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>;
|
||||||
|
@ -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:
|
||||||
|
@ -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).
|
||||||
|
@ -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.
|
||||||
|
@ -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;
|
||||||
|
@ -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.
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
vendor’s 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 vendor’s response team can distribute these patches to
|
||||||
|
their industry partners and to their internal teams under the
|
||||||
|
silicon vendor’s 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 vendor’s response team removes any
|
||||||
|
responsibility or liability from the kernel response team regarding
|
||||||
|
premature disclosure, which happens due to the involvement of the
|
||||||
|
silicon vendor’s 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
|
||||||
|
@ -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
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
@ -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``).
|
||||||
|
@ -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
|
||||||
|
260
Documentation/virt/hyperv/coco.rst
Normal file
260
Documentation/virt/hyperv/coco.rst
Normal 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().
|
@ -11,3 +11,4 @@ Hyper-V Enlightenments
|
|||||||
vmbus
|
vmbus
|
||||||
clocks
|
clocks
|
||||||
vpci
|
vpci
|
||||||
|
coco
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
100
MAINTAINERS
100
MAINTAINERS
@ -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
|
||||||
|
7
Makefile
7
Makefile
@ -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)
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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 */
|
||||||
|
@ -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>;
|
||||||
|
@ -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>;
|
||||||
};
|
};
|
||||||
|
@ -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 {
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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 \
|
||||||
|
@ -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 )
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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
|
||||||
|
@ -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 : {
|
||||||
|
@ -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 = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
@ -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)
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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>;
|
||||||
|
@ -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>;
|
||||||
|
@ -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>;
|
||||||
|
@ -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>;
|
||||||
|
@ -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>;
|
||||||
|
@ -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>;
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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";
|
||||||
};
|
};
|
||||||
|
@ -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 = <®_usdhc2_vmmc>;
|
vmmc-supply = <®_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
Loading…
Reference in New Issue
Block a user