Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
2c5abe0
gpio: ep93xx: fix BUG_ON port F usage
maquefel Feb 9, 2021
4851d7b
gpio: ep93xx: Fix single irqchip with multi gpiochips
maquefel Feb 9, 2021
74c7baf
tracing: Do not count ftrace events in top level enable output
rostedt Feb 5, 2021
a0997a8
tracing: Check length before giving out the filter buffer
rostedt Feb 10, 2021
18d691d
arm/xen: Don't probe xenbus as part of an early initcall
Feb 10, 2021
2407794
cgroup: fix psi monitor for root cgroup
odinuge Jan 16, 2021
92c40ed
arm64: dts: rockchip: Fix PCIe DT properties on rk3399
Aug 15, 2020
2cb208b
arm64: dts: qcom: sdm845: Reserve LPASS clocks in gcc
andersson Dec 22, 2020
2bb22cd
ARM: OMAP2+: Fix suspcious RCU usage splats for omap_enter_idle_coupled
tmlind Jan 10, 2021
cc51264
platform/x86: hp-wmi: Disable tablet-mode reporting by default
jwrdegoede Jan 20, 2021
df094aa
ovl: perform vfs_getxattr() with mounter creds
Jan 28, 2021
43e3cf4
cap: fix conversions on getxattr
Jan 28, 2021
335a285
ovl: skip getxattr of security labels
amir73il Dec 19, 2020
4516a0a
nvme-pci: ignore the subsysem NQN on Phison E16
frosteyes Feb 1, 2021
7697995
drm/amd/display: Add more Clock Sources to DCN2.1
Jan 15, 2021
f35da70
drm/amd/display: Fix dc_sink kref count in emulated_link_detect
victorlu-amd Jan 15, 2021
5c8f632
drm/amd/display: Free atomic state after drm_atomic_commit
victorlu-amd Jan 14, 2021
0db8d19
drm/amd/display: Decrement refcount of dc_sink before reassignment
victorlu-amd Jan 15, 2021
91d604a
riscv: virt_addr_valid must check the address belongs to linear mapping
AlexGhiti Jan 29, 2021
e60577e
bfq-iosched: Revert "bfq: Fix computation of shallow depth"
linfeng2999 Feb 2, 2021
06350c7
ARM: dts: lpc32xx: Revert set default clock rate of HCLK PLL
alexandrebelloni Feb 3, 2021
f49bff8
ARM: ensure the signal page contains defined contents
Jan 29, 2021
b7f41a7
ARM: kexec: fix oops after TLB are invalidated
Feb 1, 2021
4f54167
vmlinux.lds.h: Create section for protection against instrumentation
KAGA-KOKO Mar 9, 2020
8a5991c
lkdtm: don't move ctors to .rodata
mrutland-arm Dec 7, 2020
69beec4
mt76: dma: fix a possible memory leak in mt76_add_fragment()
LorenzoBianconi Jan 26, 2021
e291266
drm/vc4: hvs: Fix buffer overflow with the dlist handling
mripard Jan 29, 2021
7e3a6b8
bpf: Check for integer overflow when using roundup_pow_of_two()
minhbq-99 Jan 27, 2021
35c279e
netfilter: xt_recent: Fix attempt to update deleted entry
Jan 29, 2021
b110391
netfilter: nftables: fix possible UAF over chains from packet path in…
ummakynes Feb 2, 2021
ff758e8
netfilter: flowtable: fix tcp and udp header checksum update
Feb 2, 2021
71d2bd7
xen/netback: avoid race in xenvif_rx_ring_slots_available()
jgross1 Feb 2, 2021
6107338
net: enetc: initialize the RFS and RSS memories
vladimiroltean Feb 4, 2021
c0daa74
selftests: txtimestamp: fix compilation issue
vvfedorenko Feb 4, 2021
3f8954c
net: stmmac: set TxQ mode back to DCB after disabling CBS
Feb 4, 2021
0142b95
ibmvnic: Clear failover_pending if unable to schedule
sukadev Feb 3, 2021
da1a544
netfilter: conntrack: skip identical origin tuple in same zone only
Feb 5, 2021
a045956
x86/build: Disable CET instrumentation in the kernel for 32-bit too
suryasaimadhu Feb 8, 2021
beb85f4
net: hns3: add a check for queue_id in hclge_reset_vf_queue()
Feb 9, 2021
107cf5e
firmware_loader: align .builtin_fw to 8
MaskRay Feb 9, 2021
3063b80
drm/sun4i: tcon: set sync polarity for tcon1 channel
jernejsk Feb 9, 2021
40db7db
drm/sun4i: Fix H6 HDMI PHY configuration
jernejsk Feb 9, 2021
b02db23
drm/sun4i: dw-hdmi: Fix max. frequency for H6
jernejsk Feb 9, 2021
546d92a
clk: sunxi-ng: mp: fix parent rate change flag check
jernejsk Feb 9, 2021
1019015
i2c: stm32f7: fix configuration of the digital filter
Feb 5, 2021
0b49b82
h8300: fix PREEMPTION build, TI_PRE_COUNT undefined
rddunlap Feb 13, 2021
35834bf
usb: dwc3: ulpi: fix checkpatch warning
felipebalbi Aug 13, 2020
b90e8d5
usb: dwc3: ulpi: Replace CPU-based busyloop with Protocol-based one
fancer Dec 10, 2020
73bc75f
rxrpc: Fix clearance of Tx/Rx ring when releasing a call
dhowells Feb 3, 2021
0b42ab0
udp: fix skb_copy_and_csum_datagram with odd segment sizes
wdebruij Feb 3, 2021
5c53956
net: dsa: call teardown method on probe failure
vladimiroltean Feb 4, 2021
2085d88
net: gro: do not keep too many GRO packets in napi->rx_list
edumazet Feb 4, 2021
611d93f
net: fix iteration for sctp transport seq_files
neilbrown Feb 5, 2021
a5f0b6f
net/vmw_vsock: improve locking in vsock_connect_timeout()
Feb 5, 2021
2545c5b
net: watchdog: hold device global xmit lock during tx disable
Feb 6, 2021
c025081
vsock/virtio: update credit only if socket is not closed
stefano-garzarella Feb 8, 2021
ac79b1d
vsock: fix locking in vsock_shutdown()
stefano-garzarella Feb 9, 2021
99996cd
net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS
novitoll Feb 1, 2021
b55528a
net/qrtr: restrict user-controlled length in qrtr_tun_write_iter()
novitoll Feb 2, 2021
e8ffaca
ovl: expand warning in ovl_d_real()
Nov 12, 2020
850e6a9
Linux 5.4.99
gregkh Feb 17, 2021
ce0c0d6
Merge tag 'v5.4.99' into 5.4-2.3.x-imx
zandrey Feb 17, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 4
SUBLEVEL = 98
SUBLEVEL = 99
EXTRAVERSION =
NAME = Kleptomaniac Octopus

Expand Down
3 changes: 0 additions & 3 deletions arch/arm/boot/dts/lpc32xx.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -329,9 +329,6 @@

clocks = <&xtal_32k>, <&xtal>;
clock-names = "xtal_32k", "xtal";

assigned-clocks = <&clk LPC32XX_CLK_HCLK_PLL>;
assigned-clock-rates = <208000000>;
};
};

Expand Down
12 changes: 12 additions & 0 deletions arch/arm/include/asm/kexec-internal.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/* 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
5 changes: 5 additions & 0 deletions arch/arm/kernel/asm-offsets.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <linux/kvm_host.h>
#endif
#include <asm/cacheflush.h>
#include <asm/kexec-internal.h>
#include <asm/glue-df.h>
#include <asm/glue-pf.h>
#include <asm/mach/arch.h>
Expand Down Expand Up @@ -190,5 +191,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;
}
20 changes: 8 additions & 12 deletions arch/arm/kernel/machine_kexec.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <asm/pgalloc.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>
Expand All @@ -24,11 +25,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;

/*
Expand Down Expand Up @@ -161,6 +157,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;

Expand All @@ -176,18 +173,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);

Expand Down
38 changes: 11 additions & 27 deletions arch/arm/kernel/relocate_kernel.S
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down
14 changes: 8 additions & 6 deletions arch/arm/kernel/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -694,18 +694,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;
}
Expand Down
16 changes: 8 additions & 8 deletions arch/arm/mach-omap2/cpuidle44xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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;
}
}
Expand All @@ -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) {
Expand All @@ -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);
Expand Down
2 changes: 0 additions & 2 deletions arch/arm/xen/enlighten.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 3 additions & 1 deletion arch/arm64/boot/dts/qcom/sdm845-db845c.dts
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,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>;
};

&pm8998_gpio {
Expand Down
4 changes: 3 additions & 1 deletion arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,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>;
};

&i2c1 {
Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/boot/dts/rockchip/rk3399.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,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>;
Expand All @@ -250,7 +251,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>,
Expand Down
3 changes: 3 additions & 0 deletions arch/h8300/kernel/asm-offsets.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
1 change: 1 addition & 0 deletions arch/powerpc/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ SECTIONS
#ifdef CONFIG_PPC64
*(.tramp.ftrace.text);
#endif
NOINSTR_TEXT
SCHED_TEXT
CPUIDLE_TEXT
LOCK_TEXT
Expand Down
5 changes: 4 additions & 1 deletion arch/riscv/include/asm/page.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,10 @@ extern unsigned long min_low_pfn;

#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_READ | VM_WRITE | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
Expand Down
6 changes: 3 additions & 3 deletions arch/x86/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ endif
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
Expand Down Expand Up @@ -131,9 +134,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
Expand Down
8 changes: 4 additions & 4 deletions block/bfq-iosched.c
Original file line number Diff line number Diff line change
Expand Up @@ -6320,13 +6320,13 @@ static unsigned int bfq_update_depths(struct bfq_data *bfqd,
* limit 'something'.
*/
/* no more than 50% of tags for async I/O */
bfqd->word_depths[0][0] = max(bt->sb.depth >> 1, 1U);
bfqd->word_depths[0][0] = max((1U << bt->sb.shift) >> 1, 1U);
/*
* no more than 75% of tags for sync writes (25% extra tags
* w.r.t. async I/O, to prevent async I/O from starving sync
* writes)
*/
bfqd->word_depths[0][1] = max((bt->sb.depth * 3) >> 2, 1U);
bfqd->word_depths[0][1] = max(((1U << bt->sb.shift) * 3) >> 2, 1U);

/*
* In-word depths in case some bfq_queue is being weight-
Expand All @@ -6336,9 +6336,9 @@ static unsigned int bfq_update_depths(struct bfq_data *bfqd,
* shortage.
*/
/* no more than ~18% of tags for async I/O */
bfqd->word_depths[1][0] = max((bt->sb.depth * 3) >> 4, 1U);
bfqd->word_depths[1][0] = max(((1U << bt->sb.shift) * 3) >> 4, 1U);
/* no more than ~37% of tags for sync writes (~20% extra tags) */
bfqd->word_depths[1][1] = max((bt->sb.depth * 6) >> 4, 1U);
bfqd->word_depths[1][1] = max(((1U << bt->sb.shift) * 6) >> 4, 1U);

for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++)
Expand Down
2 changes: 1 addition & 1 deletion drivers/clk/sunxi-ng/ccu_mp.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ static unsigned long ccu_mp_round_rate(struct ccu_mux_internal *mux,
max_m = cmp->m.max ?: 1 << cmp->m.width;
max_p = cmp->p.max ?: 1 << ((1 << cmp->p.width) - 1);

if (!(clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT)) {
if (!clk_hw_can_set_rate_parent(&cmp->common.hw)) {
ccu_mp_find_best(*parent_rate, rate, max_m, max_p, &m, &p);
rate = *parent_rate / p / m;
} else {
Expand Down
Loading