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

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

Merge 3.18.19 into android-3.18



Changes in 3.18.19:
	mnt: Refactor the logic for mounting sysfs and proc in a user namespace
	tty/serial: at91: RS485 mode: 0 is valid for delay_rts_after_send
	mnt: Modify fs_fully_visible to deal with locked ro nodev and atime
	kprobes/x86: Return correct length in __copy_instruction()
	config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected
	netfilter: nfnetlink_cthelper: Remove 'const' and '&' to avoid warnings
	fs/ufs: revert "ufs: fix deadlocks introduced by sb mutex merge"
	fs/ufs: restore s_lock mutex
	can: fix loss of CAN frames in raw_rcv
	fs: Fix S_NOSEC handling
	tracing: Have filter check for balanced ops
	sb_edac: Fix erroneous bytes->gigabytes conversion
	netfilter: Zero the tuple in nfnl_cthelper_parse_tuple()
	netfilter: nft_compat: set IP6T_F_PROTO flag if protocol is set
	netfilter: nf_tables: allow to change chain policy without hook if it exists
	x86/microcode/intel: Guard against stack overflow in the loader
	Btrfs: make xattr replace operations atomic
	ARM: clk-imx6q: refine sata's parent
	KVM: nSVM: Check for NRIPS support before updating control field
	arm64/kvm: Fix assembler compatibility of macros
	iommu/amd: Handle large pages correctly in free_pagetable
	arm: KVM: force execution of HCPTR access on VM exit
	KVM: x86: make vapics_in_nmi_mode atomic
	vfs: Remove incorrect debugging WARN in prepend_path
	x86/boot: Fix overflow warning with 32-bit binutils
	perf: Fix ring_buffer_attach() RCU sync, again
	perf/x86: Honor the architectural performance monitoring version
	usb: gadget: f_fs: add extra check before unregister_gadget_item
	selinux: fix setting of security labels on NFS
	KVM: s390: virtio-ccw: don't overwrite config space values
	KVM: x86: properly restore LVT0
	vfs: Ignore unlocked mounts in fs_fully_visible
	ufs: Fix warning from unlock_new_inode()
	ufs: Fix possible deadlock when looking up directories
	fs/ufs: restore s_lock mutex_init()
	Revert "nfs: take extra reference to fl->fl_file when running a LOCKU operation"
	Revert "Input: synaptics - add min/max quirk for Lenovo S540"
	Input: synaptics - add min/max quirk for Lenovo S540
	rtnl: restore notifications for deleted interfaces
	x86/xen: allow privcmd hypercalls to be preempted
	Linux 3.18.19

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parents b0b3e62e 22a6cbf9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 3
PATCHLEVEL = 18
SUBLEVEL = 18
SUBLEVEL = 19
EXTRAVERSION =
NAME = Shuffling Zombie Juror

+4 −6
Original line number Diff line number Diff line
@@ -159,13 +159,9 @@ __kvm_vcpu_return:
	@ Don't trap coprocessor accesses for host kernel
	set_hstr vmexit
	set_hdcr vmexit
	set_hcptr vmexit, (HCPTR_TTA | HCPTR_TCP(10) | HCPTR_TCP(11))
	set_hcptr vmexit, (HCPTR_TTA | HCPTR_TCP(10) | HCPTR_TCP(11)), after_vfp_restore

#ifdef CONFIG_VFPv3
	@ Save floating point registers we if let guest use them.
	tst	r2, #(HCPTR_TCP(10) | HCPTR_TCP(11))
	bne	after_vfp_restore

	@ Switch VFP/NEON hardware state to the host's
	add	r7, vcpu, #VCPU_VFP_GUEST
	store_vfp_state r7
@@ -177,6 +173,8 @@ after_vfp_restore:
	@ Restore FPEXC_EN which we clobbered on entry
	pop	{r2}
	VFPFMXR FPEXC, r2
#else
after_vfp_restore:
#endif

	@ Reset Hyp-role
@@ -472,7 +470,7 @@ switch_to_guest_vfp:
	push	{r3-r7}

	@ NEON/VFP used.  Turn on VFP access.
	set_hcptr vmexit, (HCPTR_TCP(10) | HCPTR_TCP(11))
	set_hcptr vmtrap, (HCPTR_TCP(10) | HCPTR_TCP(11))

	@ Switch VFP/NEON hardware state to the guest's
	add	r7, r0, #VCPU_VFP_HOST
+18 −2
Original line number Diff line number Diff line
@@ -599,8 +599,13 @@ ARM_BE8(rev r6, r6 )
.endm

/* Configures the HCPTR (Hyp Coprocessor Trap Register) on entry/return
 * (hardware reset value is 0). Keep previous value in r2. */
.macro set_hcptr operation, mask
 * (hardware reset value is 0). Keep previous value in r2.
 * An ISB is emited on vmexit/vmtrap, but executed on vmexit only if
 * VFP wasn't already enabled (always executed on vmtrap).
 * If a label is specified with vmexit, it is branched to if VFP wasn't
 * enabled.
 */
.macro set_hcptr operation, mask, label = none
	mrc	p15, 4, r2, c1, c1, 2
	ldr	r3, =\mask
	.if \operation == vmentry
@@ -609,6 +614,17 @@ ARM_BE8(rev r6, r6 )
	bic	r3, r2, r3		@ Don't trap defined coproc-accesses
	.endif
	mcr	p15, 4, r3, c1, c1, 2
	.if \operation != vmentry
	.if \operation == vmexit
	tst	r2, #(HCPTR_TCP(10) | HCPTR_TCP(11))
	beq	1f
	.endif
	isb
	.if \label != none
	b	\label
	.endif
1:
	.endif
.endm

/* Configures the HDCR (Hyp Debug Configuration Register) on entry/return
+1 −1
Original line number Diff line number Diff line
@@ -439,7 +439,7 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
	clk[IMX6QDL_CLK_GPMI_IO]      = imx_clk_gate2("gpmi_io",       "enfc",              base + 0x78, 28);
	clk[IMX6QDL_CLK_GPMI_APB]     = imx_clk_gate2("gpmi_apb",      "usdhc3",            base + 0x78, 30);
	clk[IMX6QDL_CLK_ROM]          = imx_clk_gate2("rom",           "ahb",               base + 0x7c, 0);
	clk[IMX6QDL_CLK_SATA]         = imx_clk_gate2("sata",          "ipg",               base + 0x7c, 4);
	clk[IMX6QDL_CLK_SATA]         = imx_clk_gate2("sata",          "ahb",               base + 0x7c, 4);
	clk[IMX6QDL_CLK_SDMA]         = imx_clk_gate2("sdma",          "ahb",               base + 0x7c, 6);
	clk[IMX6QDL_CLK_SPBA]         = imx_clk_gate2("spba",          "ipg",               base + 0x7c, 12);
	clk[IMX6QDL_CLK_SPDIF]        = imx_clk_gate2("spdif",         "spdif_podf",        base + 0x7c, 14);
+11 −10
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#ifndef __ARM64_KVM_ARM_H__
#define __ARM64_KVM_ARM_H__

#include <asm/memory.h>
#include <asm/types.h>

/* Hyp Configuration Register (HCR) bits */
@@ -160,9 +161,9 @@
#endif

#define VTTBR_BADDR_SHIFT (VTTBR_X - 1)
#define VTTBR_BADDR_MASK  (((1LLU << (PHYS_MASK_SHIFT - VTTBR_X)) - 1) << VTTBR_BADDR_SHIFT)
#define VTTBR_VMID_SHIFT  (48LLU)
#define VTTBR_VMID_MASK	  (0xffLLU << VTTBR_VMID_SHIFT)
#define VTTBR_BADDR_MASK  (((UL(1) << (PHYS_MASK_SHIFT - VTTBR_X)) - 1) << VTTBR_BADDR_SHIFT)
#define VTTBR_VMID_SHIFT  (UL(48))
#define VTTBR_VMID_MASK	  (UL(0xFF) << VTTBR_VMID_SHIFT)

/* Hyp System Trap Register */
#define HSTR_EL2_TTEE	(1 << 16)
@@ -185,13 +186,13 @@

/* Exception Syndrome Register (ESR) bits */
#define ESR_EL2_EC_SHIFT	(26)
#define ESR_EL2_EC		(0x3fU << ESR_EL2_EC_SHIFT)
#define ESR_EL2_IL		(1U << 25)
#define ESR_EL2_EC		(UL(0x3f) << ESR_EL2_EC_SHIFT)
#define ESR_EL2_IL		(UL(1) << 25)
#define ESR_EL2_ISS		(ESR_EL2_IL - 1)
#define ESR_EL2_ISV_SHIFT	(24)
#define ESR_EL2_ISV		(1U << ESR_EL2_ISV_SHIFT)
#define ESR_EL2_ISV		(UL(1) << ESR_EL2_ISV_SHIFT)
#define ESR_EL2_SAS_SHIFT	(22)
#define ESR_EL2_SAS		(3U << ESR_EL2_SAS_SHIFT)
#define ESR_EL2_SAS		(UL(3) << ESR_EL2_SAS_SHIFT)
#define ESR_EL2_SSE		(1 << 21)
#define ESR_EL2_SRT_SHIFT	(16)
#define ESR_EL2_SRT_MASK	(0x1f << ESR_EL2_SRT_SHIFT)
@@ -205,16 +206,16 @@
#define ESR_EL2_FSC_TYPE	(0x3c)

#define ESR_EL2_CV_SHIFT	(24)
#define ESR_EL2_CV		(1U << ESR_EL2_CV_SHIFT)
#define ESR_EL2_CV		(UL(1) << ESR_EL2_CV_SHIFT)
#define ESR_EL2_COND_SHIFT	(20)
#define ESR_EL2_COND		(0xfU << ESR_EL2_COND_SHIFT)
#define ESR_EL2_COND		(UL(0xf) << ESR_EL2_COND_SHIFT)


#define FSC_FAULT	(0x04)
#define FSC_PERM	(0x0c)

/* Hyp Prefetch Fault Address Register (HPFAR/HDFAR) */
#define HPFAR_MASK	(~0xFUL)
#define HPFAR_MASK	(~UL(0xf))

#define ESR_EL2_EC_UNKNOWN	(0x00)
#define ESR_EL2_EC_WFI		(0x01)
Loading