Skip to content

Commit 7cda4ce

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Small overlapping change conflict ('net' changed a line, 'net-next' added a line right afterwards) in flexcan.c Signed-off-by: David S. Miller <[email protected]>
2 parents a3fde2a + 2391f0b commit 7cda4ce

File tree

441 files changed

+3239
-2011
lines changed

Some content is hidden

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

441 files changed

+3239
-2011
lines changed

Documentation/devicetree/bindings/hwmon/jc42.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ Required properties:
3434

3535
- reg: I2C address
3636

37+
Optional properties:
38+
- smbus-timeout-disable: When set, the smbus timeout function will be disabled.
39+
This is not supported on all chips.
40+
3741
Example:
3842

3943
temp-sensor@1a {

Documentation/sysctl/vm.txt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,6 @@ Note: the minimum value allowed for dirty_bytes is two pages (in bytes); any
158158
value lower than this limit will be ignored and the old configuration will be
159159
retained.
160160

161-
Note: the value of dirty_bytes also must be set greater than
162-
dirty_background_bytes or the amount of memory corresponding to
163-
dirty_background_ratio.
164-
165161
==============================================================
166162

167163
dirty_expire_centisecs
@@ -181,9 +177,6 @@ generating disk writes will itself start writing out dirty data.
181177

182178
The total available memory is not equal to total system memory.
183179

184-
Note: dirty_ratio must be set greater than dirty_background_ratio or
185-
ratio corresponding to dirty_background_bytes.
186-
187180
==============================================================
188181

189182
dirty_writeback_centisecs

MAINTAINERS

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -554,13 +554,13 @@ S: Orphan
554554
F: Documentation/filesystems/affs.txt
555555
F: fs/affs/
556556

557-
AFS FILESYSTEM & AF_RXRPC SOCKET DOMAIN
557+
AFS FILESYSTEM
558558
M: David Howells <[email protected]>
559559
560560
S: Supported
561561
F: fs/afs/
562-
F: include/net/af_rxrpc.h
563-
F: net/rxrpc/af_rxrpc.c
562+
F: include/trace/events/afs.h
563+
F: Documentation/filesystems/afs.txt
564564
W: https://www.infradead.org/~dhowells/kafs/
565565

566566
AGPGART DRIVER
@@ -6174,7 +6174,6 @@ M: Jean Delvare <[email protected]>
61746174
M: Guenter Roeck <[email protected]>
61756175
61766176
W: http://hwmon.wiki.kernel.org/
6177-
T: quilt http://jdelvare.nerim.net/devel/linux/jdelvare-hwmon/
61786177
T: git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
61796178
S: Maintained
61806179
F: Documentation/hwmon/
@@ -11782,6 +11781,18 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/jes/linux.git rtl8xxxu-deve
1178211781
S: Maintained
1178311782
F: drivers/net/wireless/realtek/rtl8xxxu/
1178411783

11784+
RXRPC SOCKETS (AF_RXRPC)
11785+
M: David Howells <[email protected]>
11786+
11787+
S: Supported
11788+
F: net/rxrpc/
11789+
F: include/keys/rxrpc-type.h
11790+
F: include/net/af_rxrpc.h
11791+
F: include/trace/events/rxrpc.h
11792+
F: include/uapi/linux/rxrpc.h
11793+
F: Documentation/networking/rxrpc.txt
11794+
W: https://www.infradead.org/~dhowells/kafs/
11795+
1178511796
S3 SAVAGE FRAMEBUFFER DRIVER
1178611797
M: Antonino Daplas <[email protected]>
1178711798
@@ -13653,10 +13664,8 @@ F: drivers/net/wireless/ti/
1365313664
F: include/linux/wl12xx.h
1365413665

1365513666
TILE ARCHITECTURE
13656-
M: Chris Metcalf <[email protected]>
1365713667
W: http://www.mellanox.com/repository/solutions/tile-scm/
13658-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile.git
13659-
S: Supported
13668+
S: Orphan
1366013669
F: arch/tile/
1366113670
F: drivers/char/tile-srom.c
1366213671
F: drivers/edac/tile_edac.c

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
VERSION = 4
33
PATCHLEVEL = 15
44
SUBLEVEL = 0
5-
EXTRAVERSION = -rc1
5+
EXTRAVERSION = -rc2
66
NAME = Fearless Coyote
77

88
# *DOCUMENTATION*

arch/arm/include/asm/pgtable-3level.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,6 @@ static inline pte_t pte_mkspecial(pte_t pte)
221221
}
222222
#define __HAVE_ARCH_PTE_SPECIAL
223223

224-
#define __HAVE_ARCH_PMD_WRITE
225224
#define pmd_write(pmd) (pmd_isclear((pmd), L_PMD_SECT_RDONLY))
226225
#define pmd_dirty(pmd) (pmd_isset((pmd), L_PMD_SECT_DIRTY))
227226
#define pud_page(pud) pmd_page(__pmd(pud_val(pud)))

arch/arm/kernel/entry-header.S

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@
300300
mov r2, sp
301301
ldr r1, [r2, #\offset + S_PSR] @ get calling cpsr
302302
ldr lr, [r2, #\offset + S_PC]! @ get pc
303-
tst r1, #0xcf
303+
tst r1, #PSR_I_BIT | 0x0f
304304
bne 1f
305305
msr spsr_cxsf, r1 @ save in spsr_svc
306306
#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_32v6K)
@@ -332,7 +332,7 @@
332332
ldr r1, [sp, #\offset + S_PSR] @ get calling cpsr
333333
ldr lr, [sp, #\offset + S_PC] @ get pc
334334
add sp, sp, #\offset + S_SP
335-
tst r1, #0xcf
335+
tst r1, #PSR_I_BIT | 0x0f
336336
bne 1f
337337
msr spsr_cxsf, r1 @ save in spsr_svc
338338

arch/arm64/Makefile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,6 @@ endif
8383

8484
ifeq ($(CONFIG_ARM64_MODULE_PLTS),y)
8585
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/arm64/kernel/module.lds
86-
ifeq ($(CONFIG_DYNAMIC_FTRACE),y)
87-
KBUILD_LDFLAGS_MODULE += $(objtree)/arch/arm64/kernel/ftrace-mod.o
88-
endif
8986
endif
9087

9188
# Default value

arch/arm64/include/asm/cacheflush.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
*
3939
* See Documentation/cachetlb.txt for more information. Please note that
4040
* the implementation assumes non-aliasing VIPT D-cache and (aliasing)
41-
* VIPT or ASID-tagged VIVT I-cache.
41+
* VIPT I-cache.
4242
*
4343
* flush_cache_mm(mm)
4444
*

arch/arm64/include/asm/module.h

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ struct mod_arch_specific {
3232
struct mod_plt_sec init;
3333

3434
/* for CONFIG_DYNAMIC_FTRACE */
35-
void *ftrace_trampoline;
35+
struct plt_entry *ftrace_trampoline;
3636
};
3737
#endif
3838

@@ -45,4 +45,48 @@ extern u64 module_alloc_base;
4545
#define module_alloc_base ((u64)_etext - MODULES_VSIZE)
4646
#endif
4747

48+
struct plt_entry {
49+
/*
50+
* A program that conforms to the AArch64 Procedure Call Standard
51+
* (AAPCS64) must assume that a veneer that alters IP0 (x16) and/or
52+
* IP1 (x17) may be inserted at any branch instruction that is
53+
* exposed to a relocation that supports long branches. Since that
54+
* is exactly what we are dealing with here, we are free to use x16
55+
* as a scratch register in the PLT veneers.
56+
*/
57+
__le32 mov0; /* movn x16, #0x.... */
58+
__le32 mov1; /* movk x16, #0x...., lsl #16 */
59+
__le32 mov2; /* movk x16, #0x...., lsl #32 */
60+
__le32 br; /* br x16 */
61+
};
62+
63+
static inline struct plt_entry get_plt_entry(u64 val)
64+
{
65+
/*
66+
* MOVK/MOVN/MOVZ opcode:
67+
* +--------+------------+--------+-----------+-------------+---------+
68+
* | sf[31] | opc[30:29] | 100101 | hw[22:21] | imm16[20:5] | Rd[4:0] |
69+
* +--------+------------+--------+-----------+-------------+---------+
70+
*
71+
* Rd := 0x10 (x16)
72+
* hw := 0b00 (no shift), 0b01 (lsl #16), 0b10 (lsl #32)
73+
* opc := 0b11 (MOVK), 0b00 (MOVN), 0b10 (MOVZ)
74+
* sf := 1 (64-bit variant)
75+
*/
76+
return (struct plt_entry){
77+
cpu_to_le32(0x92800010 | (((~val ) & 0xffff)) << 5),
78+
cpu_to_le32(0xf2a00010 | ((( val >> 16) & 0xffff)) << 5),
79+
cpu_to_le32(0xf2c00010 | ((( val >> 32) & 0xffff)) << 5),
80+
cpu_to_le32(0xd61f0200)
81+
};
82+
}
83+
84+
static inline bool plt_entries_equal(const struct plt_entry *a,
85+
const struct plt_entry *b)
86+
{
87+
return a->mov0 == b->mov0 &&
88+
a->mov1 == b->mov1 &&
89+
a->mov2 == b->mov2;
90+
}
91+
4892
#endif /* __ASM_MODULE_H */

arch/arm64/include/asm/pgtable.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,6 @@ static inline int pmd_protnone(pmd_t pmd)
345345

346346
#define pmd_thp_or_huge(pmd) (pmd_huge(pmd) || pmd_trans_huge(pmd))
347347

348-
#define __HAVE_ARCH_PMD_WRITE
349348
#define pmd_write(pmd) pte_write(pmd_pte(pmd))
350349

351350
#define pmd_mkhuge(pmd) (__pmd(pmd_val(pmd) & ~PMD_TABLE_BIT))

arch/arm64/kernel/Makefile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,3 @@ extra-y += $(head-y) vmlinux.lds
6161
ifeq ($(CONFIG_DEBUG_EFI),y)
6262
AFLAGS_head.o += -DVMLINUX_PATH="\"$(realpath $(objtree)/vmlinux)\""
6363
endif
64-
65-
# will be included by each individual module but not by the core kernel itself
66-
extra-$(CONFIG_DYNAMIC_FTRACE) += ftrace-mod.o

arch/arm64/kernel/cpu_ops.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ extern const struct cpu_operations cpu_psci_ops;
3131

3232
const struct cpu_operations *cpu_ops[NR_CPUS] __ro_after_init;
3333

34-
static const struct cpu_operations *dt_supported_cpu_ops[] __initconst = {
34+
static const struct cpu_operations *const dt_supported_cpu_ops[] __initconst = {
3535
&smp_spin_table_ops,
3636
&cpu_psci_ops,
3737
NULL,
3838
};
3939

40-
static const struct cpu_operations *acpi_supported_cpu_ops[] __initconst = {
40+
static const struct cpu_operations *const acpi_supported_cpu_ops[] __initconst = {
4141
#ifdef CONFIG_ARM64_ACPI_PARKING_PROTOCOL
4242
&acpi_parking_protocol_ops,
4343
#endif
@@ -47,7 +47,7 @@ static const struct cpu_operations *acpi_supported_cpu_ops[] __initconst = {
4747

4848
static const struct cpu_operations * __init cpu_get_ops(const char *name)
4949
{
50-
const struct cpu_operations **ops;
50+
const struct cpu_operations *const *ops;
5151

5252
ops = acpi_disabled ? dt_supported_cpu_ops : acpi_supported_cpu_ops;
5353

arch/arm64/kernel/fpsimd.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,10 +1026,10 @@ void fpsimd_update_current_state(struct fpsimd_state *state)
10261026

10271027
local_bh_disable();
10281028

1029-
if (system_supports_sve() && test_thread_flag(TIF_SVE)) {
1030-
current->thread.fpsimd_state = *state;
1029+
current->thread.fpsimd_state = *state;
1030+
if (system_supports_sve() && test_thread_flag(TIF_SVE))
10311031
fpsimd_to_sve(current);
1032-
}
1032+
10331033
task_fpsimd_load();
10341034

10351035
if (test_and_clear_thread_flag(TIF_FOREIGN_FPSTATE)) {

arch/arm64/kernel/ftrace-mod.S

Lines changed: 0 additions & 18 deletions
This file was deleted.

arch/arm64/kernel/ftrace.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
7676

7777
if (offset < -SZ_128M || offset >= SZ_128M) {
7878
#ifdef CONFIG_ARM64_MODULE_PLTS
79-
unsigned long *trampoline;
79+
struct plt_entry trampoline;
8080
struct module *mod;
8181

8282
/*
@@ -104,22 +104,24 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
104104
* is added in the future, but for now, the pr_err() below
105105
* deals with a theoretical issue only.
106106
*/
107-
trampoline = (unsigned long *)mod->arch.ftrace_trampoline;
108-
if (trampoline[0] != addr) {
109-
if (trampoline[0] != 0) {
107+
trampoline = get_plt_entry(addr);
108+
if (!plt_entries_equal(mod->arch.ftrace_trampoline,
109+
&trampoline)) {
110+
if (!plt_entries_equal(mod->arch.ftrace_trampoline,
111+
&(struct plt_entry){})) {
110112
pr_err("ftrace: far branches to multiple entry points unsupported inside a single module\n");
111113
return -EINVAL;
112114
}
113115

114116
/* point the trampoline to our ftrace entry point */
115117
module_disable_ro(mod);
116-
trampoline[0] = addr;
118+
*mod->arch.ftrace_trampoline = trampoline;
117119
module_enable_ro(mod, true);
118120

119121
/* update trampoline before patching in the branch */
120122
smp_wmb();
121123
}
122-
addr = (unsigned long)&trampoline[1];
124+
addr = (unsigned long)(void *)mod->arch.ftrace_trampoline;
123125
#else /* CONFIG_ARM64_MODULE_PLTS */
124126
return -EINVAL;
125127
#endif /* CONFIG_ARM64_MODULE_PLTS */

0 commit comments

Comments
 (0)