Skip to content

Commit 3f96885

Browse files
committed
Merge tag 'imx-fixes-5.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
i.MX fixes for 5.17, round 2: - Drop reset signal from i.MX8MM vpumix power domain to fix a system hang. - Fix a dtbs_check warning caused by #thermal-sensor-cells in i.MX8ULP device tree. - Fix a clock disabling imbalance in gpcv2 driver. Signed-off-by: Arnd Bergmann <[email protected]>
2 parents 31c50bf + fa231be commit 3f96885

File tree

246 files changed

+1611
-811
lines changed

Some content is hidden

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

246 files changed

+1611
-811
lines changed

Documentation/dev-tools/kunit/usage.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ example:
242242
243243
int rectangle_area(struct shape *this)
244244
{
245-
struct rectangle *self = container_of(this, struct shape, parent);
245+
struct rectangle *self = container_of(this, struct rectangle, parent);
246246
247247
return self->length * self->width;
248248
};

Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,28 @@ description:
3535
contains a specific memory layout, which is documented in chapter 8 of the
3636
SiFive U5 Coreplex Series Manual <https://static.dev.sifive.com/U54-MC-RVCoreIP.pdf>.
3737

38+
The thead,c900-plic is different from sifive,plic-1.0.0 in opensbi, the
39+
T-HEAD PLIC implementation requires setting a delegation bit to allow access
40+
from S-mode. So add thead,c900-plic to distinguish them.
41+
3842
maintainers:
3943
- Sagar Kadam <[email protected]>
4044
- Paul Walmsley <[email protected]>
4145
- Palmer Dabbelt <[email protected]>
4246

4347
properties:
4448
compatible:
45-
items:
46-
- enum:
47-
- sifive,fu540-c000-plic
48-
- starfive,jh7100-plic
49-
- canaan,k210-plic
50-
- const: sifive,plic-1.0.0
49+
oneOf:
50+
- items:
51+
- enum:
52+
- sifive,fu540-c000-plic
53+
- starfive,jh7100-plic
54+
- canaan,k210-plic
55+
- const: sifive,plic-1.0.0
56+
- items:
57+
- enum:
58+
- allwinner,sun20i-d1-plic
59+
- const: thead,c900-plic
5160

5261
reg:
5362
maxItems: 1

MAINTAINERS

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7581,6 +7581,12 @@ S: Maintained
75817581
W: http://floatingpoint.sourceforge.net/emulator/index.html
75827582
F: arch/x86/math-emu/
75837583

7584+
FRAMEBUFFER CORE
7585+
M: Daniel Vetter <[email protected]>
7586+
F: drivers/video/fbdev/core/
7587+
S: Odd Fixes
7588+
T: git git://anongit.freedesktop.org/drm/drm-misc
7589+
75847590
FRAMEBUFFER LAYER
75857591
M: Helge Deller <[email protected]>
75867592
@@ -13309,8 +13315,8 @@ W: http://www.iptables.org/
1330913315
W: http://www.nftables.org/
1331013316
Q: http://patchwork.ozlabs.org/project/netfilter-devel/list/
1331113317
C: irc://irc.libera.chat/netfilter
13312-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf.git
13313-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git
13318+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git
13319+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next.git
1331413320
F: include/linux/netfilter*
1331513321
F: include/linux/netfilter/
1331613322
F: include/net/netfilter/
@@ -13577,7 +13583,7 @@ F: tools/testing/selftests/nci/
1357713583

1357813584
NFS, SUNRPC, AND LOCKD CLIENTS
1357913585
M: Trond Myklebust <[email protected]>
13580-
M: Anna Schumaker <anna[email protected]>
13586+
M: Anna Schumaker <anna@kernel.org>
1358113587
1358213588
S: Maintained
1358313589
W: http://client.linux-nfs.org
@@ -16827,8 +16833,8 @@ F: drivers/video/fbdev/savage/
1682716833
S390
1682816834
M: Heiko Carstens <[email protected]>
1682916835
M: Vasily Gorbik <[email protected]>
16830-
M: Christian Borntraeger <borntraeger@linux.ibm.com>
16831-
R: Alexander Gordeev <agordeev@linux.ibm.com>
16836+
M: Alexander Gordeev <agordeev@linux.ibm.com>
16837+
R: Christian Borntraeger <borntraeger@linux.ibm.com>
1683216838
R: Sven Schnelle <[email protected]>
1683316839
1683416840
S: Supported
@@ -19621,6 +19627,14 @@ F: Documentation/trace/timerlat-tracer.rst
1962119627
F: Documentation/trace/hwlat_detector.rst
1962219628
F: arch/*/kernel/trace.c
1962319629

19630+
Real-time Linux Analysis (RTLA) tools
19631+
M: Daniel Bristot de Oliveira <[email protected]>
19632+
M: Steven Rostedt <[email protected]>
19633+
19634+
S: Maintained
19635+
F: Documentation/tools/rtla/
19636+
F: tools/tracing/rtla/
19637+
1962419638
TRADITIONAL CHINESE DOCUMENTATION
1962519639
M: Hu Haowen <[email protected]>
1962619640

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
VERSION = 5
33
PATCHLEVEL = 17
44
SUBLEVEL = 0
5-
EXTRAVERSION = -rc3
6-
NAME = Gobble Gobble
5+
EXTRAVERSION = -rc4
6+
NAME = Superb Owl
77

88
# *DOCUMENTATION*
99
# To see a list of typical targets execute "make help"

arch/arm64/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,7 @@ config ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE
672672

673673
config ARM64_ERRATUM_2051678
674674
bool "Cortex-A510: 2051678: disable Hardware Update of the page table dirty bit"
675+
default y
675676
help
676677
This options adds the workaround for ARM Cortex-A510 erratum ARM64_ERRATUM_2051678.
677678
Affected Coretex-A510 might not respect the ordering rules for

arch/arm64/boot/dts/freescale/imx8mm.dtsi

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,6 @@
707707
clocks = <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
708708
assigned-clocks = <&clk IMX8MM_CLK_VPU_BUS>;
709709
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>;
710-
resets = <&src IMX8MQ_RESET_VPU_RESET>;
711710
};
712711

713712
pgc_vpu_g1: power-domain@7 {

arch/arm64/boot/dts/freescale/imx8ulp.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@
132132

133133
scmi_sensor: protocol@15 {
134134
reg = <0x15>;
135-
#thermal-sensor-cells = <0>;
135+
#thermal-sensor-cells = <1>;
136136
};
137137
};
138138
};

arch/mips/boot/dts/ingenic/ci20.dts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@
8383
label = "HDMI OUT";
8484
type = "a";
8585

86+
ddc-en-gpios = <&gpa 25 GPIO_ACTIVE_HIGH>;
87+
8688
port {
8789
hdmi_con: endpoint {
8890
remote-endpoint = <&dw_hdmi_out>;
@@ -114,17 +116,6 @@
114116
gpio = <&gpf 14 GPIO_ACTIVE_LOW>;
115117
enable-active-high;
116118
};
117-
118-
hdmi_power: fixedregulator@3 {
119-
compatible = "regulator-fixed";
120-
121-
regulator-name = "hdmi_power";
122-
regulator-min-microvolt = <5000000>;
123-
regulator-max-microvolt = <5000000>;
124-
125-
gpio = <&gpa 25 0>;
126-
enable-active-high;
127-
};
128119
};
129120

130121
&ext {
@@ -576,8 +567,6 @@
576567
pinctrl-names = "default";
577568
pinctrl-0 = <&pins_hdmi_ddc>;
578569

579-
hdmi-5v-supply = <&hdmi_power>;
580-
581570
ports {
582571
#address-cells = <1>;
583572
#size-cells = <0>;

arch/riscv/Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ riscv-march-$(CONFIG_ARCH_RV32I) := rv32ima
5050
riscv-march-$(CONFIG_ARCH_RV64I) := rv64ima
5151
riscv-march-$(CONFIG_FPU) := $(riscv-march-y)fd
5252
riscv-march-$(CONFIG_RISCV_ISA_C) := $(riscv-march-y)c
53+
54+
# Newer binutils versions default to ISA spec version 20191213 which moves some
55+
# instructions from the I extension to the Zicsr and Zifencei extensions.
56+
toolchain-need-zicsr-zifencei := $(call cc-option-yn, -march=$(riscv-march-y)_zicsr_zifencei)
57+
riscv-march-$(toolchain-need-zicsr-zifencei) := $(riscv-march-y)_zicsr_zifencei
58+
5359
KBUILD_CFLAGS += -march=$(subst fd,,$(riscv-march-y))
5460
KBUILD_AFLAGS += -march=$(riscv-march-y)
5561

arch/riscv/kernel/cpu-hotplug.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <linux/sched/hotplug.h>
1313
#include <asm/irq.h>
1414
#include <asm/cpu_ops.h>
15+
#include <asm/numa.h>
1516
#include <asm/sbi.h>
1617

1718
bool cpu_has_hotplug(unsigned int cpu)
@@ -40,6 +41,7 @@ int __cpu_disable(void)
4041
return ret;
4142

4243
remove_cpu_topology(cpu);
44+
numa_remove_cpu(cpu);
4345
set_cpu_online(cpu, false);
4446
irq_migrate_all_off_this_cpu();
4547

arch/riscv/kernel/head.S

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,13 @@
2222
add \reg, \reg, t0
2323
.endm
2424
.macro XIP_FIXUP_FLASH_OFFSET reg
25-
la t1, __data_loc
26-
li t0, XIP_OFFSET_MASK
27-
and t1, t1, t0
28-
li t1, XIP_OFFSET
29-
sub t0, t0, t1
30-
sub \reg, \reg, t0
25+
la t0, __data_loc
26+
REG_L t1, _xip_phys_offset
27+
sub \reg, \reg, t1
28+
add \reg, \reg, t0
3129
.endm
3230
_xip_fixup: .dword CONFIG_PHYS_RAM_BASE - CONFIG_XIP_PHYS_ADDR - XIP_OFFSET
31+
_xip_phys_offset: .dword CONFIG_XIP_PHYS_ADDR + XIP_OFFSET
3332
#else
3433
.macro XIP_FIXUP_OFFSET reg
3534
.endm

arch/riscv/kernel/stacktrace.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,16 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
2222
bool (*fn)(void *, unsigned long), void *arg)
2323
{
2424
unsigned long fp, sp, pc;
25+
int level = 0;
2526

2627
if (regs) {
2728
fp = frame_pointer(regs);
2829
sp = user_stack_pointer(regs);
2930
pc = instruction_pointer(regs);
3031
} else if (task == NULL || task == current) {
31-
fp = (unsigned long)__builtin_frame_address(1);
32-
sp = (unsigned long)__builtin_frame_address(0);
33-
pc = (unsigned long)__builtin_return_address(0);
32+
fp = (unsigned long)__builtin_frame_address(0);
33+
sp = sp_in_global;
34+
pc = (unsigned long)walk_stackframe;
3435
} else {
3536
/* task blocked in __switch_to */
3637
fp = task->thread.s[0];
@@ -42,7 +43,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
4243
unsigned long low, high;
4344
struct stackframe *frame;
4445

45-
if (unlikely(!__kernel_text_address(pc) || !fn(arg, pc)))
46+
if (unlikely(!__kernel_text_address(pc) || (level++ >= 1 && !fn(arg, pc))))
4647
break;
4748

4849
/* Validate frame pointer */

arch/riscv/mm/extable.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ static inline void regs_set_gpr(struct pt_regs *regs, unsigned int offset,
3333
if (unlikely(offset > MAX_REG_OFFSET))
3434
return;
3535

36-
if (!offset)
36+
if (offset)
3737
*(unsigned long *)((unsigned long)regs + offset) = val;
3838
}
3939

@@ -43,8 +43,8 @@ static bool ex_handler_uaccess_err_zero(const struct exception_table_entry *ex,
4343
int reg_err = FIELD_GET(EX_DATA_REG_ERR, ex->data);
4444
int reg_zero = FIELD_GET(EX_DATA_REG_ZERO, ex->data);
4545

46-
regs_set_gpr(regs, reg_err, -EFAULT);
47-
regs_set_gpr(regs, reg_zero, 0);
46+
regs_set_gpr(regs, reg_err * sizeof(unsigned long), -EFAULT);
47+
regs_set_gpr(regs, reg_zero * sizeof(unsigned long), 0);
4848

4949
regs->epc = get_ex_fixup(ex);
5050
return true;

arch/riscv/mm/init.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ static pmd_t __maybe_unused early_dtb_pmd[PTRS_PER_PMD] __initdata __aligned(PAG
232232

233233
#ifdef CONFIG_XIP_KERNEL
234234
#define pt_ops (*(struct pt_alloc_ops *)XIP_FIXUP(&pt_ops))
235+
#define riscv_pfn_base (*(unsigned long *)XIP_FIXUP(&riscv_pfn_base))
235236
#define trampoline_pg_dir ((pgd_t *)XIP_FIXUP(trampoline_pg_dir))
236237
#define fixmap_pte ((pte_t *)XIP_FIXUP(fixmap_pte))
237238
#define early_pg_dir ((pgd_t *)XIP_FIXUP(early_pg_dir))
@@ -522,6 +523,7 @@ static uintptr_t __init best_map_size(phys_addr_t base, phys_addr_t size)
522523
}
523524

524525
#ifdef CONFIG_XIP_KERNEL
526+
#define phys_ram_base (*(phys_addr_t *)XIP_FIXUP(&phys_ram_base))
525527
extern char _xiprom[], _exiprom[], __data_loc;
526528

527529
/* called from head.S with MMU off */

arch/s390/kvm/kvm-s390.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4667,6 +4667,8 @@ static long kvm_s390_guest_sida_op(struct kvm_vcpu *vcpu,
46674667
return -EINVAL;
46684668
if (mop->size + mop->sida_offset > sida_size(vcpu->arch.sie_block))
46694669
return -E2BIG;
4670+
if (!kvm_s390_pv_cpu_is_protected(vcpu))
4671+
return -EINVAL;
46704672

46714673
switch (mop->op) {
46724674
case KVM_S390_MEMOP_SIDA_READ:

arch/s390/lib/test_modules.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55

66
#include "test_modules.h"
77

8-
#define DECLARE_RETURN(i) int test_modules_return_ ## i(void)
9-
REPEAT_10000(DECLARE_RETURN);
10-
118
/*
129
* Test that modules with many relocations are loaded properly.
1310
*/

arch/s390/lib/test_modules.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,7 @@
4747
__REPEAT_10000_1(f, 8); \
4848
__REPEAT_10000_1(f, 9)
4949

50+
#define DECLARE_RETURN(i) int test_modules_return_ ## i(void)
51+
REPEAT_10000(DECLARE_RETURN);
52+
5053
#endif

arch/x86/include/asm/bug.h

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
#ifdef CONFIG_DEBUG_BUGVERBOSE
2424

25-
#define _BUG_FLAGS(ins, flags) \
25+
#define _BUG_FLAGS(ins, flags, extra) \
2626
do { \
2727
asm_inline volatile("1:\t" ins "\n" \
2828
".pushsection __bug_table,\"aw\"\n" \
@@ -31,22 +31,24 @@ do { \
3131
"\t.word %c1" "\t# bug_entry::line\n" \
3232
"\t.word %c2" "\t# bug_entry::flags\n" \
3333
"\t.org 2b+%c3\n" \
34-
".popsection" \
34+
".popsection\n" \
35+
extra \
3536
: : "i" (__FILE__), "i" (__LINE__), \
3637
"i" (flags), \
3738
"i" (sizeof(struct bug_entry))); \
3839
} while (0)
3940

4041
#else /* !CONFIG_DEBUG_BUGVERBOSE */
4142

42-
#define _BUG_FLAGS(ins, flags) \
43+
#define _BUG_FLAGS(ins, flags, extra) \
4344
do { \
4445
asm_inline volatile("1:\t" ins "\n" \
4546
".pushsection __bug_table,\"aw\"\n" \
4647
"2:\t" __BUG_REL(1b) "\t# bug_entry::bug_addr\n" \
4748
"\t.word %c0" "\t# bug_entry::flags\n" \
4849
"\t.org 2b+%c1\n" \
49-
".popsection" \
50+
".popsection\n" \
51+
extra \
5052
: : "i" (flags), \
5153
"i" (sizeof(struct bug_entry))); \
5254
} while (0)
@@ -55,16 +57,16 @@ do { \
5557

5658
#else
5759

58-
#define _BUG_FLAGS(ins, flags) asm volatile(ins)
60+
#define _BUG_FLAGS(ins, flags, extra) asm volatile(ins)
5961

6062
#endif /* CONFIG_GENERIC_BUG */
6163

6264
#define HAVE_ARCH_BUG
6365
#define BUG() \
6466
do { \
6567
instrumentation_begin(); \
66-
_BUG_FLAGS(ASM_UD2, 0); \
67-
unreachable(); \
68+
_BUG_FLAGS(ASM_UD2, 0, ""); \
69+
__builtin_unreachable(); \
6870
} while (0)
6971

7072
/*
@@ -75,9 +77,9 @@ do { \
7577
*/
7678
#define __WARN_FLAGS(flags) \
7779
do { \
80+
__auto_type f = BUGFLAG_WARNING|(flags); \
7881
instrumentation_begin(); \
79-
_BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags)); \
80-
annotate_reachable(); \
82+
_BUG_FLAGS(ASM_UD2, f, ASM_REACHABLE); \
8183
instrumentation_end(); \
8284
} while (0)
8385

arch/x86/include/asm/xen/cpuid.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@
100100
/* Memory mapped from other domains has valid IOMMU entries */
101101
#define XEN_HVM_CPUID_IOMMU_MAPPINGS (1u << 2)
102102
#define XEN_HVM_CPUID_VCPU_ID_PRESENT (1u << 3) /* vcpu id is present in EBX */
103+
#define XEN_HVM_CPUID_DOMID_PRESENT (1u << 4) /* domid is present in ECX */
104+
/*
105+
* Bits 55:49 from the IO-APIC RTE and bits 11:5 from the MSI address can be
106+
* used to store high bits for the Destination ID. This expands the Destination
107+
* ID field from 8 to 15 bits, allowing to target APIC IDs up 32768.
108+
*/
109+
#define XEN_HVM_CPUID_EXT_DEST_ID (1u << 5)
103110

104111
/*
105112
* Leaf 6 (0x40000x05)

0 commit comments

Comments
 (0)