aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/admin-guide/kernel-parameters.txt2
-rw-r--r--Documentation/admin-guide/security-bugs.rst21
-rw-r--r--Documentation/core-api/xarray.rst52
-rw-r--r--Documentation/devicetree/bindings/net/can/holt_hi311x.txt2
-rw-r--r--Documentation/devicetree/bindings/net/can/rcar_can.txt28
-rw-r--r--Documentation/devicetree/bindings/net/dsa/dsa.txt2
-rw-r--r--Documentation/input/event-codes.rst11
-rw-r--r--Documentation/media/uapi/v4l/dev-meta.rst2
-rw-r--r--Documentation/media/uapi/v4l/vidioc-g-fmt.rst5
-rw-r--r--Documentation/networking/rxrpc.txt17
10 files changed, 92 insertions, 50 deletions
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 81d1d5a74728..19f4423e70d9 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -4713,6 +4713,8 @@
4713 prevent spurious wakeup); 4713 prevent spurious wakeup);
4714 n = USB_QUIRK_DELAY_CTRL_MSG (Device needs a 4714 n = USB_QUIRK_DELAY_CTRL_MSG (Device needs a
4715 pause after every control message); 4715 pause after every control message);
4716 o = USB_QUIRK_HUB_SLOW_RESET (Hub needs extra
4717 delay after resetting its port);
4716 Example: quirks=0781:5580:bk,0a5c:5834:gij 4718 Example: quirks=0781:5580:bk,0a5c:5834:gij
4717 4719
4718 usbhid.mousepoll= 4720 usbhid.mousepoll=
diff --git a/Documentation/admin-guide/security-bugs.rst b/Documentation/admin-guide/security-bugs.rst
index 164bf71149fd..30187d49dc2c 100644
--- a/Documentation/admin-guide/security-bugs.rst
+++ b/Documentation/admin-guide/security-bugs.rst
@@ -32,16 +32,17 @@ Disclosure and embargoed information
32The security list is not a disclosure channel. For that, see Coordination 32The security list is not a disclosure channel. For that, see Coordination
33below. 33below.
34 34
35Once a robust fix has been developed, our preference is to release the 35Once a robust fix has been developed, the release process starts. Fixes
36fix in a timely fashion, treating it no differently than any of the other 36for publicly known bugs are released immediately.
37thousands of changes and fixes the Linux kernel project releases every 37
38month. 38Although our preference is to release fixes for publicly undisclosed bugs
39 39as soon as they become available, this may be postponed at the request of
40However, at the request of the reporter, we will postpone releasing the 40the reporter or an affected party for up to 7 calendar days from the start
41fix for up to 5 business days after the date of the report or after the 41of the release process, with an exceptional extension to 14 calendar days
42embargo has lifted; whichever comes first. The only exception to that 42if it is agreed that the criticality of the bug requires more time. The
43rule is if the bug is publicly known, in which case the preference is to 43only valid reason for deferring the publication of a fix is to accommodate
44release the fix as soon as it's available. 44the logistics of QA and large scale rollouts which require release
45coordination.
45 46
46Whilst embargoed information may be shared with trusted individuals in 47Whilst embargoed information may be shared with trusted individuals in
47order to develop a fix, such information will not be published alongside 48order to develop a fix, such information will not be published alongside
diff --git a/Documentation/core-api/xarray.rst b/Documentation/core-api/xarray.rst
index a4e705108f42..dbe96cb5558e 100644
--- a/Documentation/core-api/xarray.rst
+++ b/Documentation/core-api/xarray.rst
@@ -74,7 +74,8 @@ using :c:func:`xa_load`. xa_store will overwrite any entry with the
74new entry and return the previous entry stored at that index. You can 74new entry and return the previous entry stored at that index. You can
75use :c:func:`xa_erase` instead of calling :c:func:`xa_store` with a 75use :c:func:`xa_erase` instead of calling :c:func:`xa_store` with a
76``NULL`` entry. There is no difference between an entry that has never 76``NULL`` entry. There is no difference between an entry that has never
77been stored to and one that has most recently had ``NULL`` stored to it. 77been stored to, one that has been erased and one that has most recently
78had ``NULL`` stored to it.
78 79
79You can conditionally replace an entry at an index by using 80You can conditionally replace an entry at an index by using
80:c:func:`xa_cmpxchg`. Like :c:func:`cmpxchg`, it will only succeed if 81:c:func:`xa_cmpxchg`. Like :c:func:`cmpxchg`, it will only succeed if
@@ -105,23 +106,44 @@ may result in the entry being marked at some, but not all of the other
105indices. Storing into one index may result in the entry retrieved by 106indices. Storing into one index may result in the entry retrieved by
106some, but not all of the other indices changing. 107some, but not all of the other indices changing.
107 108
109Sometimes you need to ensure that a subsequent call to :c:func:`xa_store`
110will not need to allocate memory. The :c:func:`xa_reserve` function
111will store a reserved entry at the indicated index. Users of the normal
112API will see this entry as containing ``NULL``. If you do not need to
113use the reserved entry, you can call :c:func:`xa_release` to remove the
114unused entry. If another user has stored to the entry in the meantime,
115:c:func:`xa_release` will do nothing; if instead you want the entry to
116become ``NULL``, you should use :c:func:`xa_erase`.
117
118If all entries in the array are ``NULL``, the :c:func:`xa_empty` function
119will return ``true``.
120
108Finally, you can remove all entries from an XArray by calling 121Finally, you can remove all entries from an XArray by calling
109:c:func:`xa_destroy`. If the XArray entries are pointers, you may wish 122:c:func:`xa_destroy`. If the XArray entries are pointers, you may wish
110to free the entries first. You can do this by iterating over all present 123to free the entries first. You can do this by iterating over all present
111entries in the XArray using the :c:func:`xa_for_each` iterator. 124entries in the XArray using the :c:func:`xa_for_each` iterator.
112 125
113ID assignment 126Allocating XArrays
114------------- 127------------------
128
129If you use :c:func:`DEFINE_XARRAY_ALLOC` to define the XArray, or
130initialise it by passing ``XA_FLAGS_ALLOC`` to :c:func:`xa_init_flags`,
131the XArray changes to track whether entries are in use or not.
115 132
116You can call :c:func:`xa_alloc` to store the entry at any unused index 133You can call :c:func:`xa_alloc` to store the entry at any unused index
117in the XArray. If you need to modify the array from interrupt context, 134in the XArray. If you need to modify the array from interrupt context,
118you can use :c:func:`xa_alloc_bh` or :c:func:`xa_alloc_irq` to disable 135you can use :c:func:`xa_alloc_bh` or :c:func:`xa_alloc_irq` to disable
119interrupts while allocating the ID. Unlike :c:func:`xa_store`, allocating 136interrupts while allocating the ID.
120a ``NULL`` pointer does not delete an entry. Instead it reserves an 137
121entry like :c:func:`xa_reserve` and you can release it using either 138Using :c:func:`xa_store`, :c:func:`xa_cmpxchg` or :c:func:`xa_insert`
122:c:func:`xa_erase` or :c:func:`xa_release`. To use ID assignment, the 139will mark the entry as being allocated. Unlike a normal XArray, storing
123XArray must be defined with :c:func:`DEFINE_XARRAY_ALLOC`, or initialised 140``NULL`` will mark the entry as being in use, like :c:func:`xa_reserve`.
124by passing ``XA_FLAGS_ALLOC`` to :c:func:`xa_init_flags`, 141To free an entry, use :c:func:`xa_erase` (or :c:func:`xa_release` if
142you only want to free the entry if it's ``NULL``).
143
144You cannot use ``XA_MARK_0`` with an allocating XArray as this mark
145is used to track whether an entry is free or not. The other marks are
146available for your use.
125 147
126Memory allocation 148Memory allocation
127----------------- 149-----------------
@@ -158,6 +180,8 @@ Takes RCU read lock:
158 180
159Takes xa_lock internally: 181Takes xa_lock internally:
160 * :c:func:`xa_store` 182 * :c:func:`xa_store`
183 * :c:func:`xa_store_bh`
184 * :c:func:`xa_store_irq`
161 * :c:func:`xa_insert` 185 * :c:func:`xa_insert`
162 * :c:func:`xa_erase` 186 * :c:func:`xa_erase`
163 * :c:func:`xa_erase_bh` 187 * :c:func:`xa_erase_bh`
@@ -167,6 +191,9 @@ Takes xa_lock internally:
167 * :c:func:`xa_alloc` 191 * :c:func:`xa_alloc`
168 * :c:func:`xa_alloc_bh` 192 * :c:func:`xa_alloc_bh`
169 * :c:func:`xa_alloc_irq` 193 * :c:func:`xa_alloc_irq`
194 * :c:func:`xa_reserve`
195 * :c:func:`xa_reserve_bh`
196 * :c:func:`xa_reserve_irq`
170 * :c:func:`xa_destroy` 197 * :c:func:`xa_destroy`
171 * :c:func:`xa_set_mark` 198 * :c:func:`xa_set_mark`
172 * :c:func:`xa_clear_mark` 199 * :c:func:`xa_clear_mark`
@@ -177,6 +204,7 @@ Assumes xa_lock held on entry:
177 * :c:func:`__xa_erase` 204 * :c:func:`__xa_erase`
178 * :c:func:`__xa_cmpxchg` 205 * :c:func:`__xa_cmpxchg`
179 * :c:func:`__xa_alloc` 206 * :c:func:`__xa_alloc`
207 * :c:func:`__xa_reserve`
180 * :c:func:`__xa_set_mark` 208 * :c:func:`__xa_set_mark`
181 * :c:func:`__xa_clear_mark` 209 * :c:func:`__xa_clear_mark`
182 210
@@ -234,7 +262,8 @@ Sharing the XArray with interrupt context is also possible, either
234using :c:func:`xa_lock_irqsave` in both the interrupt handler and process 262using :c:func:`xa_lock_irqsave` in both the interrupt handler and process
235context, or :c:func:`xa_lock_irq` in process context and :c:func:`xa_lock` 263context, or :c:func:`xa_lock_irq` in process context and :c:func:`xa_lock`
236in the interrupt handler. Some of the more common patterns have helper 264in the interrupt handler. Some of the more common patterns have helper
237functions such as :c:func:`xa_erase_bh` and :c:func:`xa_erase_irq`. 265functions such as :c:func:`xa_store_bh`, :c:func:`xa_store_irq`,
266:c:func:`xa_erase_bh` and :c:func:`xa_erase_irq`.
238 267
239Sometimes you need to protect access to the XArray with a mutex because 268Sometimes you need to protect access to the XArray with a mutex because
240that lock sits above another mutex in the locking hierarchy. That does 269that lock sits above another mutex in the locking hierarchy. That does
@@ -322,7 +351,8 @@ to :c:func:`xas_retry`, and retry the operation if it returns ``true``.
322 - :c:func:`xa_is_zero` 351 - :c:func:`xa_is_zero`
323 - Zero entries appear as ``NULL`` through the Normal API, but occupy 352 - Zero entries appear as ``NULL`` through the Normal API, but occupy
324 an entry in the XArray which can be used to reserve the index for 353 an entry in the XArray which can be used to reserve the index for
325 future use. 354 future use. This is used by allocating XArrays for allocated entries
355 which are ``NULL``.
326 356
327Other internal entries may be added in the future. As far as possible, they 357Other internal entries may be added in the future. As far as possible, they
328will be handled by :c:func:`xas_retry`. 358will be handled by :c:func:`xas_retry`.
diff --git a/Documentation/devicetree/bindings/net/can/holt_hi311x.txt b/Documentation/devicetree/bindings/net/can/holt_hi311x.txt
index 903a78da65be..3a9926f99937 100644
--- a/Documentation/devicetree/bindings/net/can/holt_hi311x.txt
+++ b/Documentation/devicetree/bindings/net/can/holt_hi311x.txt
@@ -17,7 +17,7 @@ Example:
17 reg = <1>; 17 reg = <1>;
18 clocks = <&clk32m>; 18 clocks = <&clk32m>;
19 interrupt-parent = <&gpio4>; 19 interrupt-parent = <&gpio4>;
20 interrupts = <13 IRQ_TYPE_EDGE_RISING>; 20 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
21 vdd-supply = <&reg5v0>; 21 vdd-supply = <&reg5v0>;
22 xceiver-supply = <&reg5v0>; 22 xceiver-supply = <&reg5v0>;
23 }; 23 };
diff --git a/Documentation/devicetree/bindings/net/can/rcar_can.txt b/Documentation/devicetree/bindings/net/can/rcar_can.txt
index cc4372842bf3..9936b9ee67c3 100644
--- a/Documentation/devicetree/bindings/net/can/rcar_can.txt
+++ b/Documentation/devicetree/bindings/net/can/rcar_can.txt
@@ -5,6 +5,7 @@ Required properties:
5- compatible: "renesas,can-r8a7743" if CAN controller is a part of R8A7743 SoC. 5- compatible: "renesas,can-r8a7743" if CAN controller is a part of R8A7743 SoC.
6 "renesas,can-r8a7744" if CAN controller is a part of R8A7744 SoC. 6 "renesas,can-r8a7744" if CAN controller is a part of R8A7744 SoC.
7 "renesas,can-r8a7745" if CAN controller is a part of R8A7745 SoC. 7 "renesas,can-r8a7745" if CAN controller is a part of R8A7745 SoC.
8 "renesas,can-r8a774a1" if CAN controller is a part of R8A774A1 SoC.
8 "renesas,can-r8a7778" if CAN controller is a part of R8A7778 SoC. 9 "renesas,can-r8a7778" if CAN controller is a part of R8A7778 SoC.
9 "renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC. 10 "renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC.
10 "renesas,can-r8a7790" if CAN controller is a part of R8A7790 SoC. 11 "renesas,can-r8a7790" if CAN controller is a part of R8A7790 SoC.
@@ -14,26 +15,32 @@ Required properties:
14 "renesas,can-r8a7794" if CAN controller is a part of R8A7794 SoC. 15 "renesas,can-r8a7794" if CAN controller is a part of R8A7794 SoC.
15 "renesas,can-r8a7795" if CAN controller is a part of R8A7795 SoC. 16 "renesas,can-r8a7795" if CAN controller is a part of R8A7795 SoC.
16 "renesas,can-r8a7796" if CAN controller is a part of R8A7796 SoC. 17 "renesas,can-r8a7796" if CAN controller is a part of R8A7796 SoC.
18 "renesas,can-r8a77965" if CAN controller is a part of R8A77965 SoC.
17 "renesas,rcar-gen1-can" for a generic R-Car Gen1 compatible device. 19 "renesas,rcar-gen1-can" for a generic R-Car Gen1 compatible device.
18 "renesas,rcar-gen2-can" for a generic R-Car Gen2 or RZ/G1 20 "renesas,rcar-gen2-can" for a generic R-Car Gen2 or RZ/G1
19 compatible device. 21 compatible device.
20 "renesas,rcar-gen3-can" for a generic R-Car Gen3 compatible device. 22 "renesas,rcar-gen3-can" for a generic R-Car Gen3 or RZ/G2
23 compatible device.
21 When compatible with the generic version, nodes must list the 24 When compatible with the generic version, nodes must list the
22 SoC-specific version corresponding to the platform first 25 SoC-specific version corresponding to the platform first
23 followed by the generic version. 26 followed by the generic version.
24 27
25- reg: physical base address and size of the R-Car CAN register map. 28- reg: physical base address and size of the R-Car CAN register map.
26- interrupts: interrupt specifier for the sole interrupt. 29- interrupts: interrupt specifier for the sole interrupt.
27- clocks: phandles and clock specifiers for 3 CAN clock inputs. 30- clocks: phandles and clock specifiers for 2 CAN clock inputs for RZ/G2
28- clock-names: 3 clock input name strings: "clkp1", "clkp2", "can_clk". 31 devices.
32 phandles and clock specifiers for 3 CAN clock inputs for every other
33 SoC.
34- clock-names: 2 clock input name strings for RZ/G2: "clkp1", "can_clk".
35 3 clock input name strings for every other SoC: "clkp1", "clkp2",
36 "can_clk".
29- pinctrl-0: pin control group to be used for this controller. 37- pinctrl-0: pin control group to be used for this controller.
30- pinctrl-names: must be "default". 38- pinctrl-names: must be "default".
31 39
32Required properties for "renesas,can-r8a7795" and "renesas,can-r8a7796" 40Required properties for R8A7795, R8A7796 and R8A77965:
33compatible: 41For the denoted SoCs, "clkp2" can be CANFD clock. This is a div6 clock and can
34In R8A7795 and R8A7796 SoCs, "clkp2" can be CANFD clock. This is a div6 clock 42be used by both CAN and CAN FD controller at the same time. It needs to be
35and can be used by both CAN and CAN FD controller at the same time. It needs to 43scaled to maximum frequency if any of these controllers use it. This is done
36be scaled to maximum frequency if any of these controllers use it. This is done
37using the below properties: 44using the below properties:
38 45
39- assigned-clocks: phandle of clkp2(CANFD) clock. 46- assigned-clocks: phandle of clkp2(CANFD) clock.
@@ -42,8 +49,9 @@ using the below properties:
42Optional properties: 49Optional properties:
43- renesas,can-clock-select: R-Car CAN Clock Source Select. Valid values are: 50- renesas,can-clock-select: R-Car CAN Clock Source Select. Valid values are:
44 <0x0> (default) : Peripheral clock (clkp1) 51 <0x0> (default) : Peripheral clock (clkp1)
45 <0x1> : Peripheral clock (clkp2) 52 <0x1> : Peripheral clock (clkp2) (not supported by
46 <0x3> : Externally input clock 53 RZ/G2 devices)
54 <0x3> : External input clock
47 55
48Example 56Example
49------- 57-------
diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.txt b/Documentation/devicetree/bindings/net/dsa/dsa.txt
index 3ceeb8de1196..35694c0c376b 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa.txt
+++ b/Documentation/devicetree/bindings/net/dsa/dsa.txt
@@ -7,7 +7,7 @@ limitations.
7Current Binding 7Current Binding
8--------------- 8---------------
9 9
10Switches are true Linux devices and can be probes by any means. Once 10Switches are true Linux devices and can be probed by any means. Once
11probed, they register to the DSA framework, passing a node 11probed, they register to the DSA framework, passing a node
12pointer. This node is expected to fulfil the following binding, and 12pointer. This node is expected to fulfil the following binding, and
13may contain additional properties as required by the device it is 13may contain additional properties as required by the device it is
diff --git a/Documentation/input/event-codes.rst b/Documentation/input/event-codes.rst
index cef220c176a4..a8c0873beb95 100644
--- a/Documentation/input/event-codes.rst
+++ b/Documentation/input/event-codes.rst
@@ -190,16 +190,7 @@ A few EV_REL codes have special meanings:
190* REL_WHEEL, REL_HWHEEL: 190* REL_WHEEL, REL_HWHEEL:
191 191
192 - These codes are used for vertical and horizontal scroll wheels, 192 - These codes are used for vertical and horizontal scroll wheels,
193 respectively. The value is the number of "notches" moved on the wheel, the 193 respectively.
194 physical size of which varies by device. For high-resolution wheels (which
195 report multiple events for each notch of movement, or do not have notches)
196 this may be an approximation based on the high-resolution scroll events.
197
198* REL_WHEEL_HI_RES:
199
200 - If a vertical scroll wheel supports high-resolution scrolling, this code
201 will be emitted in addition to REL_WHEEL. The value is the (approximate)
202 distance travelled by the user's finger, in microns.
203 194
204EV_ABS 195EV_ABS
205------ 196------
diff --git a/Documentation/media/uapi/v4l/dev-meta.rst b/Documentation/media/uapi/v4l/dev-meta.rst
index f7ac8d0d3af1..b65dc078abeb 100644
--- a/Documentation/media/uapi/v4l/dev-meta.rst
+++ b/Documentation/media/uapi/v4l/dev-meta.rst
@@ -40,7 +40,7 @@ To use the :ref:`format` ioctls applications set the ``type`` field of the
40the desired operation. Both drivers and applications must set the remainder of 40the desired operation. Both drivers and applications must set the remainder of
41the :c:type:`v4l2_format` structure to 0. 41the :c:type:`v4l2_format` structure to 0.
42 42
43.. _v4l2-meta-format: 43.. c:type:: v4l2_meta_format
44 44
45.. tabularcolumns:: |p{1.4cm}|p{2.2cm}|p{13.9cm}| 45.. tabularcolumns:: |p{1.4cm}|p{2.2cm}|p{13.9cm}|
46 46
diff --git a/Documentation/media/uapi/v4l/vidioc-g-fmt.rst b/Documentation/media/uapi/v4l/vidioc-g-fmt.rst
index 3ead350e099f..9ea494a8faca 100644
--- a/Documentation/media/uapi/v4l/vidioc-g-fmt.rst
+++ b/Documentation/media/uapi/v4l/vidioc-g-fmt.rst
@@ -133,6 +133,11 @@ The format as returned by :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` must be identical
133 - Definition of a data format, see :ref:`pixfmt`, used by SDR 133 - Definition of a data format, see :ref:`pixfmt`, used by SDR
134 capture and output devices. 134 capture and output devices.
135 * - 135 * -
136 - struct :c:type:`v4l2_meta_format`
137 - ``meta``
138 - Definition of a metadata format, see :ref:`meta-formats`, used by
139 metadata capture devices.
140 * -
136 - __u8 141 - __u8
137 - ``raw_data``\ [200] 142 - ``raw_data``\ [200]
138 - Place holder for future extensions. 143 - Place holder for future extensions.
diff --git a/Documentation/networking/rxrpc.txt b/Documentation/networking/rxrpc.txt
index 605e00cdd6be..89f1302d593a 100644
--- a/Documentation/networking/rxrpc.txt
+++ b/Documentation/networking/rxrpc.txt
@@ -1056,18 +1056,23 @@ The kernel interface functions are as follows:
1056 1056
1057 u32 rxrpc_kernel_check_life(struct socket *sock, 1057 u32 rxrpc_kernel_check_life(struct socket *sock,
1058 struct rxrpc_call *call); 1058 struct rxrpc_call *call);
1059 void rxrpc_kernel_probe_life(struct socket *sock,
1060 struct rxrpc_call *call);
1059 1061
1060 This returns a number that is updated when ACKs are received from the peer 1062 The first function returns a number that is updated when ACKs are received
1061 (notably including PING RESPONSE ACKs which we can elicit by sending PING 1063 from the peer (notably including PING RESPONSE ACKs which we can elicit by
1062 ACKs to see if the call still exists on the server). The caller should 1064 sending PING ACKs to see if the call still exists on the server). The
1063 compare the numbers of two calls to see if the call is still alive after 1065 caller should compare the numbers of two calls to see if the call is still
1064 waiting for a suitable interval. 1066 alive after waiting for a suitable interval.
1065 1067
1066 This allows the caller to work out if the server is still contactable and 1068 This allows the caller to work out if the server is still contactable and
1067 if the call is still alive on the server whilst waiting for the server to 1069 if the call is still alive on the server whilst waiting for the server to
1068 process a client operation. 1070 process a client operation.
1069 1071
1070 This function may transmit a PING ACK. 1072 The second function causes a ping ACK to be transmitted to try to provoke
1073 the peer into responding, which would then cause the value returned by the
1074 first function to change. Note that this must be called in TASK_RUNNING
1075 state.
1071 1076
1072 (*) Get reply timestamp. 1077 (*) Get reply timestamp.
1073 1078