Skip to content

Commit 12e2c41

Browse files
author
Ingo Molnar
committed
Merge branch 'linus' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <[email protected]>
2 parents c427f69 + 1504269 commit 12e2c41

File tree

370 files changed

+3144
-1747
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

370 files changed

+3144
-1747
lines changed

Documentation/bpf/bpf_devel_QA.txt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -557,6 +557,14 @@ A: Although LLVM IR generation and optimization try to stay architecture
557557
pulls in some header files containing file scope host assembly codes.
558558
- You can add "-fno-jump-tables" to work around the switch table issue.
559559

560-
Otherwise, you can use bpf target.
560+
Otherwise, you can use bpf target. Additionally, you _must_ use bpf target
561+
when:
562+
563+
- Your program uses data structures with pointer or long / unsigned long
564+
types that interface with BPF helpers or context data structures. Access
565+
into these structures is verified by the BPF verifier and may result
566+
in verification failures if the native architecture is not aligned with
567+
the BPF architecture, e.g. 64-bit. An example of this is
568+
BPF_PROG_TYPE_SK_MSG require '-target bpf'
561569

562570
Happy BPF hacking!

Documentation/devicetree/bindings/input/atmel,maxtouch.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ Required properties:
44
- compatible:
55
atmel,maxtouch
66

7+
The following compatibles have been used in various products but are
8+
deprecated:
9+
atmel,qt602240_ts
10+
atmel,atmel_mxt_ts
11+
atmel,atmel_mxt_tp
12+
atmel,mXT224
13+
714
- reg: The I2C address of the device
815

916
- interrupts: The sink for the touchpad's IRQ output

Documentation/devicetree/bindings/serial/amlogic,meson-uart.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Required properties:
2121
- interrupts : identifier to the device interrupt
2222
- clocks : a list of phandle + clock-specifier pairs, one for each
2323
entry in clock names.
24-
- clocks-names :
24+
- clock-names :
2525
* "xtal" for external xtal clock identifier
2626
* "pclk" for the bus core clock, either the clk81 clock or the gate clock
2727
* "baud" for the source of the baudrate generator, can be either the xtal

Documentation/devicetree/bindings/serial/mvebu-uart.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Required properties:
2424
- Must contain two elements for the extended variant of the IP
2525
(marvell,armada-3700-uart-ext): "uart-tx" and "uart-rx",
2626
respectively the UART TX interrupt and the UART RX interrupt. A
27-
corresponding interrupts-names property must be defined.
27+
corresponding interrupt-names property must be defined.
2828
- For backward compatibility reasons, a single element interrupts
2929
property is also supported for the standard variant of the IP,
3030
containing only the UART sum interrupt. This form is deprecated

Documentation/devicetree/bindings/serial/renesas,sci-serial.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ Required properties:
1717
- "renesas,scifa-r8a7745" for R8A7745 (RZ/G1E) SCIFA compatible UART.
1818
- "renesas,scifb-r8a7745" for R8A7745 (RZ/G1E) SCIFB compatible UART.
1919
- "renesas,hscif-r8a7745" for R8A7745 (RZ/G1E) HSCIF compatible UART.
20+
- "renesas,scif-r8a77470" for R8A77470 (RZ/G1C) SCIF compatible UART.
21+
- "renesas,hscif-r8a77470" for R8A77470 (RZ/G1C) HSCIF compatible UART.
2022
- "renesas,scif-r8a7778" for R8A7778 (R-Car M1) SCIF compatible UART.
2123
- "renesas,scif-r8a7779" for R8A7779 (R-Car H1) SCIF compatible UART.
2224
- "renesas,scif-r8a7790" for R8A7790 (R-Car H2) SCIF compatible UART.

Documentation/devicetree/bindings/usb/usb-xhci.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ Required properties:
2828
- interrupts: one XHCI interrupt should be described here.
2929

3030
Optional properties:
31-
- clocks: reference to a clock
31+
- clocks: reference to the clocks
32+
- clock-names: mandatory if there is a second clock, in this case
33+
the name must be "core" for the first clock and "reg" for the
34+
second one
3235
- usb2-lpm-disable: indicate if we don't want to enable USB2 HW LPM
3336
- usb3-lpm-capable: determines if platform is USB3 LPM capable
3437
- quirk-broken-port-ped: set if the controller has broken port disable mechanism

Documentation/driver-api/firmware/request_firmware.rst

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@ an error is returned.
1717

1818
request_firmware
1919
----------------
20-
.. kernel-doc:: drivers/base/firmware_class.c
20+
.. kernel-doc:: drivers/base/firmware_loader/main.c
2121
:functions: request_firmware
2222

2323
request_firmware_direct
2424
-----------------------
25-
.. kernel-doc:: drivers/base/firmware_class.c
25+
.. kernel-doc:: drivers/base/firmware_loader/main.c
2626
:functions: request_firmware_direct
2727

2828
request_firmware_into_buf
2929
-------------------------
30-
.. kernel-doc:: drivers/base/firmware_class.c
30+
.. kernel-doc:: drivers/base/firmware_loader/main.c
3131
:functions: request_firmware_into_buf
3232

3333
Asynchronous firmware requests
@@ -41,7 +41,7 @@ in atomic contexts.
4141

4242
request_firmware_nowait
4343
-----------------------
44-
.. kernel-doc:: drivers/base/firmware_class.c
44+
.. kernel-doc:: drivers/base/firmware_loader/main.c
4545
:functions: request_firmware_nowait
4646

4747
Special optimizations on reboot
@@ -50,12 +50,12 @@ Special optimizations on reboot
5050
Some devices have an optimization in place to enable the firmware to be
5151
retained during system reboot. When such optimizations are used the driver
5252
author must ensure the firmware is still available on resume from suspend,
53-
this can be done with firmware_request_cache() insted of requesting for the
54-
firmare to be loaded.
53+
this can be done with firmware_request_cache() instead of requesting for the
54+
firmware to be loaded.
5555

5656
firmware_request_cache()
57-
-----------------------
58-
.. kernel-doc:: drivers/base/firmware_class.c
57+
------------------------
58+
.. kernel-doc:: drivers/base/firmware_loader/main.c
5959
:functions: firmware_request_cache
6060

6161
request firmware API expected driver use

Documentation/driver-api/infrastructure.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Device Drivers Base
2828
.. kernel-doc:: drivers/base/node.c
2929
:internal:
3030

31-
.. kernel-doc:: drivers/base/firmware_class.c
31+
.. kernel-doc:: drivers/base/firmware_loader/main.c
3232
:export:
3333

3434
.. kernel-doc:: drivers/base/transport_class.c

Documentation/driver-api/usb/typec.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ If the connector is dual-role capable, there may also be a switch for the data
210210
role. USB Type-C Connector Class does not supply separate API for them. The
211211
port drivers can use USB Role Class API with those.
212212

213-
Illustration of the muxes behind a connector that supports an alternate mode:
213+
Illustration of the muxes behind a connector that supports an alternate mode::
214214

215215
------------------------
216216
| Connector |

Documentation/i2c/dev-interface

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ i2c adapters present on your system at a given time. i2cdetect is part of
99
the i2c-tools package.
1010

1111
I2C device files are character device files with major device number 89
12-
and a minor device number corresponding to the number assigned as
13-
explained above. They should be called "i2c-%d" (i2c-0, i2c-1, ...,
12+
and a minor device number corresponding to the number assigned as
13+
explained above. They should be called "i2c-%d" (i2c-0, i2c-1, ...,
1414
i2c-10, ...). All 256 minor device numbers are reserved for i2c.
1515

1616

@@ -23,11 +23,6 @@ First, you need to include these two headers:
2323
#include <linux/i2c-dev.h>
2424
#include <i2c/smbus.h>
2525

26-
(Please note that there are two files named "i2c-dev.h" out there. One is
27-
distributed with the Linux kernel and the other one is included in the
28-
source tree of i2c-tools. They used to be different in content but since 2012
29-
they're identical. You should use "linux/i2c-dev.h").
30-
3126
Now, you have to decide which adapter you want to access. You should
3227
inspect /sys/class/i2c-dev/ or run "i2cdetect -l" to decide this.
3328
Adapter numbers are assigned somewhat dynamically, so you can not
@@ -38,7 +33,7 @@ Next thing, open the device file, as follows:
3833
int file;
3934
int adapter_nr = 2; /* probably dynamically determined */
4035
char filename[20];
41-
36+
4237
snprintf(filename, 19, "/dev/i2c-%d", adapter_nr);
4338
file = open(filename, O_RDWR);
4439
if (file < 0) {
@@ -72,8 +67,10 @@ the device supports them. Both are illustrated below.
7267
/* res contains the read word */
7368
}
7469

75-
/* Using I2C Write, equivalent of
76-
i2c_smbus_write_word_data(file, reg, 0x6543) */
70+
/*
71+
* Using I2C Write, equivalent of
72+
* i2c_smbus_write_word_data(file, reg, 0x6543)
73+
*/
7774
buf[0] = reg;
7875
buf[1] = 0x43;
7976
buf[2] = 0x65;
@@ -140,14 +137,14 @@ ioctl(file, I2C_RDWR, struct i2c_rdwr_ioctl_data *msgset)
140137
set in each message, overriding the values set with the above ioctl's.
141138

142139
ioctl(file, I2C_SMBUS, struct i2c_smbus_ioctl_data *args)
143-
Not meant to be called directly; instead, use the access functions
144-
below.
140+
If possible, use the provided i2c_smbus_* methods described below instead
141+
of issuing direct ioctls.
145142

146143
You can do plain i2c transactions by using read(2) and write(2) calls.
147144
You do not need to pass the address byte; instead, set it through
148145
ioctl I2C_SLAVE before you try to access the device.
149146

150-
You can do SMBus level transactions (see documentation file smbus-protocol
147+
You can do SMBus level transactions (see documentation file smbus-protocol
151148
for details) through the following functions:
152149
__s32 i2c_smbus_write_quick(int file, __u8 value);
153150
__s32 i2c_smbus_read_byte(int file);
@@ -158,18 +155,17 @@ for details) through the following functions:
158155
__s32 i2c_smbus_write_word_data(int file, __u8 command, __u16 value);
159156
__s32 i2c_smbus_process_call(int file, __u8 command, __u16 value);
160157
__s32 i2c_smbus_read_block_data(int file, __u8 command, __u8 *values);
161-
__s32 i2c_smbus_write_block_data(int file, __u8 command, __u8 length,
158+
__s32 i2c_smbus_write_block_data(int file, __u8 command, __u8 length,
162159
__u8 *values);
163160
All these transactions return -1 on failure; you can read errno to see
164161
what happened. The 'write' transactions return 0 on success; the
165162
'read' transactions return the read value, except for read_block, which
166163
returns the number of values read. The block buffers need not be longer
167164
than 32 bytes.
168165

169-
The above functions are all inline functions, that resolve to calls to
170-
the i2c_smbus_access function, that on its turn calls a specific ioctl
171-
with the data in a specific format. Read the source code if you
172-
want to know what happens behind the screens.
166+
The above functions are made available by linking against the libi2c library,
167+
which is provided by the i2c-tools project. See:
168+
https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/.
173169

174170

175171
Implementation details

Documentation/ioctl/ioctl-number.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,6 @@ Code Seq#(hex) Include File Comments
217217
'd' 02-40 pcmcia/ds.h conflict!
218218
'd' F0-FF linux/digi1.h
219219
'e' all linux/digi1.h conflict!
220-
'e' 00-1F drivers/net/irda/irtty-sir.h conflict!
221220
'f' 00-1F linux/ext2_fs.h conflict!
222221
'f' 00-1F linux/ext3_fs.h conflict!
223222
'f' 00-0F fs/jfs/jfs_dinode.h conflict!
@@ -247,7 +246,6 @@ Code Seq#(hex) Include File Comments
247246
'm' all linux/synclink.h conflict!
248247
'm' 00-19 drivers/message/fusion/mptctl.h conflict!
249248
'm' 00 drivers/scsi/megaraid/megaraid_ioctl.h conflict!
250-
'm' 00-1F net/irda/irmod.h conflict!
251249
'n' 00-7F linux/ncp_fs.h and fs/ncpfs/ioctl.c
252250
'n' 80-8F uapi/linux/nilfs2_api.h NILFS2
253251
'n' E0-FF linux/matroxfb.h matroxfb

Documentation/networking/ip-sysctl.txt

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2126,18 +2126,3 @@ max_dgram_qlen - INTEGER
21262126

21272127
Default: 10
21282128

2129-
2130-
UNDOCUMENTED:
2131-
2132-
/proc/sys/net/irda/*
2133-
fast_poll_increase FIXME
2134-
warn_noreply_time FIXME
2135-
discovery_slots FIXME
2136-
slot_timeout FIXME
2137-
max_baud_rate FIXME
2138-
discovery_timeout FIXME
2139-
lap_keepalive_time FIXME
2140-
max_noreply_time FIXME
2141-
max_tx_data_size FIXME
2142-
max_tx_window FIXME
2143-
min_tx_turn_time FIXME

Documentation/power/suspend-and-cpuhotplug.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ update on the CPUs, as discussed below:
168168

169169
[Please bear in mind that the kernel requests the microcode images from
170170
userspace, using the request_firmware() function defined in
171-
drivers/base/firmware_class.c]
171+
drivers/base/firmware_loader/main.c]
172172

173173

174174
a. When all the CPUs are identical:

Documentation/process/magic-number.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,5 @@ memory management. See ``include/sound/sndmagic.h`` for complete list of them. M
157157
OSS sound drivers have their magic numbers constructed from the soundcard PCI
158158
ID - these are not listed here as well.
159159

160-
IrDA subsystem also uses large number of own magic numbers, see
161-
``include/net/irda/irda.h`` for a complete list of them.
162-
163160
HFS is another larger user of magic numbers - you can find them in
164161
``fs/hfs/hfs.h``.

Documentation/trace/ftrace.rst

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -461,9 +461,17 @@ of ftrace. Here is a list of some of the key files:
461461
and ticks at the same rate as the hardware clocksource.
462462

463463
boot:
464-
Same as mono. Used to be a separate clock which accounted
465-
for the time spent in suspend while CLOCK_MONOTONIC did
466-
not.
464+
This is the boot clock (CLOCK_BOOTTIME) and is based on the
465+
fast monotonic clock, but also accounts for time spent in
466+
suspend. Since the clock access is designed for use in
467+
tracing in the suspend path, some side effects are possible
468+
if clock is accessed after the suspend time is accounted before
469+
the fast mono clock is updated. In this case, the clock update
470+
appears to happen slightly sooner than it normally would have.
471+
Also on 32-bit systems, it's possible that the 64-bit boot offset
472+
sees a partial update. These effects are rare and post
473+
processing should be able to handle them. See comments in the
474+
ktime_get_boot_fast_ns() function for more information.
467475

468476
To set a clock, simply echo the clock name into this file::
469477

Documentation/virtual/kvm/api.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1960,6 +1960,9 @@ ARM 32-bit VFP control registers have the following id bit patterns:
19601960
ARM 64-bit FP registers have the following id bit patterns:
19611961
0x4030 0000 0012 0 <regno:12>
19621962

1963+
ARM firmware pseudo-registers have the following bit pattern:
1964+
0x4030 0000 0014 <regno:16>
1965+
19631966

19641967
arm64 registers are mapped using the lower 32 bits. The upper 16 of
19651968
that is the register group type, or coprocessor number:
@@ -1976,6 +1979,9 @@ arm64 CCSIDR registers are demultiplexed by CSSELR value:
19761979
arm64 system registers have the following id bit patterns:
19771980
0x6030 0000 0013 <op0:2> <op1:3> <crn:4> <crm:4> <op2:3>
19781981

1982+
arm64 firmware pseudo-registers have the following bit pattern:
1983+
0x6030 0000 0014 <regno:16>
1984+
19791985

19801986
MIPS registers are mapped using the lower 32 bits. The upper 16 of that is
19811987
the register group type:
@@ -2510,7 +2516,8 @@ Possible features:
25102516
and execute guest code when KVM_RUN is called.
25112517
- KVM_ARM_VCPU_EL1_32BIT: Starts the CPU in a 32bit mode.
25122518
Depends on KVM_CAP_ARM_EL1_32BIT (arm64 only).
2513-
- KVM_ARM_VCPU_PSCI_0_2: Emulate PSCI v0.2 for the CPU.
2519+
- KVM_ARM_VCPU_PSCI_0_2: Emulate PSCI v0.2 (or a future revision
2520+
backward compatible with v0.2) for the CPU.
25142521
Depends on KVM_CAP_ARM_PSCI_0_2.
25152522
- KVM_ARM_VCPU_PMU_V3: Emulate PMUv3 for the CPU.
25162523
Depends on KVM_CAP_ARM_PMU_V3.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
KVM implements the PSCI (Power State Coordination Interface)
2+
specification in order to provide services such as CPU on/off, reset
3+
and power-off to the guest.
4+
5+
The PSCI specification is regularly updated to provide new features,
6+
and KVM implements these updates if they make sense from a virtualization
7+
point of view.
8+
9+
This means that a guest booted on two different versions of KVM can
10+
observe two different "firmware" revisions. This could cause issues if
11+
a given guest is tied to a particular PSCI revision (unlikely), or if
12+
a migration causes a different PSCI version to be exposed out of the
13+
blue to an unsuspecting guest.
14+
15+
In order to remedy this situation, KVM exposes a set of "firmware
16+
pseudo-registers" that can be manipulated using the GET/SET_ONE_REG
17+
interface. These registers can be saved/restored by userspace, and set
18+
to a convenient value if required.
19+
20+
The following register is defined:
21+
22+
* KVM_REG_ARM_PSCI_VERSION:
23+
24+
- Only valid if the vcpu has the KVM_ARM_VCPU_PSCI_0_2 feature set
25+
(and thus has already been initialized)
26+
- Returns the current PSCI version on GET_ONE_REG (defaulting to the
27+
highest PSCI version implemented by KVM and compatible with v0.2)
28+
- Allows any PSCI version implemented by KVM and compatible with
29+
v0.2 to be set with SET_ONE_REG
30+
- Affects the whole VM (even if the register view is per-vcpu)

0 commit comments

Comments
 (0)