mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
Linux 6.12-rc2
-----BEGIN PGP SIGNATURE----- iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAmcDD/seHHRvcnZhbGRz QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGNpoH/3oEXaHBl5wrRJKP GpzfT35Do052IZnRl0dmanr92opV5O7R4esVyHIS4IOKkt7C2aEEoVrMKAqW/VH9 EkcLPJwOuJ1xyqnLWycQUEN/JK9hxM9DlAVUVg9JdbDE4b91ebwTivwJMTJ7tQwm +P/ifzV1r4fsYgpasqwVQMwLWuZ8O6OCGXE4KlgwiaS5zLdiVG+zkvvli/x/YHQ9 dPgQ+OXyoQz57Iwj02ZHBkdqJxa9vPVPASjtzuRp0v7VGaMq8gvVH8pA4B7cGjfV xWvT+sjYjXVltYfmUHgUDNNTfeJArxH+BqpJ+lShcYwjxomYFfJWT0KZOPQwg/3z zfAZtk4= =RHAh -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQFHBAABCgAxFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmcD6AETHGJyb29uaWVA a2VybmVsLm9yZwAKCRAk1otyXVSH0C3qB/0TOmbLLjsqsxXlihSW6g4YemZgCN53 ht+atXi5e3Vh+w/yDIG9kP95JT+UsYQmXx6EDdOk0cNEf2m/V1HWZwlnBfw3s4IB 0Kxy/53Hjk+Q6+08eOsx7RzsRBVqCKBRciC9wsorOZDKM8FON4tVGSNZjEBvQbJs c7542C1x4udWxo67kTvvii/zpVLqO3jLc87c1nQ2kvm7th+Eu8QK0g9F63c6vrAn 3D/NYPem9Bfq46drq11RS6w/tdBz/mIO3kIUixohIAD6SlmG1WdH7UsVS6TIoWVa ByueTfbRxKHCtJorC9MJN36LFXeH/4OV+CaLhO6PriV6KNP7fSBGxB5D =QTdE -----END PGP SIGNATURE----- spi: Merge up v6.12 Fixes build issues with the KVM selftests.
This commit is contained in:
commit
c2a59c892f
@ -12,7 +12,7 @@ ones.
|
|||||||
|
|
||||||
Of course this is a bad idea to rely on the alignment trap to perform
|
Of course this is a bad idea to rely on the alignment trap to perform
|
||||||
unaligned memory access in general. If those access are predictable, you
|
unaligned memory access in general. If those access are predictable, you
|
||||||
are better to use the macros provided by include/asm/unaligned.h. The
|
are better to use the macros provided by include/linux/unaligned.h. The
|
||||||
alignment trap can fixup misaligned access for the exception cases, but at
|
alignment trap can fixup misaligned access for the exception cases, but at
|
||||||
a high performance cost. It better be rare.
|
a high performance cost. It better be rare.
|
||||||
|
|
||||||
|
@ -146,6 +146,8 @@ stable kernels.
|
|||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Cortex-A715 | #2645198 | ARM64_ERRATUM_2645198 |
|
| ARM | Cortex-A715 | #2645198 | ARM64_ERRATUM_2645198 |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
|
| ARM | Cortex-A715 | #3456084 | ARM64_ERRATUM_3194386 |
|
||||||
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Cortex-A720 | #3456091 | ARM64_ERRATUM_3194386 |
|
| ARM | Cortex-A720 | #3456091 | ARM64_ERRATUM_3194386 |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Cortex-A725 | #3456106 | ARM64_ERRATUM_3194386 |
|
| ARM | Cortex-A725 | #3456106 | ARM64_ERRATUM_3194386 |
|
||||||
@ -186,6 +188,8 @@ stable kernels.
|
|||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Neoverse-N2 | #3324339 | ARM64_ERRATUM_3194386 |
|
| ARM | Neoverse-N2 | #3324339 | ARM64_ERRATUM_3194386 |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
|
| ARM | Neoverse-N3 | #3456111 | ARM64_ERRATUM_3194386 |
|
||||||
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Neoverse-V1 | #1619801 | N/A |
|
| ARM | Neoverse-V1 | #1619801 | N/A |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Neoverse-V1 | #3324341 | ARM64_ERRATUM_3194386 |
|
| ARM | Neoverse-V1 | #3324341 | ARM64_ERRATUM_3194386 |
|
||||||
@ -289,3 +293,5 @@ stable kernels.
|
|||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 |
|
| Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
|
| Microsoft | Azure Cobalt 100| #3324339 | ARM64_ERRATUM_3194386 |
|
||||||
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
|
212
Documentation/core-api/folio_queue.rst
Normal file
212
Documentation/core-api/folio_queue.rst
Normal file
@ -0,0 +1,212 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
===========
|
||||||
|
Folio Queue
|
||||||
|
===========
|
||||||
|
|
||||||
|
:Author: David Howells <dhowells@redhat.com>
|
||||||
|
|
||||||
|
.. Contents:
|
||||||
|
|
||||||
|
* Overview
|
||||||
|
* Initialisation
|
||||||
|
* Adding and removing folios
|
||||||
|
* Querying information about a folio
|
||||||
|
* Querying information about a folio_queue
|
||||||
|
* Folio queue iteration
|
||||||
|
* Folio marks
|
||||||
|
* Lockless simultaneous production/consumption issues
|
||||||
|
|
||||||
|
|
||||||
|
Overview
|
||||||
|
========
|
||||||
|
|
||||||
|
The folio_queue struct forms a single segment in a segmented list of folios
|
||||||
|
that can be used to form an I/O buffer. As such, the list can be iterated over
|
||||||
|
using the ITER_FOLIOQ iov_iter type.
|
||||||
|
|
||||||
|
The publicly accessible members of the structure are::
|
||||||
|
|
||||||
|
struct folio_queue {
|
||||||
|
struct folio_queue *next;
|
||||||
|
struct folio_queue *prev;
|
||||||
|
...
|
||||||
|
};
|
||||||
|
|
||||||
|
A pair of pointers are provided, ``next`` and ``prev``, that point to the
|
||||||
|
segments on either side of the segment being accessed. Whilst this is a
|
||||||
|
doubly-linked list, it is intentionally not a circular list; the outward
|
||||||
|
sibling pointers in terminal segments should be NULL.
|
||||||
|
|
||||||
|
Each segment in the list also stores:
|
||||||
|
|
||||||
|
* an ordered sequence of folio pointers,
|
||||||
|
* the size of each folio and
|
||||||
|
* three 1-bit marks per folio,
|
||||||
|
|
||||||
|
but hese should not be accessed directly as the underlying data structure may
|
||||||
|
change, but rather the access functions outlined below should be used.
|
||||||
|
|
||||||
|
The facility can be made accessible by::
|
||||||
|
|
||||||
|
#include <linux/folio_queue.h>
|
||||||
|
|
||||||
|
and to use the iterator::
|
||||||
|
|
||||||
|
#include <linux/uio.h>
|
||||||
|
|
||||||
|
|
||||||
|
Initialisation
|
||||||
|
==============
|
||||||
|
|
||||||
|
A segment should be initialised by calling::
|
||||||
|
|
||||||
|
void folioq_init(struct folio_queue *folioq);
|
||||||
|
|
||||||
|
with a pointer to the segment to be initialised. Note that this will not
|
||||||
|
necessarily initialise all the folio pointers, so care must be taken to check
|
||||||
|
the number of folios added.
|
||||||
|
|
||||||
|
|
||||||
|
Adding and removing folios
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Folios can be set in the next unused slot in a segment struct by calling one
|
||||||
|
of::
|
||||||
|
|
||||||
|
unsigned int folioq_append(struct folio_queue *folioq,
|
||||||
|
struct folio *folio);
|
||||||
|
|
||||||
|
unsigned int folioq_append_mark(struct folio_queue *folioq,
|
||||||
|
struct folio *folio);
|
||||||
|
|
||||||
|
Both functions update the stored folio count, store the folio and note its
|
||||||
|
size. The second function also sets the first mark for the folio added. Both
|
||||||
|
functions return the number of the slot used. [!] Note that no attempt is made
|
||||||
|
to check that the capacity wasn't overrun and the list will not be extended
|
||||||
|
automatically.
|
||||||
|
|
||||||
|
A folio can be excised by calling::
|
||||||
|
|
||||||
|
void folioq_clear(struct folio_queue *folioq, unsigned int slot);
|
||||||
|
|
||||||
|
This clears the slot in the array and also clears all the marks for that folio,
|
||||||
|
but doesn't change the folio count - so future accesses of that slot must check
|
||||||
|
if the slot is occupied.
|
||||||
|
|
||||||
|
|
||||||
|
Querying information about a folio
|
||||||
|
==================================
|
||||||
|
|
||||||
|
Information about the folio in a particular slot may be queried by the
|
||||||
|
following function::
|
||||||
|
|
||||||
|
struct folio *folioq_folio(const struct folio_queue *folioq,
|
||||||
|
unsigned int slot);
|
||||||
|
|
||||||
|
If a folio has not yet been set in that slot, this may yield an undefined
|
||||||
|
pointer. The size of the folio in a slot may be queried with either of::
|
||||||
|
|
||||||
|
unsigned int folioq_folio_order(const struct folio_queue *folioq,
|
||||||
|
unsigned int slot);
|
||||||
|
|
||||||
|
size_t folioq_folio_size(const struct folio_queue *folioq,
|
||||||
|
unsigned int slot);
|
||||||
|
|
||||||
|
The first function returns the size as an order and the second as a number of
|
||||||
|
bytes.
|
||||||
|
|
||||||
|
|
||||||
|
Querying information about a folio_queue
|
||||||
|
========================================
|
||||||
|
|
||||||
|
Information may be retrieved about a particular segment with the following
|
||||||
|
functions::
|
||||||
|
|
||||||
|
unsigned int folioq_nr_slots(const struct folio_queue *folioq);
|
||||||
|
|
||||||
|
unsigned int folioq_count(struct folio_queue *folioq);
|
||||||
|
|
||||||
|
bool folioq_full(struct folio_queue *folioq);
|
||||||
|
|
||||||
|
The first function returns the maximum capacity of a segment. It must not be
|
||||||
|
assumed that this won't vary between segments. The second returns the number
|
||||||
|
of folios added to a segments and the third is a shorthand to indicate if the
|
||||||
|
segment has been filled to capacity.
|
||||||
|
|
||||||
|
Not that the count and fullness are not affected by clearing folios from the
|
||||||
|
segment. These are more about indicating how many slots in the array have been
|
||||||
|
initialised, and it assumed that slots won't get reused, but rather the segment
|
||||||
|
will get discarded as the queue is consumed.
|
||||||
|
|
||||||
|
|
||||||
|
Folio marks
|
||||||
|
===========
|
||||||
|
|
||||||
|
Folios within a queue can also have marks assigned to them. These marks can be
|
||||||
|
used to note information such as if a folio needs folio_put() calling upon it.
|
||||||
|
There are three marks available to be set for each folio.
|
||||||
|
|
||||||
|
The marks can be set by::
|
||||||
|
|
||||||
|
void folioq_mark(struct folio_queue *folioq, unsigned int slot);
|
||||||
|
void folioq_mark2(struct folio_queue *folioq, unsigned int slot);
|
||||||
|
void folioq_mark3(struct folio_queue *folioq, unsigned int slot);
|
||||||
|
|
||||||
|
Cleared by::
|
||||||
|
|
||||||
|
void folioq_unmark(struct folio_queue *folioq, unsigned int slot);
|
||||||
|
void folioq_unmark2(struct folio_queue *folioq, unsigned int slot);
|
||||||
|
void folioq_unmark3(struct folio_queue *folioq, unsigned int slot);
|
||||||
|
|
||||||
|
And the marks can be queried by::
|
||||||
|
|
||||||
|
bool folioq_is_marked(const struct folio_queue *folioq, unsigned int slot);
|
||||||
|
bool folioq_is_marked2(const struct folio_queue *folioq, unsigned int slot);
|
||||||
|
bool folioq_is_marked3(const struct folio_queue *folioq, unsigned int slot);
|
||||||
|
|
||||||
|
The marks can be used for any purpose and are not interpreted by this API.
|
||||||
|
|
||||||
|
|
||||||
|
Folio queue iteration
|
||||||
|
=====================
|
||||||
|
|
||||||
|
A list of segments may be iterated over using the I/O iterator facility using
|
||||||
|
an ``iov_iter`` iterator of ``ITER_FOLIOQ`` type. The iterator may be
|
||||||
|
initialised with::
|
||||||
|
|
||||||
|
void iov_iter_folio_queue(struct iov_iter *i, unsigned int direction,
|
||||||
|
const struct folio_queue *folioq,
|
||||||
|
unsigned int first_slot, unsigned int offset,
|
||||||
|
size_t count);
|
||||||
|
|
||||||
|
This may be told to start at a particular segment, slot and offset within a
|
||||||
|
queue. The iov iterator functions will follow the next pointers when advancing
|
||||||
|
and prev pointers when reverting when needed.
|
||||||
|
|
||||||
|
|
||||||
|
Lockless simultaneous production/consumption issues
|
||||||
|
===================================================
|
||||||
|
|
||||||
|
If properly managed, the list can be extended by the producer at the head end
|
||||||
|
and shortened by the consumer at the tail end simultaneously without the need
|
||||||
|
to take locks. The ITER_FOLIOQ iterator inserts appropriate barriers to aid
|
||||||
|
with this.
|
||||||
|
|
||||||
|
Care must be taken when simultaneously producing and consuming a list. If the
|
||||||
|
last segment is reached and the folios it refers to are entirely consumed by
|
||||||
|
the IOV iterators, an iov_iter struct will be left pointing to the last segment
|
||||||
|
with a slot number equal to the capacity of that segment. The iterator will
|
||||||
|
try to continue on from this if there's another segment available when it is
|
||||||
|
used again, but care must be taken lest the segment got removed and freed by
|
||||||
|
the consumer before the iterator was advanced.
|
||||||
|
|
||||||
|
It is recommended that the queue always contain at least one segment, even if
|
||||||
|
that segment has never been filled or is entirely spent. This prevents the
|
||||||
|
head and tail pointers from collapsing.
|
||||||
|
|
||||||
|
|
||||||
|
API Function Reference
|
||||||
|
======================
|
||||||
|
|
||||||
|
.. kernel-doc:: include/linux/folio_queue.h
|
@ -37,6 +37,7 @@ Library functionality that is used throughout the kernel.
|
|||||||
kref
|
kref
|
||||||
cleanup
|
cleanup
|
||||||
assoc_array
|
assoc_array
|
||||||
|
folio_queue
|
||||||
xarray
|
xarray
|
||||||
maple_tree
|
maple_tree
|
||||||
idr
|
idr
|
||||||
|
@ -203,7 +203,7 @@ Avoiding unaligned accesses
|
|||||||
===========================
|
===========================
|
||||||
|
|
||||||
The easiest way to avoid unaligned access is to use the get_unaligned() and
|
The easiest way to avoid unaligned access is to use the get_unaligned() and
|
||||||
put_unaligned() macros provided by the <asm/unaligned.h> header file.
|
put_unaligned() macros provided by the <linux/unaligned.h> header file.
|
||||||
|
|
||||||
Going back to an earlier example of code that potentially causes unaligned
|
Going back to an earlier example of code that potentially causes unaligned
|
||||||
access::
|
access::
|
||||||
|
@ -34,6 +34,7 @@ properties:
|
|||||||
and length of the AXI DMA controller IO space, unless
|
and length of the AXI DMA controller IO space, unless
|
||||||
axistream-connected is specified, in which case the reg
|
axistream-connected is specified, in which case the reg
|
||||||
attribute of the node referenced by it is used.
|
attribute of the node referenced by it is used.
|
||||||
|
minItems: 1
|
||||||
maxItems: 2
|
maxItems: 2
|
||||||
|
|
||||||
interrupts:
|
interrupts:
|
||||||
@ -181,7 +182,7 @@ examples:
|
|||||||
clock-names = "s_axi_lite_clk", "axis_clk", "ref_clk", "mgt_clk";
|
clock-names = "s_axi_lite_clk", "axis_clk", "ref_clk", "mgt_clk";
|
||||||
clocks = <&axi_clk>, <&axi_clk>, <&pl_enet_ref_clk>, <&mgt_clk>;
|
clocks = <&axi_clk>, <&axi_clk>, <&pl_enet_ref_clk>, <&mgt_clk>;
|
||||||
phy-mode = "mii";
|
phy-mode = "mii";
|
||||||
reg = <0x00 0x40000000 0x00 0x40000>;
|
reg = <0x40000000 0x40000>;
|
||||||
xlnx,rxcsum = <0x2>;
|
xlnx,rxcsum = <0x2>;
|
||||||
xlnx,rxmem = <0x800>;
|
xlnx,rxmem = <0x800>;
|
||||||
xlnx,txcsum = <0x2>;
|
xlnx,txcsum = <0x2>;
|
||||||
|
@ -102,7 +102,7 @@ properties:
|
|||||||
default: 2
|
default: 2
|
||||||
|
|
||||||
interrupts:
|
interrupts:
|
||||||
anyOf:
|
oneOf:
|
||||||
- minItems: 1
|
- minItems: 1
|
||||||
items:
|
items:
|
||||||
- description: TX interrupt
|
- description: TX interrupt
|
||||||
|
@ -30,6 +30,7 @@ properties:
|
|||||||
- qcom,apq8096-sndcard
|
- qcom,apq8096-sndcard
|
||||||
- qcom,qcm6490-idp-sndcard
|
- qcom,qcm6490-idp-sndcard
|
||||||
- qcom,qcs6490-rb3gen2-sndcard
|
- qcom,qcs6490-rb3gen2-sndcard
|
||||||
|
- qcom,qrb4210-rb2-sndcard
|
||||||
- qcom,qrb5165-rb5-sndcard
|
- qcom,qrb5165-rb5-sndcard
|
||||||
- qcom,sc7180-qdsp6-sndcard
|
- qcom,sc7180-qdsp6-sndcard
|
||||||
- qcom,sc8280xp-sndcard
|
- qcom,sc8280xp-sndcard
|
||||||
|
@ -302,7 +302,7 @@ allOf:
|
|||||||
reg-names:
|
reg-names:
|
||||||
items:
|
items:
|
||||||
enum:
|
enum:
|
||||||
- scu
|
- sru
|
||||||
- ssi
|
- ssi
|
||||||
- adg
|
- adg
|
||||||
# for Gen2/Gen3
|
# for Gen2/Gen3
|
||||||
|
@ -7,12 +7,11 @@ WMI Driver API
|
|||||||
The WMI driver core supports a more modern bus-based interface for interacting
|
The WMI driver core supports a more modern bus-based interface for interacting
|
||||||
with WMI devices, and an older GUID-based interface. The latter interface is
|
with WMI devices, and an older GUID-based interface. The latter interface is
|
||||||
considered to be deprecated, so new WMI drivers should generally avoid it since
|
considered to be deprecated, so new WMI drivers should generally avoid it since
|
||||||
it has some issues with multiple WMI devices and events sharing the same GUIDs
|
it has some issues with multiple WMI devices sharing the same GUID.
|
||||||
and/or notification IDs. The modern bus-based interface instead maps each
|
The modern bus-based interface instead maps each WMI device to a
|
||||||
WMI device to a :c:type:`struct wmi_device <wmi_device>`, so it supports
|
:c:type:`struct wmi_device <wmi_device>`, so it supports WMI devices sharing the
|
||||||
WMI devices sharing GUIDs and/or notification IDs. Drivers can then register
|
same GUID. Drivers can then register a :c:type:`struct wmi_driver <wmi_driver>`
|
||||||
a :c:type:`struct wmi_driver <wmi_driver>`, which will be bound to compatible
|
which will be bound to compatible WMI devices by the driver core.
|
||||||
WMI devices by the driver core.
|
|
||||||
|
|
||||||
.. kernel-doc:: include/linux/wmi.h
|
.. kernel-doc:: include/linux/wmi.h
|
||||||
:internal:
|
:internal:
|
||||||
|
@ -181,7 +181,7 @@ Bridge Operations
|
|||||||
Bridge Connector Helper
|
Bridge Connector Helper
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
.. kernel-doc:: drivers/gpu/drm/drm_bridge_connector.c
|
.. kernel-doc:: drivers/gpu/drm/display/drm_bridge_connector.c
|
||||||
:doc: overview
|
:doc: overview
|
||||||
|
|
||||||
|
|
||||||
@ -204,7 +204,7 @@ MIPI-DSI bridge operation
|
|||||||
Bridge Connector Helper Reference
|
Bridge Connector Helper Reference
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
.. kernel-doc:: drivers/gpu/drm/drm_bridge_connector.c
|
.. kernel-doc:: drivers/gpu/drm/display/drm_bridge_connector.c
|
||||||
:export:
|
:export:
|
||||||
|
|
||||||
Panel-Bridge Helper Reference
|
Panel-Bridge Helper Reference
|
||||||
|
@ -144,9 +144,8 @@ IRQ should only be unmasked after a successful call to napi_complete_done():
|
|||||||
|
|
||||||
napi_schedule_irqoff() is a variant of napi_schedule() which takes advantage
|
napi_schedule_irqoff() is a variant of napi_schedule() which takes advantage
|
||||||
of guarantees given by being invoked in IRQ context (no need to
|
of guarantees given by being invoked in IRQ context (no need to
|
||||||
mask interrupts). Note that PREEMPT_RT forces all interrupts
|
mask interrupts). napi_schedule_irqoff() will fall back to napi_schedule() if
|
||||||
to be threaded so the interrupt may need to be marked ``IRQF_NO_THREAD``
|
IRQs are threaded (such as if ``PREEMPT_RT`` is enabled).
|
||||||
to avoid issues on real-time kernel configurations.
|
|
||||||
|
|
||||||
Instance to queue mapping
|
Instance to queue mapping
|
||||||
-------------------------
|
-------------------------
|
||||||
|
@ -175,7 +175,7 @@ field2会导致非对齐访问,这并不是不合理的。你会期望field2
|
|||||||
避免非对齐访问
|
避免非对齐访问
|
||||||
==============
|
==============
|
||||||
|
|
||||||
避免非对齐访问的最简单方法是使用<asm/unaligned.h>头文件提供的get_unaligned()和
|
避免非对齐访问的最简单方法是使用<linux/unaligned.h>头文件提供的get_unaligned()和
|
||||||
put_unaligned()宏。
|
put_unaligned()宏。
|
||||||
|
|
||||||
回到前面的一个可能导致非对齐访问的代码例子::
|
回到前面的一个可能导致非对齐访问的代码例子::
|
||||||
|
@ -8,7 +8,7 @@ Introduction
|
|||||||
============
|
============
|
||||||
|
|
||||||
Many Dell notebooks made after ~2020 support a WMI-based interface for
|
Many Dell notebooks made after ~2020 support a WMI-based interface for
|
||||||
retrieving various system data like battery temperature, ePPID, diagostic data
|
retrieving various system data like battery temperature, ePPID, diagnostic data
|
||||||
and fan/thermal sensor data.
|
and fan/thermal sensor data.
|
||||||
|
|
||||||
This interface is likely used by the `Dell Data Vault` software on Windows,
|
This interface is likely used by the `Dell Data Vault` software on Windows,
|
||||||
@ -277,7 +277,7 @@ Reverse-Engineering the DDV WMI interface
|
|||||||
4. Try to deduce the meaning of a certain WMI method by comparing the control
|
4. Try to deduce the meaning of a certain WMI method by comparing the control
|
||||||
flow with other ACPI methods (_BIX or _BIF for battery related methods
|
flow with other ACPI methods (_BIX or _BIF for battery related methods
|
||||||
for example).
|
for example).
|
||||||
5. Use the built-in UEFI diagostics to view sensor types/values for fan/thermal
|
5. Use the built-in UEFI diagnostics to view sensor types/values for fan/thermal
|
||||||
related methods (sometimes overwriting static ACPI data fields can be used
|
related methods (sometimes overwriting static ACPI data fields can be used
|
||||||
to test different sensor type values, since on some machines this data is
|
to test different sensor type values, since on some machines this data is
|
||||||
not reinitialized upon a warm reset).
|
not reinitialized upon a warm reset).
|
||||||
|
94
MAINTAINERS
94
MAINTAINERS
@ -860,7 +860,7 @@ F: drivers/crypto/allwinner/
|
|||||||
|
|
||||||
ALLWINNER DMIC DRIVERS
|
ALLWINNER DMIC DRIVERS
|
||||||
M: Ban Tao <fengzheng923@gmail.com>
|
M: Ban Tao <fengzheng923@gmail.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/allwinner,sun50i-h6-dmic.yaml
|
F: Documentation/devicetree/bindings/sound/allwinner,sun50i-h6-dmic.yaml
|
||||||
F: sound/soc/sunxi/sun50i-dmic.c
|
F: sound/soc/sunxi/sun50i-dmic.c
|
||||||
@ -1517,7 +1517,7 @@ F: drivers/iio/gyro/adxrs290.c
|
|||||||
ANALOG DEVICES INC ASOC CODEC DRIVERS
|
ANALOG DEVICES INC ASOC CODEC DRIVERS
|
||||||
M: Lars-Peter Clausen <lars@metafoo.de>
|
M: Lars-Peter Clausen <lars@metafoo.de>
|
||||||
M: Nuno Sá <nuno.sa@analog.com>
|
M: Nuno Sá <nuno.sa@analog.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wiki.analog.com/
|
W: http://wiki.analog.com/
|
||||||
W: https://ez.analog.com/linux-software-drivers
|
W: https://ez.analog.com/linux-software-drivers
|
||||||
@ -1594,7 +1594,7 @@ F: drivers/rtc/rtc-goldfish.c
|
|||||||
AOA (Apple Onboard Audio) ALSA DRIVER
|
AOA (Apple Onboard Audio) ALSA DRIVER
|
||||||
M: Johannes Berg <johannes@sipsolutions.net>
|
M: Johannes Berg <johannes@sipsolutions.net>
|
||||||
L: linuxppc-dev@lists.ozlabs.org
|
L: linuxppc-dev@lists.ozlabs.org
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: sound/aoa/
|
F: sound/aoa/
|
||||||
|
|
||||||
@ -2091,7 +2091,7 @@ F: drivers/crypto/amlogic/
|
|||||||
|
|
||||||
ARM/Amlogic Meson SoC Sound Drivers
|
ARM/Amlogic Meson SoC Sound Drivers
|
||||||
M: Jerome Brunet <jbrunet@baylibre.com>
|
M: Jerome Brunet <jbrunet@baylibre.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/amlogic*
|
F: Documentation/devicetree/bindings/sound/amlogic*
|
||||||
F: sound/soc/meson/
|
F: sound/soc/meson/
|
||||||
@ -2129,7 +2129,7 @@ F: drivers/*/*alpine*
|
|||||||
ARM/APPLE MACHINE SOUND DRIVERS
|
ARM/APPLE MACHINE SOUND DRIVERS
|
||||||
M: Martin Povišer <povik+lin@cutebit.org>
|
M: Martin Povišer <povik+lin@cutebit.org>
|
||||||
L: asahi@lists.linux.dev
|
L: asahi@lists.linux.dev
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/adi,ssm3515.yaml
|
F: Documentation/devicetree/bindings/sound/adi,ssm3515.yaml
|
||||||
F: Documentation/devicetree/bindings/sound/apple,*
|
F: Documentation/devicetree/bindings/sound/apple,*
|
||||||
@ -3732,7 +3732,7 @@ F: arch/arm/boot/dts/microchip/at91-tse850-3.dts
|
|||||||
|
|
||||||
AXENTIA ASOC DRIVERS
|
AXENTIA ASOC DRIVERS
|
||||||
M: Peter Rosin <peda@axentia.se>
|
M: Peter Rosin <peda@axentia.se>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/axentia,*
|
F: Documentation/devicetree/bindings/sound/axentia,*
|
||||||
F: sound/soc/atmel/tse850-pcm5142.c
|
F: sound/soc/atmel/tse850-pcm5142.c
|
||||||
@ -4851,7 +4851,7 @@ F: include/uapi/linux/bsg.h
|
|||||||
|
|
||||||
BT87X AUDIO DRIVER
|
BT87X AUDIO DRIVER
|
||||||
M: Clemens Ladisch <clemens@ladisch.de>
|
M: Clemens Ladisch <clemens@ladisch.de>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
||||||
F: Documentation/sound/cards/bt87x.rst
|
F: Documentation/sound/cards/bt87x.rst
|
||||||
@ -4913,7 +4913,7 @@ F: drivers/net/can/bxcan.c
|
|||||||
|
|
||||||
C-MEDIA CMI8788 DRIVER
|
C-MEDIA CMI8788 DRIVER
|
||||||
M: Clemens Ladisch <clemens@ladisch.de>
|
M: Clemens Ladisch <clemens@ladisch.de>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
||||||
F: sound/pci/oxygen/
|
F: sound/pci/oxygen/
|
||||||
@ -7832,6 +7832,8 @@ F: drivers/gpu/drm/xlnx/
|
|||||||
DRM GPU SCHEDULER
|
DRM GPU SCHEDULER
|
||||||
M: Luben Tuikov <ltuikov89@gmail.com>
|
M: Luben Tuikov <ltuikov89@gmail.com>
|
||||||
M: Matthew Brost <matthew.brost@intel.com>
|
M: Matthew Brost <matthew.brost@intel.com>
|
||||||
|
M: Danilo Krummrich <dakr@kernel.org>
|
||||||
|
M: Philipp Stanner <pstanner@redhat.com>
|
||||||
L: dri-devel@lists.freedesktop.org
|
L: dri-devel@lists.freedesktop.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git https://gitlab.freedesktop.org/drm/misc/kernel.git
|
T: git https://gitlab.freedesktop.org/drm/misc/kernel.git
|
||||||
@ -8252,7 +8254,7 @@ F: drivers/edac/ti_edac.c
|
|||||||
|
|
||||||
EDIROL UA-101/UA-1000 DRIVER
|
EDIROL UA-101/UA-1000 DRIVER
|
||||||
M: Clemens Ladisch <clemens@ladisch.de>
|
M: Clemens Ladisch <clemens@ladisch.de>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
||||||
F: sound/usb/misc/ua101.c
|
F: sound/usb/misc/ua101.c
|
||||||
@ -8814,7 +8816,7 @@ F: drivers/net/can/usb/f81604.c
|
|||||||
FIREWIRE AUDIO DRIVERS and IEC 61883-1/6 PACKET STREAMING ENGINE
|
FIREWIRE AUDIO DRIVERS and IEC 61883-1/6 PACKET STREAMING ENGINE
|
||||||
M: Clemens Ladisch <clemens@ladisch.de>
|
M: Clemens Ladisch <clemens@ladisch.de>
|
||||||
M: Takashi Sakamoto <o-takashi@sakamocchi.jp>
|
M: Takashi Sakamoto <o-takashi@sakamocchi.jp>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
||||||
F: include/uapi/sound/firewire.h
|
F: include/uapi/sound/firewire.h
|
||||||
@ -8888,7 +8890,7 @@ F: drivers/input/joystick/fsia6b.c
|
|||||||
|
|
||||||
FOCUSRITE SCARLETT2 MIXER DRIVER (Scarlett Gen 2+ and Clarett)
|
FOCUSRITE SCARLETT2 MIXER DRIVER (Scarlett Gen 2+ and Clarett)
|
||||||
M: Geoffrey D. Bennett <g@b4.vu>
|
M: Geoffrey D. Bennett <g@b4.vu>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: https://github.com/geoffreybennett/scarlett-gen2
|
W: https://github.com/geoffreybennett/scarlett-gen2
|
||||||
B: https://github.com/geoffreybennett/scarlett-gen2/issues
|
B: https://github.com/geoffreybennett/scarlett-gen2/issues
|
||||||
@ -8912,6 +8914,7 @@ F: include/linux/fortify-string.h
|
|||||||
F: lib/fortify_kunit.c
|
F: lib/fortify_kunit.c
|
||||||
F: lib/memcpy_kunit.c
|
F: lib/memcpy_kunit.c
|
||||||
F: lib/test_fortify/*
|
F: lib/test_fortify/*
|
||||||
|
K: \bunsafe_memcpy\b
|
||||||
K: \b__NO_FORTIFY\b
|
K: \b__NO_FORTIFY\b
|
||||||
|
|
||||||
FPGA DFL DRIVERS
|
FPGA DFL DRIVERS
|
||||||
@ -9209,7 +9212,7 @@ M: Shengjiu Wang <shengjiu.wang@gmail.com>
|
|||||||
M: Xiubo Li <Xiubo.Lee@gmail.com>
|
M: Xiubo Li <Xiubo.Lee@gmail.com>
|
||||||
R: Fabio Estevam <festevam@gmail.com>
|
R: Fabio Estevam <festevam@gmail.com>
|
||||||
R: Nicolin Chen <nicoleotsuka@gmail.com>
|
R: Nicolin Chen <nicoleotsuka@gmail.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
L: linuxppc-dev@lists.ozlabs.org
|
L: linuxppc-dev@lists.ozlabs.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: sound/soc/fsl/fsl*
|
F: sound/soc/fsl/fsl*
|
||||||
@ -9219,7 +9222,7 @@ FREESCALE SOC LPC32XX SOUND DRIVERS
|
|||||||
M: J.M.B. Downing <jonathan.downing@nautel.com>
|
M: J.M.B. Downing <jonathan.downing@nautel.com>
|
||||||
M: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
|
M: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
|
||||||
R: Vladimir Zapolskiy <vz@mleia.com>
|
R: Vladimir Zapolskiy <vz@mleia.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
L: linuxppc-dev@lists.ozlabs.org
|
L: linuxppc-dev@lists.ozlabs.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/nxp,lpc3220-i2s.yaml
|
F: Documentation/devicetree/bindings/sound/nxp,lpc3220-i2s.yaml
|
||||||
@ -9227,7 +9230,7 @@ F: sound/soc/fsl/lpc3xxx-*
|
|||||||
|
|
||||||
FREESCALE SOC SOUND QMC DRIVER
|
FREESCALE SOC SOUND QMC DRIVER
|
||||||
M: Herve Codina <herve.codina@bootlin.com>
|
M: Herve Codina <herve.codina@bootlin.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
L: linuxppc-dev@lists.ozlabs.org
|
L: linuxppc-dev@lists.ozlabs.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/fsl,qmc-audio.yaml
|
F: Documentation/devicetree/bindings/sound/fsl,qmc-audio.yaml
|
||||||
@ -11154,7 +11157,7 @@ F: drivers/iio/pressure/dps310.c
|
|||||||
|
|
||||||
INFINEON PEB2466 ASoC CODEC
|
INFINEON PEB2466 ASoC CODEC
|
||||||
M: Herve Codina <herve.codina@bootlin.com>
|
M: Herve Codina <herve.codina@bootlin.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/infineon,peb2466.yaml
|
F: Documentation/devicetree/bindings/sound/infineon,peb2466.yaml
|
||||||
F: sound/soc/codecs/peb2466.c
|
F: sound/soc/codecs/peb2466.c
|
||||||
@ -11317,7 +11320,7 @@ M: Bard Liao <yung-chuan.liao@linux.intel.com>
|
|||||||
M: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
|
M: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
|
||||||
M: Kai Vehmanen <kai.vehmanen@linux.intel.com>
|
M: Kai Vehmanen <kai.vehmanen@linux.intel.com>
|
||||||
R: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
|
R: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
F: sound/soc/intel/
|
F: sound/soc/intel/
|
||||||
|
|
||||||
@ -11496,7 +11499,7 @@ F: include/uapi/linux/idxd.h
|
|||||||
|
|
||||||
INTEL IN FIELD SCAN (IFS) DEVICE
|
INTEL IN FIELD SCAN (IFS) DEVICE
|
||||||
M: Jithu Joseph <jithu.joseph@intel.com>
|
M: Jithu Joseph <jithu.joseph@intel.com>
|
||||||
R: Ashok Raj <ashok.raj@intel.com>
|
R: Ashok Raj <ashok.raj.linux@gmail.com>
|
||||||
R: Tony Luck <tony.luck@intel.com>
|
R: Tony Luck <tony.luck@intel.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/platform/x86/intel/ifs
|
F: drivers/platform/x86/intel/ifs
|
||||||
@ -12001,7 +12004,7 @@ F: drivers/tty/ipwireless/
|
|||||||
|
|
||||||
IRON DEVICE AUDIO CODEC DRIVERS
|
IRON DEVICE AUDIO CODEC DRIVERS
|
||||||
M: Kiseok Jo <kiseok.jo@irondevice.com>
|
M: Kiseok Jo <kiseok.jo@irondevice.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/irondevice,*
|
F: Documentation/devicetree/bindings/sound/irondevice,*
|
||||||
F: sound/soc/codecs/sma*
|
F: sound/soc/codecs/sma*
|
||||||
@ -12343,6 +12346,7 @@ F: include/linux/randomize_kstack.h
|
|||||||
F: kernel/configs/hardening.config
|
F: kernel/configs/hardening.config
|
||||||
F: lib/usercopy_kunit.c
|
F: lib/usercopy_kunit.c
|
||||||
F: mm/usercopy.c
|
F: mm/usercopy.c
|
||||||
|
F: security/Kconfig.hardening
|
||||||
K: \b(add|choose)_random_kstack_offset\b
|
K: \b(add|choose)_random_kstack_offset\b
|
||||||
K: \b__check_(object_size|heap_object)\b
|
K: \b__check_(object_size|heap_object)\b
|
||||||
K: \b__counted_by\b
|
K: \b__counted_by\b
|
||||||
@ -12459,7 +12463,7 @@ F: virt/kvm/*
|
|||||||
KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
|
KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
|
||||||
M: Marc Zyngier <maz@kernel.org>
|
M: Marc Zyngier <maz@kernel.org>
|
||||||
M: Oliver Upton <oliver.upton@linux.dev>
|
M: Oliver Upton <oliver.upton@linux.dev>
|
||||||
R: James Morse <james.morse@arm.com>
|
R: Joey Gouly <joey.gouly@arm.com>
|
||||||
R: Suzuki K Poulose <suzuki.poulose@arm.com>
|
R: Suzuki K Poulose <suzuki.poulose@arm.com>
|
||||||
R: Zenghui Yu <yuzenghui@huawei.com>
|
R: Zenghui Yu <yuzenghui@huawei.com>
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
@ -13952,7 +13956,7 @@ F: drivers/media/i2c/max96717.c
|
|||||||
|
|
||||||
MAX9860 MONO AUDIO VOICE CODEC DRIVER
|
MAX9860 MONO AUDIO VOICE CODEC DRIVER
|
||||||
M: Peter Rosin <peda@axentia.se>
|
M: Peter Rosin <peda@axentia.se>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/max9860.txt
|
F: Documentation/devicetree/bindings/sound/max9860.txt
|
||||||
F: sound/soc/codecs/max9860.*
|
F: sound/soc/codecs/max9860.*
|
||||||
@ -15085,7 +15089,7 @@ F: drivers/spi/spi-at91-usart.c
|
|||||||
|
|
||||||
MICROCHIP AUDIO ASOC DRIVERS
|
MICROCHIP AUDIO ASOC DRIVERS
|
||||||
M: Claudiu Beznea <claudiu.beznea@tuxon.dev>
|
M: Claudiu Beznea <claudiu.beznea@tuxon.dev>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
F: Documentation/devicetree/bindings/sound/atmel*
|
F: Documentation/devicetree/bindings/sound/atmel*
|
||||||
F: Documentation/devicetree/bindings/sound/axentia,tse850-pcm5142.txt
|
F: Documentation/devicetree/bindings/sound/axentia,tse850-pcm5142.txt
|
||||||
@ -15957,7 +15961,7 @@ F: include/linux/mtd/*nand*.h
|
|||||||
|
|
||||||
NATIVE INSTRUMENTS USB SOUND INTERFACE DRIVER
|
NATIVE INSTRUMENTS USB SOUND INTERFACE DRIVER
|
||||||
M: Daniel Mack <zonque@gmail.com>
|
M: Daniel Mack <zonque@gmail.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://www.native-instruments.com
|
W: http://www.native-instruments.com
|
||||||
F: sound/usb/caiaq/
|
F: sound/usb/caiaq/
|
||||||
@ -16728,7 +16732,7 @@ F: drivers/extcon/extcon-ptn5150.c
|
|||||||
|
|
||||||
NXP SGTL5000 DRIVER
|
NXP SGTL5000 DRIVER
|
||||||
M: Fabio Estevam <festevam@gmail.com>
|
M: Fabio Estevam <festevam@gmail.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/fsl,sgtl5000.yaml
|
F: Documentation/devicetree/bindings/sound/fsl,sgtl5000.yaml
|
||||||
F: sound/soc/codecs/sgtl5000*
|
F: sound/soc/codecs/sgtl5000*
|
||||||
@ -16752,7 +16756,7 @@ K: "nxp,tda998x"
|
|||||||
|
|
||||||
NXP TFA9879 DRIVER
|
NXP TFA9879 DRIVER
|
||||||
M: Peter Rosin <peda@axentia.se>
|
M: Peter Rosin <peda@axentia.se>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/nxp,tfa9879.yaml
|
F: Documentation/devicetree/bindings/sound/nxp,tfa9879.yaml
|
||||||
F: sound/soc/codecs/tfa9879*
|
F: sound/soc/codecs/tfa9879*
|
||||||
@ -16764,7 +16768,7 @@ F: drivers/nfc/nxp-nci
|
|||||||
|
|
||||||
NXP/Goodix TFA989X (TFA1) DRIVER
|
NXP/Goodix TFA989X (TFA1) DRIVER
|
||||||
M: Stephan Gerhold <stephan@gerhold.net>
|
M: Stephan Gerhold <stephan@gerhold.net>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/nxp,tfa989x.yaml
|
F: Documentation/devicetree/bindings/sound/nxp,tfa989x.yaml
|
||||||
F: sound/soc/codecs/tfa989x.c
|
F: sound/soc/codecs/tfa989x.c
|
||||||
@ -16850,7 +16854,7 @@ F: include/uapi/misc/ocxl.h
|
|||||||
OMAP AUDIO SUPPORT
|
OMAP AUDIO SUPPORT
|
||||||
M: Peter Ujfalusi <peter.ujfalusi@gmail.com>
|
M: Peter Ujfalusi <peter.ujfalusi@gmail.com>
|
||||||
M: Jarkko Nikula <jarkko.nikula@bitmer.com>
|
M: Jarkko Nikula <jarkko.nikula@bitmer.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
L: linux-omap@vger.kernel.org
|
L: linux-omap@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: sound/soc/ti/n810.c
|
F: sound/soc/ti/n810.c
|
||||||
@ -17407,7 +17411,7 @@ F: include/linux/pm_opp.h
|
|||||||
|
|
||||||
OPL4 DRIVER
|
OPL4 DRIVER
|
||||||
M: Clemens Ladisch <clemens@ladisch.de>
|
M: Clemens Ladisch <clemens@ladisch.de>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
||||||
F: sound/drivers/opl4/
|
F: sound/drivers/opl4/
|
||||||
@ -18790,7 +18794,7 @@ F: drivers/crypto/intel/qat/
|
|||||||
|
|
||||||
QCOM AUDIO (ASoC) DRIVERS
|
QCOM AUDIO (ASoC) DRIVERS
|
||||||
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
L: linux-arm-msm@vger.kernel.org
|
L: linux-arm-msm@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
F: Documentation/devicetree/bindings/soc/qcom/qcom,apr*
|
F: Documentation/devicetree/bindings/soc/qcom/qcom,apr*
|
||||||
@ -19652,7 +19656,7 @@ F: drivers/net/ethernet/renesas/rtsn.*
|
|||||||
|
|
||||||
RENESAS IDT821034 ASoC CODEC
|
RENESAS IDT821034 ASoC CODEC
|
||||||
M: Herve Codina <herve.codina@bootlin.com>
|
M: Herve Codina <herve.codina@bootlin.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/renesas,idt821034.yaml
|
F: Documentation/devicetree/bindings/sound/renesas,idt821034.yaml
|
||||||
F: sound/soc/codecs/idt821034.c
|
F: sound/soc/codecs/idt821034.c
|
||||||
@ -20403,7 +20407,7 @@ F: security/safesetid/
|
|||||||
|
|
||||||
SAMSUNG AUDIO (ASoC) DRIVERS
|
SAMSUNG AUDIO (ASoC) DRIVERS
|
||||||
M: Sylwester Nawrocki <s.nawrocki@samsung.com>
|
M: Sylwester Nawrocki <s.nawrocki@samsung.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
B: mailto:linux-samsung-soc@vger.kernel.org
|
B: mailto:linux-samsung-soc@vger.kernel.org
|
||||||
F: Documentation/devicetree/bindings/sound/samsung*
|
F: Documentation/devicetree/bindings/sound/samsung*
|
||||||
@ -20939,7 +20943,7 @@ F: drivers/media/rc/serial_ir.c
|
|||||||
|
|
||||||
SERIAL LOW-POWER INTER-CHIP MEDIA BUS (SLIMbus)
|
SERIAL LOW-POWER INTER-CHIP MEDIA BUS (SLIMbus)
|
||||||
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/slimbus/
|
F: Documentation/devicetree/bindings/slimbus/
|
||||||
F: drivers/slimbus/
|
F: drivers/slimbus/
|
||||||
@ -21373,7 +21377,7 @@ F: Documentation/devicetree/bindings/i2c/socionext,synquacer-i2c.yaml
|
|||||||
F: drivers/i2c/busses/i2c-synquacer.c
|
F: drivers/i2c/busses/i2c-synquacer.c
|
||||||
|
|
||||||
SOCIONEXT UNIPHIER SOUND DRIVER
|
SOCIONEXT UNIPHIER SOUND DRIVER
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Orphan
|
S: Orphan
|
||||||
F: sound/soc/uniphier/
|
F: sound/soc/uniphier/
|
||||||
|
|
||||||
@ -21632,7 +21636,7 @@ F: tools/testing/selftests/alsa
|
|||||||
|
|
||||||
SOUND - COMPRESSED AUDIO
|
SOUND - COMPRESSED AUDIO
|
||||||
M: Vinod Koul <vkoul@kernel.org>
|
M: Vinod Koul <vkoul@kernel.org>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
||||||
F: Documentation/sound/designs/compress-offload.rst
|
F: Documentation/sound/designs/compress-offload.rst
|
||||||
@ -21695,7 +21699,7 @@ M: Vinod Koul <vkoul@kernel.org>
|
|||||||
M: Bard Liao <yung-chuan.liao@linux.intel.com>
|
M: Bard Liao <yung-chuan.liao@linux.intel.com>
|
||||||
R: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
|
R: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
|
||||||
R: Sanyog Kale <sanyog.r.kale@intel.com>
|
R: Sanyog Kale <sanyog.r.kale@intel.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire.git
|
||||||
F: Documentation/driver-api/soundwire/
|
F: Documentation/driver-api/soundwire/
|
||||||
@ -22168,7 +22172,7 @@ F: kernel/static_call.c
|
|||||||
|
|
||||||
STI AUDIO (ASoC) DRIVERS
|
STI AUDIO (ASoC) DRIVERS
|
||||||
M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
|
M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt
|
F: Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt
|
||||||
F: sound/soc/sti/
|
F: sound/soc/sti/
|
||||||
@ -22189,7 +22193,7 @@ F: drivers/media/usb/stk1160/
|
|||||||
STM32 AUDIO (ASoC) DRIVERS
|
STM32 AUDIO (ASoC) DRIVERS
|
||||||
M: Olivier Moysan <olivier.moysan@foss.st.com>
|
M: Olivier Moysan <olivier.moysan@foss.st.com>
|
||||||
M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
|
M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml
|
F: Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml
|
||||||
F: Documentation/devicetree/bindings/sound/st,stm32-*.yaml
|
F: Documentation/devicetree/bindings/sound/st,stm32-*.yaml
|
||||||
@ -22892,7 +22896,7 @@ F: drivers/irqchip/irq-xtensa-*
|
|||||||
|
|
||||||
TEXAS INSTRUMENTS ASoC DRIVERS
|
TEXAS INSTRUMENTS ASoC DRIVERS
|
||||||
M: Peter Ujfalusi <peter.ujfalusi@gmail.com>
|
M: Peter Ujfalusi <peter.ujfalusi@gmail.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml
|
F: Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml
|
||||||
F: sound/soc/ti/
|
F: sound/soc/ti/
|
||||||
@ -22901,7 +22905,7 @@ TEXAS INSTRUMENTS AUDIO (ASoC/HDA) DRIVERS
|
|||||||
M: Shenghao Ding <shenghao-ding@ti.com>
|
M: Shenghao Ding <shenghao-ding@ti.com>
|
||||||
M: Kevin Lu <kevin-lu@ti.com>
|
M: Kevin Lu <kevin-lu@ti.com>
|
||||||
M: Baojun Xu <baojun.xu@ti.com>
|
M: Baojun Xu <baojun.xu@ti.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/tas2552.txt
|
F: Documentation/devicetree/bindings/sound/tas2552.txt
|
||||||
F: Documentation/devicetree/bindings/sound/ti,tas2562.yaml
|
F: Documentation/devicetree/bindings/sound/ti,tas2562.yaml
|
||||||
@ -23269,7 +23273,7 @@ F: drivers/soc/ti/*
|
|||||||
TI LM49xxx FAMILY ASoC CODEC DRIVERS
|
TI LM49xxx FAMILY ASoC CODEC DRIVERS
|
||||||
M: M R Swami Reddy <mr.swami.reddy@ti.com>
|
M: M R Swami Reddy <mr.swami.reddy@ti.com>
|
||||||
M: Vishwas A Deshpande <vishwas.a.deshpande@ti.com>
|
M: Vishwas A Deshpande <vishwas.a.deshpande@ti.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: sound/soc/codecs/isabelle*
|
F: sound/soc/codecs/isabelle*
|
||||||
F: sound/soc/codecs/lm49453*
|
F: sound/soc/codecs/lm49453*
|
||||||
@ -23284,14 +23288,14 @@ F: drivers/iio/adc/ti-lmp92064.c
|
|||||||
|
|
||||||
TI PCM3060 ASoC CODEC DRIVER
|
TI PCM3060 ASoC CODEC DRIVER
|
||||||
M: Kirill Marinushkin <kmarinushkin@birdec.com>
|
M: Kirill Marinushkin <kmarinushkin@birdec.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/pcm3060.txt
|
F: Documentation/devicetree/bindings/sound/pcm3060.txt
|
||||||
F: sound/soc/codecs/pcm3060*
|
F: sound/soc/codecs/pcm3060*
|
||||||
|
|
||||||
TI TAS571X FAMILY ASoC CODEC DRIVER
|
TI TAS571X FAMILY ASoC CODEC DRIVER
|
||||||
M: Kevin Cernekee <cernekee@chromium.org>
|
M: Kevin Cernekee <cernekee@chromium.org>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Odd Fixes
|
S: Odd Fixes
|
||||||
F: sound/soc/codecs/tas571x*
|
F: sound/soc/codecs/tas571x*
|
||||||
|
|
||||||
@ -23319,7 +23323,7 @@ F: drivers/iio/adc/ti-tsc2046.c
|
|||||||
|
|
||||||
TI TWL4030 SERIES SOC CODEC DRIVER
|
TI TWL4030 SERIES SOC CODEC DRIVER
|
||||||
M: Peter Ujfalusi <peter.ujfalusi@gmail.com>
|
M: Peter Ujfalusi <peter.ujfalusi@gmail.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: sound/soc/codecs/twl4030*
|
F: sound/soc/codecs/twl4030*
|
||||||
|
|
||||||
@ -23995,7 +23999,7 @@ F: drivers/usb/storage/
|
|||||||
|
|
||||||
USB MIDI DRIVER
|
USB MIDI DRIVER
|
||||||
M: Clemens Ladisch <clemens@ladisch.de>
|
M: Clemens Ladisch <clemens@ladisch.de>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
|
||||||
F: sound/usb/midi.*
|
F: sound/usb/midi.*
|
||||||
@ -24655,7 +24659,7 @@ VIRTIO SOUND DRIVER
|
|||||||
M: Anton Yakovlev <anton.yakovlev@opensynergy.com>
|
M: Anton Yakovlev <anton.yakovlev@opensynergy.com>
|
||||||
M: "Michael S. Tsirkin" <mst@redhat.com>
|
M: "Michael S. Tsirkin" <mst@redhat.com>
|
||||||
L: virtualization@lists.linux.dev
|
L: virtualization@lists.linux.dev
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: include/uapi/linux/virtio_snd.h
|
F: include/uapi/linux/virtio_snd.h
|
||||||
F: sound/virtio/*
|
F: sound/virtio/*
|
||||||
@ -25384,7 +25388,7 @@ F: include/xen/interface/io/usbif.h
|
|||||||
XEN SOUND FRONTEND DRIVER
|
XEN SOUND FRONTEND DRIVER
|
||||||
M: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
|
M: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
|
||||||
L: xen-devel@lists.xenproject.org (moderated for non-subscribers)
|
L: xen-devel@lists.xenproject.org (moderated for non-subscribers)
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: linux-sound@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
F: sound/xen/*
|
F: sound/xen/*
|
||||||
|
|
||||||
|
4
Makefile
4
Makefile
@ -2,7 +2,7 @@
|
|||||||
VERSION = 6
|
VERSION = 6
|
||||||
PATCHLEVEL = 12
|
PATCHLEVEL = 12
|
||||||
SUBLEVEL = 0
|
SUBLEVEL = 0
|
||||||
EXTRAVERSION = -rc1
|
EXTRAVERSION = -rc2
|
||||||
NAME = Baby Opossum Posse
|
NAME = Baby Opossum Posse
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
@ -1645,7 +1645,7 @@ help:
|
|||||||
echo '* dtbs - Build device tree blobs for enabled boards'; \
|
echo '* dtbs - Build device tree blobs for enabled boards'; \
|
||||||
echo ' dtbs_install - Install dtbs to $(INSTALL_DTBS_PATH)'; \
|
echo ' dtbs_install - Install dtbs to $(INSTALL_DTBS_PATH)'; \
|
||||||
echo ' dt_binding_check - Validate device tree binding documents and examples'; \
|
echo ' dt_binding_check - Validate device tree binding documents and examples'; \
|
||||||
echo ' dt_binding_schema - Build processed device tree binding schemas'; \
|
echo ' dt_binding_schemas - Build processed device tree binding schemas'; \
|
||||||
echo ' dtbs_check - Validate device tree source files';\
|
echo ' dtbs_check - Validate device tree source files';\
|
||||||
echo '')
|
echo '')
|
||||||
|
|
||||||
|
18
arch/Kconfig
18
arch/Kconfig
@ -838,7 +838,7 @@ config CFI_CLANG
|
|||||||
config CFI_ICALL_NORMALIZE_INTEGERS
|
config CFI_ICALL_NORMALIZE_INTEGERS
|
||||||
bool "Normalize CFI tags for integers"
|
bool "Normalize CFI tags for integers"
|
||||||
depends on CFI_CLANG
|
depends on CFI_CLANG
|
||||||
depends on $(cc-option,-fsanitize=kcfi -fsanitize-cfi-icall-experimental-normalize-integers)
|
depends on HAVE_CFI_ICALL_NORMALIZE_INTEGERS
|
||||||
help
|
help
|
||||||
This option normalizes the CFI tags for integer types so that all
|
This option normalizes the CFI tags for integer types so that all
|
||||||
integer types of the same size and signedness receive the same CFI
|
integer types of the same size and signedness receive the same CFI
|
||||||
@ -851,6 +851,22 @@ config CFI_ICALL_NORMALIZE_INTEGERS
|
|||||||
|
|
||||||
This option is necessary for using CFI with Rust. If unsure, say N.
|
This option is necessary for using CFI with Rust. If unsure, say N.
|
||||||
|
|
||||||
|
config HAVE_CFI_ICALL_NORMALIZE_INTEGERS
|
||||||
|
def_bool !GCOV_KERNEL && !KASAN
|
||||||
|
depends on CFI_CLANG
|
||||||
|
depends on $(cc-option,-fsanitize=kcfi -fsanitize-cfi-icall-experimental-normalize-integers)
|
||||||
|
help
|
||||||
|
Is CFI_ICALL_NORMALIZE_INTEGERS supported with the set of compilers
|
||||||
|
currently in use?
|
||||||
|
|
||||||
|
This option defaults to false if GCOV or KASAN is enabled, as there is
|
||||||
|
an LLVM bug that makes normalized integers tags incompatible with
|
||||||
|
KASAN and GCOV. Kconfig currently does not have the infrastructure to
|
||||||
|
detect whether your rustc compiler contains the fix for this bug, so
|
||||||
|
it is assumed that it doesn't. If your compiler has the fix, you can
|
||||||
|
explicitly enable this option in your config file. The Kconfig logic
|
||||||
|
needed to detect this will be added in a future kernel release.
|
||||||
|
|
||||||
config CFI_PERMISSIVE
|
config CFI_PERMISSIVE
|
||||||
bool "Use CFI in permissive mode"
|
bool "Use CFI in permissive mode"
|
||||||
depends on CFI_CLANG
|
depends on CFI_CLANG
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include <asm/gentrap.h>
|
#include <asm/gentrap.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/sysinfo.h>
|
#include <asm/sysinfo.h>
|
||||||
#include <asm/hwrpb.h>
|
#include <asm/hwrpb.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <asm/byteorder.h>
|
#include <asm/byteorder.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
#ifdef CONFIG_ISA_ARCV2
|
#ifdef CONFIG_ISA_ARCV2
|
||||||
#include <asm/barrier.h>
|
#include <asm/barrier.h>
|
||||||
|
@ -14,6 +14,7 @@ typedef struct {
|
|||||||
unsigned long asid[NR_CPUS]; /* 8 bit MMU PID + Generation cycle */
|
unsigned long asid[NR_CPUS]; /* 8 bit MMU PID + Generation cycle */
|
||||||
} mm_context_t;
|
} mm_context_t;
|
||||||
|
|
||||||
|
struct pt_regs;
|
||||||
extern void do_tlb_overlap_fault(unsigned long, unsigned long, struct pt_regs *);
|
extern void do_tlb_overlap_fault(unsigned long, unsigned long, struct pt_regs *);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _ASM_ARC_UNALIGNED_H
|
|
||||||
#define _ASM_ARC_UNALIGNED_H
|
|
||||||
|
|
||||||
/* ARC700 can't handle unaligned Data accesses. */
|
|
||||||
|
|
||||||
#include <asm-generic/unaligned.h>
|
|
||||||
#include <asm/ptrace.h>
|
|
||||||
|
|
||||||
#ifdef CONFIG_ARC_EMUL_UNALIGNED
|
|
||||||
int misaligned_fixup(unsigned long address, struct pt_regs *regs,
|
|
||||||
struct callee_regs *cregs);
|
|
||||||
#else
|
|
||||||
static inline int
|
|
||||||
misaligned_fixup(unsigned long address, struct pt_regs *regs,
|
|
||||||
struct callee_regs *cregs)
|
|
||||||
{
|
|
||||||
/* Not fixed */
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _ASM_ARC_UNALIGNED_H */
|
|
@ -18,8 +18,9 @@
|
|||||||
#include <linux/kgdb.h>
|
#include <linux/kgdb.h>
|
||||||
#include <asm/entry.h>
|
#include <asm/entry.h>
|
||||||
#include <asm/setup.h>
|
#include <asm/setup.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/kprobes.h>
|
#include <asm/kprobes.h>
|
||||||
|
#include "unaligned.h"
|
||||||
|
|
||||||
void die(const char *str, struct pt_regs *regs, unsigned long address)
|
void die(const char *str, struct pt_regs *regs, unsigned long address)
|
||||||
{
|
{
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <linux/ptrace.h>
|
#include <linux/ptrace.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include <asm/disasm.h>
|
#include <asm/disasm.h>
|
||||||
|
#include "unaligned.h"
|
||||||
|
|
||||||
#ifdef CONFIG_CPU_BIG_ENDIAN
|
#ifdef CONFIG_CPU_BIG_ENDIAN
|
||||||
#define BE 1
|
#define BE 1
|
||||||
|
16
arch/arc/kernel/unaligned.h
Normal file
16
arch/arc/kernel/unaligned.h
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
struct pt_regs;
|
||||||
|
struct callee_regs;
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARC_EMUL_UNALIGNED
|
||||||
|
int misaligned_fixup(unsigned long address, struct pt_regs *regs,
|
||||||
|
struct callee_regs *cregs);
|
||||||
|
#else
|
||||||
|
static inline int
|
||||||
|
misaligned_fixup(unsigned long address, struct pt_regs *regs,
|
||||||
|
struct callee_regs *cregs)
|
||||||
|
{
|
||||||
|
/* Not fixed */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
@ -19,7 +19,7 @@
|
|||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include <linux/ptrace.h>
|
#include <linux/ptrace.h>
|
||||||
#include <asm/sections.h>
|
#include <asm/sections.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/unwind.h>
|
#include <asm/unwind.h>
|
||||||
|
|
||||||
extern char __start_unwind[], __end_unwind[];
|
extern char __start_unwind[], __end_unwind[];
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include <asm/hwcap.h>
|
#include <asm/hwcap.h>
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/aes.h>
|
#include <crypto/aes.h>
|
||||||
#include <crypto/ctr.h>
|
#include <crypto/ctr.h>
|
||||||
#include <crypto/internal/simd.h>
|
#include <crypto/internal/simd.h>
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <asm/hwcap.h>
|
#include <asm/hwcap.h>
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
#define PMULL_MIN_LEN 64L /* minimum size of buffer
|
#define PMULL_MIN_LEN 64L /* minimum size of buffer
|
||||||
* for crc32_pmull_le_16 */
|
* for crc32_pmull_le_16 */
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#include <asm/hwcap.h>
|
#include <asm/hwcap.h>
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/aes.h>
|
#include <crypto/aes.h>
|
||||||
#include <crypto/gcm.h>
|
#include <crypto/gcm.h>
|
||||||
#include <crypto/b128ops.h>
|
#include <crypto/b128ops.h>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include <asm/hwcap.h>
|
#include <asm/hwcap.h>
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/algapi.h>
|
#include <crypto/algapi.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <crypto/internal/poly1305.h>
|
#include <crypto/internal/poly1305.h>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include <asm/hwcap.h>
|
#include <asm/hwcap.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
#include "sha256_glue.h"
|
#include "sha256_glue.h"
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/domain.h>
|
#include <asm/domain.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/unified.h>
|
#include <asm/unified.h>
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
#include <asm/proc-fns.h>
|
#include <asm/proc-fns.h>
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include <asm/cp15.h>
|
#include <asm/cp15.h>
|
||||||
#include <asm/system_info.h>
|
#include <asm/system_info.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/opcodes.h>
|
#include <asm/opcodes.h>
|
||||||
|
|
||||||
#include "fault.h"
|
#include "fault.h"
|
||||||
|
@ -200,7 +200,8 @@ config ARM64
|
|||||||
select HAVE_DMA_CONTIGUOUS
|
select HAVE_DMA_CONTIGUOUS
|
||||||
select HAVE_DYNAMIC_FTRACE
|
select HAVE_DYNAMIC_FTRACE
|
||||||
select HAVE_DYNAMIC_FTRACE_WITH_ARGS \
|
select HAVE_DYNAMIC_FTRACE_WITH_ARGS \
|
||||||
if $(cc-option,-fpatchable-function-entry=2)
|
if (GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS || \
|
||||||
|
CLANG_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS)
|
||||||
select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS \
|
select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS \
|
||||||
if DYNAMIC_FTRACE_WITH_ARGS && DYNAMIC_FTRACE_WITH_CALL_OPS
|
if DYNAMIC_FTRACE_WITH_ARGS && DYNAMIC_FTRACE_WITH_CALL_OPS
|
||||||
select HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS \
|
select HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS \
|
||||||
@ -286,12 +287,10 @@ config CLANG_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS
|
|||||||
def_bool CC_IS_CLANG
|
def_bool CC_IS_CLANG
|
||||||
# https://github.com/ClangBuiltLinux/linux/issues/1507
|
# https://github.com/ClangBuiltLinux/linux/issues/1507
|
||||||
depends on AS_IS_GNU || (AS_IS_LLVM && (LD_IS_LLD || LD_VERSION >= 23600))
|
depends on AS_IS_GNU || (AS_IS_LLVM && (LD_IS_LLD || LD_VERSION >= 23600))
|
||||||
select HAVE_DYNAMIC_FTRACE_WITH_ARGS
|
|
||||||
|
|
||||||
config GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS
|
config GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS
|
||||||
def_bool CC_IS_GCC
|
def_bool CC_IS_GCC
|
||||||
depends on $(cc-option,-fpatchable-function-entry=2)
|
depends on $(cc-option,-fpatchable-function-entry=2)
|
||||||
select HAVE_DYNAMIC_FTRACE_WITH_ARGS
|
|
||||||
|
|
||||||
config 64BIT
|
config 64BIT
|
||||||
def_bool y
|
def_bool y
|
||||||
@ -1097,6 +1096,7 @@ config ARM64_ERRATUM_3194386
|
|||||||
* ARM Cortex-A78C erratum 3324346
|
* ARM Cortex-A78C erratum 3324346
|
||||||
* ARM Cortex-A78C erratum 3324347
|
* ARM Cortex-A78C erratum 3324347
|
||||||
* ARM Cortex-A710 erratam 3324338
|
* ARM Cortex-A710 erratam 3324338
|
||||||
|
* ARM Cortex-A715 errartum 3456084
|
||||||
* ARM Cortex-A720 erratum 3456091
|
* ARM Cortex-A720 erratum 3456091
|
||||||
* ARM Cortex-A725 erratum 3456106
|
* ARM Cortex-A725 erratum 3456106
|
||||||
* ARM Cortex-X1 erratum 3324344
|
* ARM Cortex-X1 erratum 3324344
|
||||||
@ -1107,6 +1107,7 @@ config ARM64_ERRATUM_3194386
|
|||||||
* ARM Cortex-X925 erratum 3324334
|
* ARM Cortex-X925 erratum 3324334
|
||||||
* ARM Neoverse-N1 erratum 3324349
|
* ARM Neoverse-N1 erratum 3324349
|
||||||
* ARM Neoverse N2 erratum 3324339
|
* ARM Neoverse N2 erratum 3324339
|
||||||
|
* ARM Neoverse-N3 erratum 3456111
|
||||||
* ARM Neoverse-V1 erratum 3324341
|
* ARM Neoverse-V1 erratum 3324341
|
||||||
* ARM Neoverse V2 erratum 3324336
|
* ARM Neoverse V2 erratum 3324336
|
||||||
* ARM Neoverse-V3 erratum 3312417
|
* ARM Neoverse-V3 erratum 3312417
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 1995-2001 by Russell King
|
# Copyright (C) 1995-2001 by Russell King
|
||||||
|
|
||||||
LDFLAGS_vmlinux :=--no-undefined -X
|
LDFLAGS_vmlinux :=--no-undefined -X --pic-veneer
|
||||||
|
|
||||||
ifeq ($(CONFIG_RELOCATABLE), y)
|
ifeq ($(CONFIG_RELOCATABLE), y)
|
||||||
# Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour
|
# Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/aes.h>
|
#include <crypto/aes.h>
|
||||||
#include <crypto/scatterwalk.h>
|
#include <crypto/scatterwalk.h>
|
||||||
#include <crypto/internal/aead.h>
|
#include <crypto/internal/aead.h>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/aes.h>
|
#include <crypto/aes.h>
|
||||||
#include <crypto/algapi.h>
|
#include <crypto/algapi.h>
|
||||||
#include <crypto/internal/simd.h>
|
#include <crypto/internal/simd.h>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/aes.h>
|
#include <crypto/aes.h>
|
||||||
#include <crypto/gcm.h>
|
#include <crypto/gcm.h>
|
||||||
#include <crypto/algapi.h>
|
#include <crypto/algapi.h>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include <asm/hwcap.h>
|
#include <asm/hwcap.h>
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/algapi.h>
|
#include <crypto/algapi.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <crypto/internal/poly1305.h>
|
#include <crypto/internal/poly1305.h>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <crypto/internal/simd.h>
|
#include <crypto/internal/simd.h>
|
||||||
#include <crypto/sha1.h>
|
#include <crypto/sha1.h>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <crypto/internal/simd.h>
|
#include <crypto/internal/simd.h>
|
||||||
#include <crypto/sha2.h>
|
#include <crypto/sha2.h>
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#include <asm/hwcap.h>
|
#include <asm/hwcap.h>
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <crypto/internal/simd.h>
|
#include <crypto/internal/simd.h>
|
||||||
#include <crypto/sha3.h>
|
#include <crypto/sha3.h>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <crypto/internal/simd.h>
|
#include <crypto/internal/simd.h>
|
||||||
#include <crypto/sha2.h>
|
#include <crypto/sha2.h>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <crypto/internal/simd.h>
|
#include <crypto/internal/simd.h>
|
||||||
#include <crypto/sm3.h>
|
#include <crypto/sm3.h>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include <asm/neon.h>
|
#include <asm/neon.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <crypto/internal/simd.h>
|
#include <crypto/internal/simd.h>
|
||||||
#include <crypto/sm3.h>
|
#include <crypto/sm3.h>
|
||||||
|
@ -94,6 +94,7 @@
|
|||||||
#define ARM_CPU_PART_NEOVERSE_V3 0xD84
|
#define ARM_CPU_PART_NEOVERSE_V3 0xD84
|
||||||
#define ARM_CPU_PART_CORTEX_X925 0xD85
|
#define ARM_CPU_PART_CORTEX_X925 0xD85
|
||||||
#define ARM_CPU_PART_CORTEX_A725 0xD87
|
#define ARM_CPU_PART_CORTEX_A725 0xD87
|
||||||
|
#define ARM_CPU_PART_NEOVERSE_N3 0xD8E
|
||||||
|
|
||||||
#define APM_CPU_PART_XGENE 0x000
|
#define APM_CPU_PART_XGENE 0x000
|
||||||
#define APM_CPU_VAR_POTENZA 0x00
|
#define APM_CPU_VAR_POTENZA 0x00
|
||||||
@ -176,6 +177,7 @@
|
|||||||
#define MIDR_NEOVERSE_V3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3)
|
#define MIDR_NEOVERSE_V3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3)
|
||||||
#define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925)
|
#define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925)
|
||||||
#define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725)
|
#define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725)
|
||||||
|
#define MIDR_NEOVERSE_N3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N3)
|
||||||
#define MIDR_THUNDERX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX)
|
#define MIDR_THUNDERX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX)
|
||||||
#define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX)
|
#define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX)
|
||||||
#define MIDR_THUNDERX_83XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_83XX)
|
#define MIDR_THUNDERX_83XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_83XX)
|
||||||
|
@ -1441,11 +1441,6 @@ void kvm_set_vm_id_reg(struct kvm *kvm, u32 reg, u64 val);
|
|||||||
sign_extend64(__val, id##_##fld##_WIDTH - 1); \
|
sign_extend64(__val, id##_##fld##_WIDTH - 1); \
|
||||||
})
|
})
|
||||||
|
|
||||||
#define expand_field_sign(id, fld, val) \
|
|
||||||
(id##_##fld##_SIGNED ? \
|
|
||||||
__expand_field_sign_signed(id, fld, val) : \
|
|
||||||
__expand_field_sign_unsigned(id, fld, val))
|
|
||||||
|
|
||||||
#define get_idreg_field_unsigned(kvm, id, fld) \
|
#define get_idreg_field_unsigned(kvm, id, fld) \
|
||||||
({ \
|
({ \
|
||||||
u64 __val = kvm_read_vm_id_reg((kvm), SYS_##id); \
|
u64 __val = kvm_read_vm_id_reg((kvm), SYS_##id); \
|
||||||
@ -1461,20 +1456,26 @@ void kvm_set_vm_id_reg(struct kvm *kvm, u32 reg, u64 val);
|
|||||||
#define get_idreg_field_enum(kvm, id, fld) \
|
#define get_idreg_field_enum(kvm, id, fld) \
|
||||||
get_idreg_field_unsigned(kvm, id, fld)
|
get_idreg_field_unsigned(kvm, id, fld)
|
||||||
|
|
||||||
#define get_idreg_field(kvm, id, fld) \
|
#define kvm_cmp_feat_signed(kvm, id, fld, op, limit) \
|
||||||
|
(get_idreg_field_signed((kvm), id, fld) op __expand_field_sign_signed(id, fld, limit))
|
||||||
|
|
||||||
|
#define kvm_cmp_feat_unsigned(kvm, id, fld, op, limit) \
|
||||||
|
(get_idreg_field_unsigned((kvm), id, fld) op __expand_field_sign_unsigned(id, fld, limit))
|
||||||
|
|
||||||
|
#define kvm_cmp_feat(kvm, id, fld, op, limit) \
|
||||||
(id##_##fld##_SIGNED ? \
|
(id##_##fld##_SIGNED ? \
|
||||||
get_idreg_field_signed(kvm, id, fld) : \
|
kvm_cmp_feat_signed(kvm, id, fld, op, limit) : \
|
||||||
get_idreg_field_unsigned(kvm, id, fld))
|
kvm_cmp_feat_unsigned(kvm, id, fld, op, limit))
|
||||||
|
|
||||||
#define kvm_has_feat(kvm, id, fld, limit) \
|
#define kvm_has_feat(kvm, id, fld, limit) \
|
||||||
(get_idreg_field((kvm), id, fld) >= expand_field_sign(id, fld, limit))
|
kvm_cmp_feat(kvm, id, fld, >=, limit)
|
||||||
|
|
||||||
#define kvm_has_feat_enum(kvm, id, fld, val) \
|
#define kvm_has_feat_enum(kvm, id, fld, val) \
|
||||||
(get_idreg_field_unsigned((kvm), id, fld) == __expand_field_sign_unsigned(id, fld, val))
|
kvm_cmp_feat_unsigned(kvm, id, fld, ==, val)
|
||||||
|
|
||||||
#define kvm_has_feat_range(kvm, id, fld, min, max) \
|
#define kvm_has_feat_range(kvm, id, fld, min, max) \
|
||||||
(get_idreg_field((kvm), id, fld) >= expand_field_sign(id, fld, min) && \
|
(kvm_cmp_feat(kvm, id, fld, >=, min) && \
|
||||||
get_idreg_field((kvm), id, fld) <= expand_field_sign(id, fld, max))
|
kvm_cmp_feat(kvm, id, fld, <=, max))
|
||||||
|
|
||||||
/* Check for a given level of PAuth support */
|
/* Check for a given level of PAuth support */
|
||||||
#define kvm_has_pauth(k, l) \
|
#define kvm_has_pauth(k, l) \
|
||||||
|
@ -439,6 +439,7 @@ static const struct midr_range erratum_spec_ssbs_list[] = {
|
|||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78),
|
||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78C),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78C),
|
||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
|
||||||
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_A715),
|
||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A720),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_A720),
|
||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A725),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_A725),
|
||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_X1),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_X1),
|
||||||
@ -447,8 +448,10 @@ static const struct midr_range erratum_spec_ssbs_list[] = {
|
|||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_X3),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_X3),
|
||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_X4),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_X4),
|
||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_X925),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_X925),
|
||||||
|
MIDR_ALL_VERSIONS(MIDR_MICROSOFT_AZURE_COBALT_100),
|
||||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1),
|
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1),
|
||||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
|
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
|
||||||
|
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N3),
|
||||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
|
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
|
||||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2),
|
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2),
|
||||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3),
|
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3),
|
||||||
|
@ -338,7 +338,7 @@ static inline void __hyp_sve_save_host(void)
|
|||||||
struct cpu_sve_state *sve_state = *host_data_ptr(sve_state);
|
struct cpu_sve_state *sve_state = *host_data_ptr(sve_state);
|
||||||
|
|
||||||
sve_state->zcr_el1 = read_sysreg_el1(SYS_ZCR);
|
sve_state->zcr_el1 = read_sysreg_el1(SYS_ZCR);
|
||||||
write_sysreg_s(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2);
|
write_sysreg_s(sve_vq_from_vl(kvm_host_sve_max_vl) - 1, SYS_ZCR_EL2);
|
||||||
__sve_save_state(sve_state->sve_regs + sve_ffr_offset(kvm_host_sve_max_vl),
|
__sve_save_state(sve_state->sve_regs + sve_ffr_offset(kvm_host_sve_max_vl),
|
||||||
&sve_state->fpsr,
|
&sve_state->fpsr,
|
||||||
true);
|
true);
|
||||||
|
@ -33,7 +33,7 @@ static void __hyp_sve_save_guest(struct kvm_vcpu *vcpu)
|
|||||||
*/
|
*/
|
||||||
sve_cond_update_zcr_vq(vcpu_sve_max_vq(vcpu) - 1, SYS_ZCR_EL2);
|
sve_cond_update_zcr_vq(vcpu_sve_max_vq(vcpu) - 1, SYS_ZCR_EL2);
|
||||||
__sve_save_state(vcpu_sve_pffr(vcpu), &vcpu->arch.ctxt.fp_regs.fpsr, true);
|
__sve_save_state(vcpu_sve_pffr(vcpu), &vcpu->arch.ctxt.fp_regs.fpsr, true);
|
||||||
write_sysreg_s(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2);
|
write_sysreg_s(sve_vq_from_vl(kvm_host_sve_max_vl) - 1, SYS_ZCR_EL2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __hyp_sve_restore_host(void)
|
static void __hyp_sve_restore_host(void)
|
||||||
@ -45,10 +45,11 @@ static void __hyp_sve_restore_host(void)
|
|||||||
* the host. The layout of the data when saving the sve state depends
|
* the host. The layout of the data when saving the sve state depends
|
||||||
* on the VL, so use a consistent (i.e., the maximum) host VL.
|
* on the VL, so use a consistent (i.e., the maximum) host VL.
|
||||||
*
|
*
|
||||||
* Setting ZCR_EL2 to ZCR_ELx_LEN_MASK sets the effective length
|
* Note that this constrains the PE to the maximum shared VL
|
||||||
* supported by the system (or limited at EL3).
|
* that was discovered, if we wish to use larger VLs this will
|
||||||
|
* need to be revisited.
|
||||||
*/
|
*/
|
||||||
write_sysreg_s(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2);
|
write_sysreg_s(sve_vq_from_vl(kvm_host_sve_max_vl) - 1, SYS_ZCR_EL2);
|
||||||
__sve_restore_state(sve_state->sve_regs + sve_ffr_offset(kvm_host_sve_max_vl),
|
__sve_restore_state(sve_state->sve_regs + sve_ffr_offset(kvm_host_sve_max_vl),
|
||||||
&sve_state->fpsr,
|
&sve_state->fpsr,
|
||||||
true);
|
true);
|
||||||
@ -488,7 +489,8 @@ void handle_trap(struct kvm_cpu_context *host_ctxt)
|
|||||||
case ESR_ELx_EC_SVE:
|
case ESR_ELx_EC_SVE:
|
||||||
cpacr_clear_set(0, CPACR_ELx_ZEN);
|
cpacr_clear_set(0, CPACR_ELx_ZEN);
|
||||||
isb();
|
isb();
|
||||||
sve_cond_update_zcr_vq(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2);
|
sve_cond_update_zcr_vq(sve_vq_from_vl(kvm_host_sve_max_vl) - 1,
|
||||||
|
SYS_ZCR_EL2);
|
||||||
break;
|
break;
|
||||||
case ESR_ELx_EC_IABT_LOW:
|
case ESR_ELx_EC_IABT_LOW:
|
||||||
case ESR_ELx_EC_DABT_LOW:
|
case ESR_ELx_EC_DABT_LOW:
|
||||||
|
@ -574,12 +574,14 @@ int __pkvm_init_vcpu(pkvm_handle_t handle, struct kvm_vcpu *host_vcpu,
|
|||||||
unlock:
|
unlock:
|
||||||
hyp_spin_unlock(&vm_table_lock);
|
hyp_spin_unlock(&vm_table_lock);
|
||||||
|
|
||||||
if (ret)
|
if (ret) {
|
||||||
unmap_donated_memory(hyp_vcpu, sizeof(*hyp_vcpu));
|
unmap_donated_memory(hyp_vcpu, sizeof(*hyp_vcpu));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
hyp_vcpu->vcpu.arch.cptr_el2 = kvm_get_reset_cptr_el2(&hyp_vcpu->vcpu);
|
hyp_vcpu->vcpu.arch.cptr_el2 = kvm_get_reset_cptr_el2(&hyp_vcpu->vcpu);
|
||||||
|
|
||||||
return ret;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
|
|
||||||
#include <asm/cpu-features.h>
|
#include <asm/cpu-features.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
#define _CRC32(crc, value, size, type) \
|
#define _CRC32(crc, value, size, type) \
|
||||||
do { \
|
do { \
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#ifndef _ASM_MICROBLAZE_FLAT_H
|
#ifndef _ASM_MICROBLAZE_FLAT_H
|
||||||
#define _ASM_MICROBLAZE_FLAT_H
|
#define _ASM_MICROBLAZE_FLAT_H
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Microblaze works a little differently from other arches, because
|
* Microblaze works a little differently from other arches, because
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include <linux/libfdt.h>
|
#include <linux/libfdt.h>
|
||||||
|
|
||||||
#include <asm/addrspace.h>
|
#include <asm/addrspace.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm-generic/vmlinux.lds.h>
|
#include <asm-generic/vmlinux.lds.h>
|
||||||
|
|
||||||
#include "decompress.h"
|
#include "decompress.h"
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <asm/mipsregs.h>
|
#include <asm/mipsregs.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* Copyright (C) 2019 Linaro Ltd. <ard.biesheuvel@linaro.org>
|
* Copyright (C) 2019 Linaro Ltd. <ard.biesheuvel@linaro.org>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/algapi.h>
|
#include <crypto/algapi.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <crypto/internal/poly1305.h>
|
#include <crypto/internal/poly1305.h>
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
|
|
||||||
#include <asm/traps.h>
|
#include <asm/traps.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
/* instructions we emulate */
|
/* instructions we emulate */
|
||||||
#define INST_LDHU 0x0b
|
#define INST_LDHU 0x0b
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include <linux/elf.h>
|
#include <linux/elf.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include "sizes.h"
|
#include "sizes.h"
|
||||||
|
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0 */
|
|
||||||
#ifndef _ASM_PARISC_UNALIGNED_H
|
|
||||||
#define _ASM_PARISC_UNALIGNED_H
|
|
||||||
|
|
||||||
#include <asm-generic/unaligned.h>
|
|
||||||
|
|
||||||
struct pt_regs;
|
|
||||||
void handle_unaligned(struct pt_regs *regs);
|
|
||||||
int check_unaligned(struct pt_regs *regs);
|
|
||||||
|
|
||||||
#endif /* _ASM_PARISC_UNALIGNED_H */
|
|
@ -36,7 +36,7 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/traps.h>
|
#include <asm/traps.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <linux/atomic.h>
|
#include <linux/atomic.h>
|
||||||
#include <asm/smp.h>
|
#include <asm/smp.h>
|
||||||
#include <asm/pdc.h>
|
#include <asm/pdc.h>
|
||||||
@ -47,6 +47,8 @@
|
|||||||
#include <linux/kgdb.h>
|
#include <linux/kgdb.h>
|
||||||
#include <linux/kprobes.h>
|
#include <linux/kprobes.h>
|
||||||
|
|
||||||
|
#include "unaligned.h"
|
||||||
|
|
||||||
#if defined(CONFIG_LIGHTWEIGHT_SPINLOCK_CHECK)
|
#if defined(CONFIG_LIGHTWEIGHT_SPINLOCK_CHECK)
|
||||||
#include <asm/spinlock.h>
|
#include <asm/spinlock.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -12,9 +12,10 @@
|
|||||||
#include <linux/ratelimit.h>
|
#include <linux/ratelimit.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include <linux/sysctl.h>
|
#include <linux/sysctl.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/hardirq.h>
|
#include <asm/hardirq.h>
|
||||||
#include <asm/traps.h>
|
#include <asm/traps.h>
|
||||||
|
#include "unaligned.h"
|
||||||
|
|
||||||
/* #define DEBUG_UNALIGNED 1 */
|
/* #define DEBUG_UNALIGNED 1 */
|
||||||
|
|
||||||
|
3
arch/parisc/kernel/unaligned.h
Normal file
3
arch/parisc/kernel/unaligned.h
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
struct pt_regs;
|
||||||
|
void handle_unaligned(struct pt_regs *regs);
|
||||||
|
int check_unaligned(struct pt_regs *regs);
|
@ -5,7 +5,7 @@
|
|||||||
* Copyright 2022- IBM Inc. All rights reserved
|
* Copyright 2022- IBM Inc. All rights reserved
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/switch_to.h>
|
#include <asm/switch_to.h>
|
||||||
#include <crypto/aes.h>
|
#include <crypto/aes.h>
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#include <crypto/internal/poly1305.h>
|
#include <crypto/internal/poly1305.h>
|
||||||
#include <crypto/internal/simd.h>
|
#include <crypto/internal/simd.h>
|
||||||
#include <linux/cpufeature.h>
|
#include <linux/cpufeature.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/switch_to.h>
|
#include <asm/switch_to.h>
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ endif
|
|||||||
|
|
||||||
ifneq ($(c-getrandom-y),)
|
ifneq ($(c-getrandom-y),)
|
||||||
CFLAGS_vgetrandom-32.o += -include $(c-getrandom-y)
|
CFLAGS_vgetrandom-32.o += -include $(c-getrandom-y)
|
||||||
CFLAGS_vgetrandom-64.o += -include $(c-getrandom-y) $(call cc-option, -ffixed-r30)
|
CFLAGS_vgetrandom-64.o += -include $(c-getrandom-y)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Build rules
|
# Build rules
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <uapi/linux/papr_pdsm.h>
|
#include <uapi/linux/papr_pdsm.h>
|
||||||
#include <linux/papr_scm.h>
|
#include <linux/papr_scm.h>
|
||||||
#include <asm/mce.h>
|
#include <asm/mce.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <linux/perf_event.h>
|
#include <linux/perf_event.h>
|
||||||
|
|
||||||
#define BIND_ANY_ADDR (~0ul)
|
#define BIND_ANY_ADDR (~0ul)
|
||||||
|
@ -777,8 +777,7 @@ config IRQ_STACKS
|
|||||||
config THREAD_SIZE_ORDER
|
config THREAD_SIZE_ORDER
|
||||||
int "Kernel stack size (in power-of-two numbers of page size)" if VMAP_STACK && EXPERT
|
int "Kernel stack size (in power-of-two numbers of page size)" if VMAP_STACK && EXPERT
|
||||||
range 0 4
|
range 0 4
|
||||||
default 1 if 32BIT && !KASAN
|
default 1 if 32BIT
|
||||||
default 3 if 64BIT && KASAN
|
|
||||||
default 2
|
default 2
|
||||||
help
|
help
|
||||||
Specify the Pages of thread stack size (from 4KB to 64KB), which also
|
Specify the Pages of thread stack size (from 4KB to 64KB), which also
|
||||||
|
@ -13,7 +13,12 @@
|
|||||||
#include <linux/sizes.h>
|
#include <linux/sizes.h>
|
||||||
|
|
||||||
/* thread information allocation */
|
/* thread information allocation */
|
||||||
#define THREAD_SIZE_ORDER CONFIG_THREAD_SIZE_ORDER
|
#ifdef CONFIG_KASAN
|
||||||
|
#define KASAN_STACK_ORDER 1
|
||||||
|
#else
|
||||||
|
#define KASAN_STACK_ORDER 0
|
||||||
|
#endif
|
||||||
|
#define THREAD_SIZE_ORDER (CONFIG_THREAD_SIZE_ORDER + KASAN_STACK_ORDER)
|
||||||
#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
|
#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#ifndef __ASM_SH_FLAT_H
|
#ifndef __ASM_SH_FLAT_H
|
||||||
#define __ASM_SH_FLAT_H
|
#define __ASM_SH_FLAT_H
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags,
|
static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags,
|
||||||
u32 *addr)
|
u32 *addr)
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include <asm/dwarf.h>
|
#include <asm/dwarf.h>
|
||||||
#include <asm/unwinder.h>
|
#include <asm/unwinder.h>
|
||||||
#include <asm/sections.h>
|
#include <asm/sections.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/stacktrace.h>
|
#include <asm/stacktrace.h>
|
||||||
|
|
||||||
/* Reserve enough memory for two stack frames */
|
/* Reserve enough memory for two stack frames */
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/dwarf.h>
|
#include <asm/dwarf.h>
|
||||||
|
|
||||||
int apply_relocate_add(Elf32_Shdr *sechdrs,
|
int apply_relocate_add(Elf32_Shdr *sechdrs,
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include <asm/pstate.h>
|
#include <asm/pstate.h>
|
||||||
#include <asm/elf.h>
|
#include <asm/elf.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
#include "opcodes.h"
|
#include "opcodes.h"
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#include <linux/virtio-uml.h>
|
#include <linux/virtio-uml.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/msi.h>
|
#include <linux/msi.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <irq_kern.h>
|
#include <irq_kern.h>
|
||||||
|
|
||||||
#define MAX_DEVICES 8
|
#define MAX_DEVICES 8
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#define __UM_UACCESS_H
|
#define __UM_UACCESS_H
|
||||||
|
|
||||||
#include <asm/elf.h>
|
#include <asm/elf.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
#define __under_task_size(addr, size) \
|
#define __under_task_size(addr, size) \
|
||||||
(((unsigned long) (addr) < TASK_SIZE) && \
|
(((unsigned long) (addr) < TASK_SIZE) && \
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
* Copyright (C) 2006 NTT (Nippon Telegraph and Telephone Corporation)
|
* Copyright (C) 2006 NTT (Nippon Telegraph and Telephone Corporation)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <linux/crypto.h>
|
#include <linux/crypto.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <crypto/internal/simd.h>
|
#include <crypto/internal/simd.h>
|
||||||
#include <asm/cpu_device_id.h>
|
#include <asm/cpu_device_id.h>
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
#define GHASH_BLOCK_SIZE 16
|
#define GHASH_BLOCK_SIZE 16
|
||||||
#define GHASH_DIGEST_SIZE 16
|
#define GHASH_DIGEST_SIZE 16
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
#ifndef _ASM_X86_FTRACE_H
|
#ifndef _ASM_X86_FTRACE_H
|
||||||
#define _ASM_X86_FTRACE_H
|
#define _ASM_X86_FTRACE_H
|
||||||
|
|
||||||
|
#include <asm/ptrace.h>
|
||||||
|
|
||||||
#ifdef CONFIG_FUNCTION_TRACER
|
#ifdef CONFIG_FUNCTION_TRACER
|
||||||
#ifndef CC_USING_FENTRY
|
#ifndef CC_USING_FENTRY
|
||||||
# error Compiler does not support fentry?
|
# error Compiler does not support fentry?
|
||||||
|
@ -26,7 +26,7 @@ void __noreturn machine_real_restart(unsigned int type);
|
|||||||
#define MRR_APM 1
|
#define MRR_APM 1
|
||||||
|
|
||||||
typedef void (cpu_emergency_virt_cb)(void);
|
typedef void (cpu_emergency_virt_cb)(void);
|
||||||
#if IS_ENABLED(CONFIG_KVM_INTEL) || IS_ENABLED(CONFIG_KVM_AMD)
|
#if IS_ENABLED(CONFIG_KVM_X86)
|
||||||
void cpu_emergency_register_virt_callback(cpu_emergency_virt_cb *callback);
|
void cpu_emergency_register_virt_callback(cpu_emergency_virt_cb *callback);
|
||||||
void cpu_emergency_unregister_virt_callback(cpu_emergency_virt_cb *callback);
|
void cpu_emergency_unregister_virt_callback(cpu_emergency_virt_cb *callback);
|
||||||
void cpu_emergency_disable_virtualization(void);
|
void cpu_emergency_disable_virtualization(void);
|
||||||
@ -34,7 +34,7 @@ void cpu_emergency_disable_virtualization(void);
|
|||||||
static inline void cpu_emergency_register_virt_callback(cpu_emergency_virt_cb *callback) {}
|
static inline void cpu_emergency_register_virt_callback(cpu_emergency_virt_cb *callback) {}
|
||||||
static inline void cpu_emergency_unregister_virt_callback(cpu_emergency_virt_cb *callback) {}
|
static inline void cpu_emergency_unregister_virt_callback(cpu_emergency_virt_cb *callback) {}
|
||||||
static inline void cpu_emergency_disable_virtualization(void) {}
|
static inline void cpu_emergency_disable_virtualization(void) {}
|
||||||
#endif /* CONFIG_KVM_INTEL || CONFIG_KVM_AMD */
|
#endif /* CONFIG_KVM_X86 */
|
||||||
|
|
||||||
typedef void (*nmi_shootdown_cb)(int, struct pt_regs*);
|
typedef void (*nmi_shootdown_cb)(int, struct pt_regs*);
|
||||||
void nmi_shootdown_cpus(nmi_shootdown_cb callback);
|
void nmi_shootdown_cpus(nmi_shootdown_cb callback);
|
||||||
|
@ -530,7 +530,7 @@ static inline void kb_wait(void)
|
|||||||
|
|
||||||
static inline void nmi_shootdown_cpus_on_restart(void);
|
static inline void nmi_shootdown_cpus_on_restart(void);
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_KVM_INTEL) || IS_ENABLED(CONFIG_KVM_AMD)
|
#if IS_ENABLED(CONFIG_KVM_X86)
|
||||||
/* RCU-protected callback to disable virtualization prior to reboot. */
|
/* RCU-protected callback to disable virtualization prior to reboot. */
|
||||||
static cpu_emergency_virt_cb __rcu *cpu_emergency_virt_callback;
|
static cpu_emergency_virt_cb __rcu *cpu_emergency_virt_callback;
|
||||||
|
|
||||||
@ -600,7 +600,7 @@ static void emergency_reboot_disable_virtualization(void)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
static void emergency_reboot_disable_virtualization(void) { }
|
static void emergency_reboot_disable_virtualization(void) { }
|
||||||
#endif /* CONFIG_KVM_INTEL || CONFIG_KVM_AMD */
|
#endif /* CONFIG_KVM_X86 */
|
||||||
|
|
||||||
void __attribute__((weak)) mach_reboot_fixups(void)
|
void __attribute__((weak)) mach_reboot_fixups(void)
|
||||||
{
|
{
|
||||||
|
@ -17,8 +17,8 @@ menuconfig VIRTUALIZATION
|
|||||||
|
|
||||||
if VIRTUALIZATION
|
if VIRTUALIZATION
|
||||||
|
|
||||||
config KVM
|
config KVM_X86
|
||||||
tristate "Kernel-based Virtual Machine (KVM) support"
|
def_tristate KVM if KVM_INTEL || KVM_AMD
|
||||||
depends on X86_LOCAL_APIC
|
depends on X86_LOCAL_APIC
|
||||||
select KVM_COMMON
|
select KVM_COMMON
|
||||||
select KVM_GENERIC_MMU_NOTIFIER
|
select KVM_GENERIC_MMU_NOTIFIER
|
||||||
@ -44,7 +44,11 @@ config KVM
|
|||||||
select HAVE_KVM_PM_NOTIFIER if PM
|
select HAVE_KVM_PM_NOTIFIER if PM
|
||||||
select KVM_GENERIC_HARDWARE_ENABLING
|
select KVM_GENERIC_HARDWARE_ENABLING
|
||||||
select KVM_GENERIC_PRE_FAULT_MEMORY
|
select KVM_GENERIC_PRE_FAULT_MEMORY
|
||||||
|
select KVM_GENERIC_PRIVATE_MEM if KVM_SW_PROTECTED_VM
|
||||||
select KVM_WERROR if WERROR
|
select KVM_WERROR if WERROR
|
||||||
|
|
||||||
|
config KVM
|
||||||
|
tristate "Kernel-based Virtual Machine (KVM) support"
|
||||||
help
|
help
|
||||||
Support hosting fully virtualized guest machines using hardware
|
Support hosting fully virtualized guest machines using hardware
|
||||||
virtualization extensions. You will need a fairly recent
|
virtualization extensions. You will need a fairly recent
|
||||||
@ -77,7 +81,6 @@ config KVM_SW_PROTECTED_VM
|
|||||||
bool "Enable support for KVM software-protected VMs"
|
bool "Enable support for KVM software-protected VMs"
|
||||||
depends on EXPERT
|
depends on EXPERT
|
||||||
depends on KVM && X86_64
|
depends on KVM && X86_64
|
||||||
select KVM_GENERIC_PRIVATE_MEM
|
|
||||||
help
|
help
|
||||||
Enable support for KVM software-protected VMs. Currently, software-
|
Enable support for KVM software-protected VMs. Currently, software-
|
||||||
protected VMs are purely a development and testing vehicle for
|
protected VMs are purely a development and testing vehicle for
|
||||||
|
@ -32,7 +32,7 @@ kvm-intel-y += vmx/vmx_onhyperv.o vmx/hyperv_evmcs.o
|
|||||||
kvm-amd-y += svm/svm_onhyperv.o
|
kvm-amd-y += svm/svm_onhyperv.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
obj-$(CONFIG_KVM) += kvm.o
|
obj-$(CONFIG_KVM_X86) += kvm.o
|
||||||
obj-$(CONFIG_KVM_INTEL) += kvm-intel.o
|
obj-$(CONFIG_KVM_INTEL) += kvm-intel.o
|
||||||
obj-$(CONFIG_KVM_AMD) += kvm-amd.o
|
obj-$(CONFIG_KVM_AMD) += kvm-amd.o
|
||||||
|
|
||||||
|
@ -1884,10 +1884,14 @@ static bool sp_has_gptes(struct kvm_mmu_page *sp)
|
|||||||
if (is_obsolete_sp((_kvm), (_sp))) { \
|
if (is_obsolete_sp((_kvm), (_sp))) { \
|
||||||
} else
|
} else
|
||||||
|
|
||||||
#define for_each_gfn_valid_sp_with_gptes(_kvm, _sp, _gfn) \
|
#define for_each_gfn_valid_sp(_kvm, _sp, _gfn) \
|
||||||
for_each_valid_sp(_kvm, _sp, \
|
for_each_valid_sp(_kvm, _sp, \
|
||||||
&(_kvm)->arch.mmu_page_hash[kvm_page_table_hashfn(_gfn)]) \
|
&(_kvm)->arch.mmu_page_hash[kvm_page_table_hashfn(_gfn)]) \
|
||||||
if ((_sp)->gfn != (_gfn) || !sp_has_gptes(_sp)) {} else
|
if ((_sp)->gfn != (_gfn)) {} else
|
||||||
|
|
||||||
|
#define for_each_gfn_valid_sp_with_gptes(_kvm, _sp, _gfn) \
|
||||||
|
for_each_gfn_valid_sp(_kvm, _sp, _gfn) \
|
||||||
|
if (!sp_has_gptes(_sp)) {} else
|
||||||
|
|
||||||
static bool kvm_sync_page_check(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
|
static bool kvm_sync_page_check(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
|
||||||
{
|
{
|
||||||
@ -7047,14 +7051,42 @@ void kvm_arch_flush_shadow_all(struct kvm *kvm)
|
|||||||
kvm_mmu_zap_all(kvm);
|
kvm_mmu_zap_all(kvm);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
static void kvm_mmu_zap_memslot_pages_and_flush(struct kvm *kvm,
|
||||||
* Zapping leaf SPTEs with memslot range when a memslot is moved/deleted.
|
struct kvm_memory_slot *slot,
|
||||||
*
|
bool flush)
|
||||||
* Zapping non-leaf SPTEs, a.k.a. not-last SPTEs, isn't required, worst
|
{
|
||||||
* case scenario we'll have unused shadow pages lying around until they
|
LIST_HEAD(invalid_list);
|
||||||
* are recycled due to age or when the VM is destroyed.
|
unsigned long i;
|
||||||
*/
|
|
||||||
static void kvm_mmu_zap_memslot_leafs(struct kvm *kvm, struct kvm_memory_slot *slot)
|
if (list_empty(&kvm->arch.active_mmu_pages))
|
||||||
|
goto out_flush;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Since accounting information is stored in struct kvm_arch_memory_slot,
|
||||||
|
* shadow pages deletion (e.g. unaccount_shadowed()) requires that all
|
||||||
|
* gfns with a shadow page have a corresponding memslot. Do so before
|
||||||
|
* the memslot goes away.
|
||||||
|
*/
|
||||||
|
for (i = 0; i < slot->npages; i++) {
|
||||||
|
struct kvm_mmu_page *sp;
|
||||||
|
gfn_t gfn = slot->base_gfn + i;
|
||||||
|
|
||||||
|
for_each_gfn_valid_sp(kvm, sp, gfn)
|
||||||
|
kvm_mmu_prepare_zap_page(kvm, sp, &invalid_list);
|
||||||
|
|
||||||
|
if (need_resched() || rwlock_needbreak(&kvm->mmu_lock)) {
|
||||||
|
kvm_mmu_remote_flush_or_zap(kvm, &invalid_list, flush);
|
||||||
|
flush = false;
|
||||||
|
cond_resched_rwlock_write(&kvm->mmu_lock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
out_flush:
|
||||||
|
kvm_mmu_remote_flush_or_zap(kvm, &invalid_list, flush);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void kvm_mmu_zap_memslot(struct kvm *kvm,
|
||||||
|
struct kvm_memory_slot *slot)
|
||||||
{
|
{
|
||||||
struct kvm_gfn_range range = {
|
struct kvm_gfn_range range = {
|
||||||
.slot = slot,
|
.slot = slot,
|
||||||
@ -7062,11 +7094,11 @@ static void kvm_mmu_zap_memslot_leafs(struct kvm *kvm, struct kvm_memory_slot *s
|
|||||||
.end = slot->base_gfn + slot->npages,
|
.end = slot->base_gfn + slot->npages,
|
||||||
.may_block = true,
|
.may_block = true,
|
||||||
};
|
};
|
||||||
|
bool flush;
|
||||||
|
|
||||||
write_lock(&kvm->mmu_lock);
|
write_lock(&kvm->mmu_lock);
|
||||||
if (kvm_unmap_gfn_range(kvm, &range))
|
flush = kvm_unmap_gfn_range(kvm, &range);
|
||||||
kvm_flush_remote_tlbs_memslot(kvm, slot);
|
kvm_mmu_zap_memslot_pages_and_flush(kvm, slot, flush);
|
||||||
|
|
||||||
write_unlock(&kvm->mmu_lock);
|
write_unlock(&kvm->mmu_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7082,7 +7114,7 @@ void kvm_arch_flush_shadow_memslot(struct kvm *kvm,
|
|||||||
if (kvm_memslot_flush_zap_all(kvm))
|
if (kvm_memslot_flush_zap_all(kvm))
|
||||||
kvm_mmu_zap_all_fast(kvm);
|
kvm_mmu_zap_all_fast(kvm);
|
||||||
else
|
else
|
||||||
kvm_mmu_zap_memslot_leafs(kvm, slot);
|
kvm_mmu_zap_memslot(kvm, slot);
|
||||||
}
|
}
|
||||||
|
|
||||||
void kvm_mmu_invalidate_mmio_sptes(struct kvm *kvm, u64 gen)
|
void kvm_mmu_invalidate_mmio_sptes(struct kvm *kvm, u64 gen)
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <asm/inat.h> /*__ignore_sync_check__ */
|
#include <asm/inat.h> /*__ignore_sync_check__ */
|
||||||
#include <asm/insn.h> /* __ignore_sync_check__ */
|
#include <asm/insn.h> /* __ignore_sync_check__ */
|
||||||
#include <asm/unaligned.h> /* __ignore_sync_check__ */
|
#include <linux/unaligned.h> /* __ignore_sync_check__ */
|
||||||
|
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/kconfig.h>
|
#include <linux/kconfig.h>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#ifndef __ASM_XTENSA_FLAT_H
|
#ifndef __ASM_XTENSA_FLAT_H
|
||||||
#define __ASM_XTENSA_FLAT_H
|
#define __ASM_XTENSA_FLAT_H
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags,
|
static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags,
|
||||||
u32 *addr)
|
u32 *addr)
|
||||||
|
@ -56,8 +56,7 @@ int blk_rq_count_integrity_sg(struct request_queue *q, struct bio *bio)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* blk_rq_map_integrity_sg - Map integrity metadata into a scatterlist
|
* blk_rq_map_integrity_sg - Map integrity metadata into a scatterlist
|
||||||
* @q: request queue
|
* @rq: request to map
|
||||||
* @bio: bio with integrity metadata attached
|
|
||||||
* @sglist: target scatterlist
|
* @sglist: target scatterlist
|
||||||
*
|
*
|
||||||
* Description: Map the integrity vectors in request into a
|
* Description: Map the integrity vectors in request into a
|
||||||
|
@ -3166,7 +3166,7 @@ static u64 ioc_qos_prfill(struct seq_file *sf, struct blkg_policy_data *pd,
|
|||||||
if (!dname)
|
if (!dname)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
spin_lock_irq(&ioc->lock);
|
spin_lock(&ioc->lock);
|
||||||
seq_printf(sf, "%s enable=%d ctrl=%s rpct=%u.%02u rlat=%u wpct=%u.%02u wlat=%u min=%u.%02u max=%u.%02u\n",
|
seq_printf(sf, "%s enable=%d ctrl=%s rpct=%u.%02u rlat=%u wpct=%u.%02u wlat=%u min=%u.%02u max=%u.%02u\n",
|
||||||
dname, ioc->enabled, ioc->user_qos_params ? "user" : "auto",
|
dname, ioc->enabled, ioc->user_qos_params ? "user" : "auto",
|
||||||
ioc->params.qos[QOS_RPPM] / 10000,
|
ioc->params.qos[QOS_RPPM] / 10000,
|
||||||
@ -3179,7 +3179,7 @@ static u64 ioc_qos_prfill(struct seq_file *sf, struct blkg_policy_data *pd,
|
|||||||
ioc->params.qos[QOS_MIN] % 10000 / 100,
|
ioc->params.qos[QOS_MIN] % 10000 / 100,
|
||||||
ioc->params.qos[QOS_MAX] / 10000,
|
ioc->params.qos[QOS_MAX] / 10000,
|
||||||
ioc->params.qos[QOS_MAX] % 10000 / 100);
|
ioc->params.qos[QOS_MAX] % 10000 / 100);
|
||||||
spin_unlock_irq(&ioc->lock);
|
spin_unlock(&ioc->lock);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3366,14 +3366,14 @@ static u64 ioc_cost_model_prfill(struct seq_file *sf,
|
|||||||
if (!dname)
|
if (!dname)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
spin_lock_irq(&ioc->lock);
|
spin_lock(&ioc->lock);
|
||||||
seq_printf(sf, "%s ctrl=%s model=linear "
|
seq_printf(sf, "%s ctrl=%s model=linear "
|
||||||
"rbps=%llu rseqiops=%llu rrandiops=%llu "
|
"rbps=%llu rseqiops=%llu rrandiops=%llu "
|
||||||
"wbps=%llu wseqiops=%llu wrandiops=%llu\n",
|
"wbps=%llu wseqiops=%llu wrandiops=%llu\n",
|
||||||
dname, ioc->user_cost_model ? "user" : "auto",
|
dname, ioc->user_cost_model ? "user" : "auto",
|
||||||
u[I_LCOEF_RBPS], u[I_LCOEF_RSEQIOPS], u[I_LCOEF_RRANDIOPS],
|
u[I_LCOEF_RBPS], u[I_LCOEF_RSEQIOPS], u[I_LCOEF_RRANDIOPS],
|
||||||
u[I_LCOEF_WBPS], u[I_LCOEF_WSEQIOPS], u[I_LCOEF_WRANDIOPS]);
|
u[I_LCOEF_WBPS], u[I_LCOEF_WSEQIOPS], u[I_LCOEF_WRANDIOPS]);
|
||||||
spin_unlock_irq(&ioc->lock);
|
spin_unlock(&ioc->lock);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <asm/byteorder.h>
|
#include <asm/byteorder.h>
|
||||||
|
|
||||||
struct parsed_partitions;
|
struct parsed_partitions;
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
* the nr_sects and start_sect partition table entries are
|
* the nr_sects and start_sect partition table entries are
|
||||||
* at a 2 (mod 4) address.
|
* at a 2 (mod 4) address.
|
||||||
*/
|
*/
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
static inline sector_t nr_sects(struct msdos_partition *p)
|
static inline sector_t nr_sects(struct msdos_partition *p)
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#include <linux/crc-t10dif.h>
|
#include <linux/crc-t10dif.h>
|
||||||
#include <linux/crc64.h>
|
#include <linux/crc64.h>
|
||||||
#include <net/checksum.h>
|
#include <net/checksum.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include "blk.h"
|
#include "blk.h"
|
||||||
|
|
||||||
struct blk_integrity_iter {
|
struct blk_integrity_iter {
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <asm/byteorder.h>
|
#include <asm/byteorder.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
static inline u8 byte(const u32 x, const unsigned n)
|
static inline u8 byte(const u32 x, const unsigned n)
|
||||||
{
|
{
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
* More information about BLAKE2 can be found at https://blake2.net.
|
* More information about BLAKE2 can be found at https://blake2.net.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <crypto/blowfish.h>
|
#include <crypto/blowfish.h>
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
static const u32 camellia_sp1110[256] = {
|
static const u32 camellia_sp1110[256] = {
|
||||||
0x70707000, 0x82828200, 0x2c2c2c00, 0xececec00,
|
0x70707000, 0x82828200, 0x2c2c2c00, 0xececec00,
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/algapi.h>
|
#include <crypto/algapi.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/algapi.h>
|
#include <crypto/algapi.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* Copyright (C) 2018 Google LLC
|
* Copyright (C) 2018 Google LLC
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/algapi.h>
|
#include <crypto/algapi.h>
|
||||||
#include <crypto/internal/chacha.h>
|
#include <crypto/internal/chacha.h>
|
||||||
#include <crypto/internal/skcipher.h>
|
#include <crypto/internal/skcipher.h>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* This is crypto api shash wrappers to crc32_le.
|
* This is crypto api shash wrappers to crc32_le.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <linux/crc32.h>
|
#include <linux/crc32.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
* Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
* Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#include <linux/crc64.h>
|
#include <linux/crc64.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
|
|
||||||
static int chksum_init(struct shash_desc *desc)
|
static int chksum_init(struct shash_desc *desc)
|
||||||
{
|
{
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
#include <crypto/ecdh.h>
|
#include <crypto/ecdh.h>
|
||||||
#include <crypto/rng.h>
|
#include <crypto/rng.h>
|
||||||
#include <crypto/internal/ecc.h>
|
#include <crypto/internal/ecc.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <linux/ratelimit.h>
|
#include <linux/ratelimit.h>
|
||||||
|
|
||||||
#include "ecc_curve_defs.h"
|
#include "ecc_curve_defs.h"
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Copyright (c) 2004 Jouni Malinen <j@w1.fi>
|
* Copyright (c) 2004 Jouni Malinen <j@w1.fi>
|
||||||
*/
|
*/
|
||||||
#include <crypto/internal/hash.h>
|
#include <crypto/internal/hash.h>
|
||||||
#include <asm/unaligned.h>
|
#include <linux/unaligned.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user