Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Mirrors
github.com
raspberrypi_linux
Commits
623ca2ba
Commit
623ca2ba
authored
Feb 22, 2021
by
popcornmix
Browse files
Merge remote-tracking branch 'stable/linux-5.10.y' into rpi-5.10.y
parents
7f09832b
13b6016e
Changes
124
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
623ca2ba
# SPDX-License-Identifier: GPL-2.0
VERSION
=
5
PATCHLEVEL
=
10
SUBLEVEL
=
1
6
SUBLEVEL
=
1
7
EXTRAVERSION
=
NAME
=
Kleptomaniac Octopus
...
...
arch/arm/boot/dts/lpc32xx.dtsi
View file @
623ca2ba
...
...
@@ -329,9 +329,6 @@
clocks = <&xtal_32k>, <&xtal>;
clock-names = "xtal_32k", "xtal";
assigned-clocks = <&clk LPC32XX_CLK_HCLK_PLL>;
assigned-clock-rates = <208000000>;
};
};
...
...
arch/arm/include/asm/kexec-internal.h
0 → 100644
View file @
623ca2ba
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ARM_KEXEC_INTERNAL_H
#define _ARM_KEXEC_INTERNAL_H
struct
kexec_relocate_data
{
unsigned
long
kexec_start_address
;
unsigned
long
kexec_indirection_page
;
unsigned
long
kexec_mach_type
;
unsigned
long
kexec_r2
;
};
#endif
arch/arm/kernel/asm-offsets.c
View file @
623ca2ba
...
...
@@ -12,6 +12,7 @@
#include
<linux/mm.h>
#include
<linux/dma-mapping.h>
#include
<asm/cacheflush.h>
#include
<asm/kexec-internal.h>
#include
<asm/glue-df.h>
#include
<asm/glue-pf.h>
#include
<asm/mach/arch.h>
...
...
@@ -170,5 +171,9 @@ int main(void)
DEFINE
(
MPU_RGN_PRBAR
,
offsetof
(
struct
mpu_rgn
,
prbar
));
DEFINE
(
MPU_RGN_PRLAR
,
offsetof
(
struct
mpu_rgn
,
prlar
));
#endif
DEFINE
(
KEXEC_START_ADDR
,
offsetof
(
struct
kexec_relocate_data
,
kexec_start_address
));
DEFINE
(
KEXEC_INDIR_PAGE
,
offsetof
(
struct
kexec_relocate_data
,
kexec_indirection_page
));
DEFINE
(
KEXEC_MACH_TYPE
,
offsetof
(
struct
kexec_relocate_data
,
kexec_mach_type
));
DEFINE
(
KEXEC_R2
,
offsetof
(
struct
kexec_relocate_data
,
kexec_r2
));
return
0
;
}
arch/arm/kernel/machine_kexec.c
View file @
623ca2ba
...
...
@@ -13,6 +13,7 @@
#include
<linux/of_fdt.h>
#include
<asm/mmu_context.h>
#include
<asm/cacheflush.h>
#include
<asm/kexec-internal.h>
#include
<asm/fncpy.h>
#include
<asm/mach-types.h>
#include
<asm/smp_plat.h>
...
...
@@ -22,11 +23,6 @@
extern
void
relocate_new_kernel
(
void
);
extern
const
unsigned
int
relocate_new_kernel_size
;
extern
unsigned
long
kexec_start_address
;
extern
unsigned
long
kexec_indirection_page
;
extern
unsigned
long
kexec_mach_type
;
extern
unsigned
long
kexec_boot_atags
;
static
atomic_t
waiting_for_crash_ipi
;
/*
...
...
@@ -159,6 +155,7 @@ void (*kexec_reinit)(void);
void
machine_kexec
(
struct
kimage
*
image
)
{
unsigned
long
page_list
,
reboot_entry_phys
;
struct
kexec_relocate_data
*
data
;
void
(
*
reboot_entry
)(
void
);
void
*
reboot_code_buffer
;
...
...
@@ -174,18 +171,17 @@ void machine_kexec(struct kimage *image)
reboot_code_buffer
=
page_address
(
image
->
control_code_page
);
/* Prepare parameters for reboot_code_buffer*/
set_kernel_text_rw
();
kexec_start_address
=
image
->
start
;
kexec_indirection_page
=
page_list
;
kexec_mach_type
=
machine_arch_type
;
kexec_boot_atags
=
image
->
arch
.
kernel_r2
;
/* copy our kernel relocation code to the control code page */
reboot_entry
=
fncpy
(
reboot_code_buffer
,
&
relocate_new_kernel
,
relocate_new_kernel_size
);
data
=
reboot_code_buffer
+
relocate_new_kernel_size
;
data
->
kexec_start_address
=
image
->
start
;
data
->
kexec_indirection_page
=
page_list
;
data
->
kexec_mach_type
=
machine_arch_type
;
data
->
kexec_r2
=
image
->
arch
.
kernel_r2
;
/* get the identity mapping physical address for the reboot code */
reboot_entry_phys
=
virt_to_idmap
(
reboot_entry
);
...
...
arch/arm/kernel/relocate_kernel.S
View file @
623ca2ba
...
...
@@ -5,14 +5,16 @@
#include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/asm-offsets.h>
#include <asm/kexec.h>
.
align
3
/*
not
needed
for
this
code
,
but
keeps
fncpy
()
happy
*/
ENTRY
(
relocate_new_kernel
)
ldr
r0
,
kexec_indirection_page
ldr
r1
,
kexec_start_address
adr
r7
,
relocate_new_kernel_end
ldr
r0
,
[
r7
,
#
KEXEC_INDIR_PAGE
]
ldr
r1
,
[
r7
,
#
KEXEC_START_ADDR
]
/
*
*
If
there
is
no
indirection
page
(
we
are
doing
crashdumps
)
...
...
@@ -57,34 +59,16 @@ ENTRY(relocate_new_kernel)
2
:
/
*
Jump
to
relocated
kernel
*/
mov
lr
,
r1
mov
r0
,#
0
ldr
r1
,
kexec_mach_type
ldr
r2
,
kexec_boot_atags
ARM
(
ret
lr
)
THUMB
(
bx
lr
)
.
align
.
globl
kexec_start_address
kexec_start_address
:
.
long
0x0
.
globl
kexec_indirection_page
kexec_indirection_page
:
.
long
0x0
.
globl
kexec_mach_type
kexec_mach_type
:
.
long
0x0
/
*
phy
addr
of
the
atags
for
the
new
kernel
*/
.
globl
kexec_boot_atags
kexec_boot_atags
:
.
long
0x0
mov
lr
,
r1
mov
r0
,
#
0
ldr
r1
,
[
r7
,
#
KEXEC_MACH_TYPE
]
ldr
r2
,
[
r7
,
#
KEXEC_R2
]
ARM
(
ret
lr
)
THUMB
(
bx
lr
)
ENDPROC
(
relocate_new_kernel
)
.
align
3
relocate_new_kernel_end
:
.
globl
relocate_new_kernel_size
...
...
arch/arm/kernel/signal.c
View file @
623ca2ba
...
...
@@ -693,18 +693,20 @@ struct page *get_signal_page(void)
addr
=
page_address
(
page
);
/* Poison the entire page */
memset32
(
addr
,
__opcode_to_mem_arm
(
0xe7fddef1
),
PAGE_SIZE
/
sizeof
(
u32
));
/* Give the signal return code some randomness */
offset
=
0x200
+
(
get_random_int
()
&
0x7fc
);
signal_return_offset
=
offset
;
/*
* Copy signal return handlers into the vector page, and
* set sigreturn to be a pointer to these.
*/
/* Copy signal return handlers into the page */
memcpy
(
addr
+
offset
,
sigreturn_codes
,
sizeof
(
sigreturn_codes
));
ptr
=
(
unsigned
long
)
addr
+
offset
;
flush_icache_range
(
ptr
,
ptr
+
sizeof
(
sigreturn_codes
));
/* Flush out all instructions in this page */
ptr
=
(
unsigned
long
)
addr
;
flush_icache_range
(
ptr
,
ptr
+
PAGE_SIZE
);
return
page
;
}
...
...
arch/arm/mach-omap2/cpuidle44xx.c
View file @
623ca2ba
...
...
@@ -151,10 +151,10 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
(
cx
->
mpu_logic_state
==
PWRDM_POWER_OFF
);
/* Enter broadcast mode for periodic timers */
tick_broadcast_enable
();
RCU_NONIDLE
(
tick_broadcast_enable
()
)
;
/* Enter broadcast mode for one-shot timers */
tick_broadcast_enter
();
RCU_NONIDLE
(
tick_broadcast_enter
()
)
;
/*
* Call idle CPU PM enter notifier chain so that
...
...
@@ -166,7 +166,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
if
(
dev
->
cpu
==
0
)
{
pwrdm_set_logic_retst
(
mpu_pd
,
cx
->
mpu_logic_state
);
omap_set_pwrdm_state
(
mpu_pd
,
cx
->
mpu_state
);
RCU_NONIDLE
(
omap_set_pwrdm_state
(
mpu_pd
,
cx
->
mpu_state
)
)
;
/*
* Call idle CPU cluster PM enter notifier chain
...
...
@@ -178,7 +178,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
index
=
0
;
cx
=
state_ptr
+
index
;
pwrdm_set_logic_retst
(
mpu_pd
,
cx
->
mpu_logic_state
);
omap_set_pwrdm_state
(
mpu_pd
,
cx
->
mpu_state
);
RCU_NONIDLE
(
omap_set_pwrdm_state
(
mpu_pd
,
cx
->
mpu_state
)
)
;
mpuss_can_lose_context
=
0
;
}
}
...
...
@@ -194,9 +194,9 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
mpuss_can_lose_context
)
gic_dist_disable
();
clkdm_deny_idle
(
cpu_clkdm
[
1
]);
omap_set_pwrdm_state
(
cpu_pd
[
1
],
PWRDM_POWER_ON
);
clkdm_allow_idle
(
cpu_clkdm
[
1
]);
RCU_NONIDLE
(
clkdm_deny_idle
(
cpu_clkdm
[
1
])
)
;
RCU_NONIDLE
(
omap_set_pwrdm_state
(
cpu_pd
[
1
],
PWRDM_POWER_ON
)
)
;
RCU_NONIDLE
(
clkdm_allow_idle
(
cpu_clkdm
[
1
])
)
;
if
(
IS_PM44XX_ERRATUM
(
PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD
)
&&
mpuss_can_lose_context
)
{
...
...
@@ -222,7 +222,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
cpu_pm_exit
();
cpu_pm_out:
tick_broadcast_exit
();
RCU_NONIDLE
(
tick_broadcast_exit
()
)
;
fail:
cpuidle_coupled_parallel_barrier
(
dev
,
&
abort_barrier
);
...
...
arch/arm/xen/enlighten.c
View file @
623ca2ba
...
...
@@ -370,8 +370,6 @@ static int __init xen_guest_init(void)
return
-
ENOMEM
;
}
gnttab_init
();
if
(
!
xen_initial_domain
())
xenbus_probe
();
/*
* Making sure board specific code will not set up ops for
...
...
arch/arm64/boot/dts/qcom/sdm845-db845c.dts
View file @
623ca2ba
...
...
@@ -415,7 +415,9 @@
&
gcc
{
protected
-
clocks
=
<
GCC_QSPI_CORE_CLK
>,
<
GCC_QSPI_CORE_CLK_SRC
>,
<
GCC_QSPI_CNOC_PERIPH_AHB_CLK
>;
<
GCC_QSPI_CNOC_PERIPH_AHB_CLK
>,
<
GCC_LPASS_Q6_AXI_CLK
>,
<
GCC_LPASS_SWAY_CLK
>;
};
&
gpu
{
...
...
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
View file @
623ca2ba
...
...
@@ -245,7 +245,9 @@
&
gcc
{
protected
-
clocks
=
<
GCC_QSPI_CORE_CLK
>,
<
GCC_QSPI_CORE_CLK_SRC
>,
<
GCC_QSPI_CNOC_PERIPH_AHB_CLK
>;
<
GCC_QSPI_CNOC_PERIPH_AHB_CLK
>,
<
GCC_LPASS_Q6_AXI_CLK
>,
<
GCC_LPASS_SWAY_CLK
>;
};
&
gpu
{
...
...
arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts
View file @
623ca2ba
...
...
@@ -114,6 +114,10 @@
cpu
-
supply
=
<&
vdd_arm
>;
};
&
display_subsystem
{
status
=
"disabled"
;
};
&
gmac2io
{
assigned
-
clocks
=
<&
cru
SCLK_MAC2IO
>,
<&
cru
SCLK_MAC2IO_EXT
>;
assigned
-
clock
-
parents
=
<&
gmac_clk
>,
<&
gmac_clk
>;
...
...
arch/arm64/boot/dts/rockchip/rk3399.dtsi
View file @
623ca2ba
...
...
@@ -234,6 +234,7 @@
reg = <0x0 0xf8000000 0x0 0x2000000>,
<0x0 0xfd000000 0x0 0x1000000>;
reg-names = "axi-base", "apb-base";
device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;
...
...
@@ -252,7 +253,6 @@
<0 0 0 2 &pcie0_intc 1>,
<0 0 0 3 &pcie0_intc 2>,
<0 0 0 4 &pcie0_intc 3>;
linux,pci-domain = <0>;
max-link-speed = <1>;
msi-map = <0x0 &its 0x0 0x1000>;
phys = <&pcie_phy 0>, <&pcie_phy 1>,
...
...
@@ -1278,7 +1278,6 @@
compatible = "rockchip,rk3399-vdec";
reg = <0x0 0xff660000 0x0 0x400>;
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
interrupt-names = "vdpu";
clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
<&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
clock-names = "axi", "ahb", "cabac", "core";
...
...
arch/arm64/kernel/cpufeature.c
View file @
623ca2ba
...
...
@@ -1696,16 +1696,12 @@ static void bti_enable(const struct arm64_cpu_capabilities *__unused)
#ifdef CONFIG_ARM64_MTE
static
void
cpu_enable_mte
(
struct
arm64_cpu_capabilities
const
*
cap
)
{
static
bool
cleared_zero_page
=
false
;
/*
* Clear the tags in the zero page. This needs to be done via the
* linear map which has the Tagged attribute.
*/
if
(
!
cleared_zero_page
)
{
cleared_zero_page
=
true
;
if
(
!
test_and_set_bit
(
PG_mte_tagged
,
&
ZERO_PAGE
(
0
)
->
flags
))
mte_clear_page_tags
(
lm_alias
(
empty_zero_page
));
}
}
#endif
/* CONFIG_ARM64_MTE */
...
...
arch/arm64/kernel/mte.c
View file @
623ca2ba
...
...
@@ -239,11 +239,12 @@ static int __access_remote_tags(struct mm_struct *mm, unsigned long addr,
* would cause the existing tags to be cleared if the page
* was never mapped with PROT_MTE.
*/
if
(
!
test_bit
(
PG_mte_tagged
,
&
page
->
flags
))
{
if
(
!
(
vma
->
vm_flags
&
VM_MTE
))
{
ret
=
-
EOPNOTSUPP
;
put_page
(
page
);
break
;
}
WARN_ON_ONCE
(
!
test_bit
(
PG_mte_tagged
,
&
page
->
flags
));
/* limit access to the end of the page */
offset
=
offset_in_page
(
addr
);
...
...
arch/h8300/kernel/asm-offsets.c
View file @
623ca2ba
...
...
@@ -63,6 +63,9 @@ int main(void)
OFFSET
(
TI_FLAGS
,
thread_info
,
flags
);
OFFSET
(
TI_CPU
,
thread_info
,
cpu
);
OFFSET
(
TI_PRE
,
thread_info
,
preempt_count
);
#ifdef CONFIG_PREEMPTION
DEFINE
(
TI_PRE_COUNT
,
offsetof
(
struct
thread_info
,
preempt_count
));
#endif
return
0
;
}
arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
View file @
623ca2ba
...
...
@@ -90,7 +90,6 @@
phy0
:
ethernet
-
phy
@
0
{
compatible
=
"ethernet-phy-id0007.0771"
;
reg
=
<
0
>;
reset
-
gpios
=
<&
gpio
12
GPIO_ACTIVE_LOW
>;
};
};
...
...
arch/riscv/include/asm/page.h
View file @
623ca2ba
...
...
@@ -135,7 +135,10 @@ extern phys_addr_t __phys_addr_symbol(unsigned long x);
#endif
/* __ASSEMBLY__ */
#define virt_addr_valid(vaddr) (pfn_valid(virt_to_pfn(vaddr)))
#define virt_addr_valid(vaddr) ({ \
unsigned long _addr = (unsigned long)vaddr; \
(unsigned long)(_addr) >= PAGE_OFFSET && pfn_valid(virt_to_pfn(_addr)); \
})
#define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_NON_EXEC
...
...
arch/x86/Makefile
View file @
623ca2ba
...
...
@@ -57,6 +57,9 @@ export BITS
KBUILD_CFLAGS
+=
-mno-sse
-mno-mmx
-mno-sse2
-mno-3dnow
KBUILD_CFLAGS
+=
$(
call
cc-option,-mno-avx,
)
# Intel CET isn't enabled in the kernel
KBUILD_CFLAGS
+=
$(
call
cc-option,-fcf-protection
=
none
)
ifeq
($(CONFIG_X86_32),y)
BITS
:=
32
UTS_MACHINE
:=
i386
...
...
@@ -127,9 +130,6 @@ else
KBUILD_CFLAGS
+=
-mno-red-zone
KBUILD_CFLAGS
+=
-mcmodel
=
kernel
# Intel CET isn't enabled in the kernel
KBUILD_CFLAGS
+=
$(
call
cc-option,-fcf-protection
=
none
)
endif
ifdef
CONFIG_X86_X32
...
...
arch/x86/kernel/cpu/intel.c
View file @
623ca2ba
...
...
@@ -1159,6 +1159,7 @@ static const struct x86_cpu_id split_lock_cpu_ids[] __initconst = {
X86_MATCH_INTEL_FAM6_MODEL
(
TIGERLAKE
,
1
),
X86_MATCH_INTEL_FAM6_MODEL
(
SAPPHIRERAPIDS_X
,
1
),
X86_MATCH_INTEL_FAM6_MODEL
(
ALDERLAKE
,
1
),
X86_MATCH_INTEL_FAM6_MODEL
(
ALDERLAKE_L
,
1
),
{}
};
...
...
Prev
1
2
3
4
5
…
7
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment