Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3ba0ea9 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge 4.9.245 into android-4.9-q



Changes in 4.9.245
	powerpc/64s: Define MASKABLE_RELON_EXCEPTION_PSERIES_OOL
	powerpc/64s: move some exception handlers out of line
	powerpc/64s: flush L1D on kernel entry
	powerpc: Add a framework for user access tracking
	powerpc: Implement user_access_begin and friends
	powerpc: Fix __clear_user() with KUAP enabled
	powerpc/uaccess: Evaluate macro arguments once, before user access is allowed
	powerpc/64s: flush L1D after user accesses
	i2c: imx: use clk notifier for rate changes
	i2c: imx: Fix external abort on interrupt in exit paths
	i2c: mux: pca954x: Add missing pca9546 definition to chip_desc
	powerpc/8xx: Always fault when _PAGE_ACCESSED is not set
	Input: sunkbd - avoid use-after-free in teardown paths
	mac80211: always wind down STA state
	KVM: x86: clflushopt should be treated as a no-op by emulation
	ACPI: GED: fix -Wformat
	Linux 4.9.245

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
Change-Id: I688b066e99eeb16270414e0c4cb4dc3bb244486c
parents 053c5267 ce62d3c7
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -2539,6 +2539,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
					       mds=off [X86]
					       tsx_async_abort=off [X86]
					       kvm.nx_huge_pages=off [X86]
					       no_entry_flush [PPC]
					       no_uaccess_flush [PPC]

				Exceptions:
					       This does not have any effect on
@@ -2845,6 +2847,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.

	noefi		Disable EFI runtime services support.

	no_entry_flush	[PPC] Don't flush the L1-D cache when entering the kernel.

	noexec		[IA-64]

	noexec		[X86]
@@ -2894,6 +2898,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
	nospec_store_bypass_disable
			[HW] Disable all mitigations for the Speculative Store Bypass vulnerability

	no_uaccess_flush
			[PPC] Don't flush the L1-D cache after accessing user data.

	noxsave		[BUGS=X86] Disables x86 extended register state save
			and restore using xsave. The kernel will fallback to
			enabling legacy floating-point and sse state.
@@ -5044,6 +5051,14 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
			Disables the PV optimizations forcing the HVM guest to
			run as generic HVM guest with no PV drivers.

	xen.event_eoi_delay=	[XEN]
			How long to delay EOI handling in case of event
			storms (jiffies). Default is 10.

	xen.event_loop_timeout=	[XEN]
			After which time (jiffies) the event handling loop
			should start to delay EOI handling. Default is 2.

	xirc2ps_cs=	[NET,PCMCIA]
			Format:
			<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 9
SUBLEVEL = 243
SUBLEVEL = 245
EXTRAVERSION =
NAME = Roaring Lionus

+22 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_POWERPC_BOOK3S_64_KUP_RADIX_H
#define _ASM_POWERPC_BOOK3S_64_KUP_RADIX_H

DECLARE_STATIC_KEY_FALSE(uaccess_flush_key);

/* Prototype for function defined in exceptions-64s.S */
void do_uaccess_flush(void);

static __always_inline void allow_user_access(void __user *to, const void __user *from,
					      unsigned long size)
{
}

static inline void prevent_user_access(void __user *to, const void __user *from,
				       unsigned long size)
{
	if (static_branch_unlikely(&uaccess_flush_key))
		do_uaccess_flush();
}

#endif /* _ASM_POWERPC_BOOK3S_64_KUP_RADIX_H */
+12 −1
Original line number Diff line number Diff line
@@ -66,11 +66,18 @@
	nop;								\
	nop

#define ENTRY_FLUSH_SLOT						\
	ENTRY_FLUSH_FIXUP_SECTION;					\
	nop;								\
	nop;								\
	nop;

/*
 * r10 must be free to use, r13 must be paca
 */
#define INTERRUPT_TO_KERNEL						\
	STF_ENTRY_BARRIER_SLOT
	STF_ENTRY_BARRIER_SLOT;						\
	ENTRY_FLUSH_SLOT

/*
 * Macros for annotating the expected destination of (h)rfid
@@ -563,6 +570,10 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
	EXCEPTION_PROLOG_1(PACA_EXGEN, SOFTEN_NOTEST_HV, vec);		\
	EXCEPTION_PROLOG_PSERIES_1(label, EXC_HV)

#define MASKABLE_RELON_EXCEPTION_PSERIES_OOL(vec, label)               \
       EXCEPTION_PROLOG_1(PACA_EXGEN, SOFTEN_NOTEST_PR, vec);          \
       EXCEPTION_PROLOG_PSERIES_1(label, EXC_STD)

/*
 * Our exception common code can be passed various "additions"
 * to specify the behaviour of interrupts, whether to kick the
+19 −0
Original line number Diff line number Diff line
@@ -205,6 +205,22 @@ void setup_feature_keys(void);
	FTR_ENTRY_OFFSET 955b-956b;			\
	.popsection;

#define UACCESS_FLUSH_FIXUP_SECTION			\
959:							\
	.pushsection __uaccess_flush_fixup,"a";		\
	.align 2;					\
960:							\
	FTR_ENTRY_OFFSET 959b-960b;			\
	.popsection;

#define ENTRY_FLUSH_FIXUP_SECTION			\
957:							\
	.pushsection __entry_flush_fixup,"a";		\
	.align 2;					\
958:							\
	FTR_ENTRY_OFFSET 957b-958b;			\
	.popsection;

#define RFI_FLUSH_FIXUP_SECTION				\
951:							\
	.pushsection __rfi_flush_fixup,"a";		\
@@ -236,8 +252,11 @@ void setup_feature_keys(void);
#ifndef __ASSEMBLY__

extern long stf_barrier_fallback;
extern long entry_flush_fallback;
extern long __start___stf_entry_barrier_fixup, __stop___stf_entry_barrier_fixup;
extern long __start___stf_exit_barrier_fixup, __stop___stf_exit_barrier_fixup;
extern long __start___uaccess_flush_fixup, __stop___uaccess_flush_fixup;
extern long __start___entry_flush_fixup, __stop___entry_flush_fixup;
extern long __start___rfi_flush_fixup, __stop___rfi_flush_fixup;
extern long __start___barrier_nospec_fixup, __stop___barrier_nospec_fixup;
extern long __start__btb_flush_fixup, __stop__btb_flush_fixup;
Loading