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

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

Merge 4.4.104 into android-4.4



Changes in 4.4.104
	netlink: add a start callback for starting a netlink dump
	ipsec: Fix aborted xfrm policy dump crash
	x86/mm/pat: Ensure cpa->pfn only contains page frame numbers
	x86/efi: Hoist page table switching code into efi_call_virt()
	x86/efi: Build our own page table structures
	ARM: dts: omap3: logicpd-torpedo-37xx-devkit: Fix MMC1 cd-gpio
	x86/efi-bgrt: Fix kernel panic when mapping BGRT data
	x86/efi-bgrt: Replace early_memremap() with memremap()
	mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d()
	mm/madvise.c: fix madvise() infinite loop under special circumstances
	btrfs: clear space cache inode generation always
	KVM: x86: pvclock: Handle first-time write to pvclock-page contains random junk
	KVM: x86: Exit to user-mode on #UD intercept when emulator requires
	KVM: x86: inject exceptions produced by x86_decode_insn
	mmc: core: Do not leave the block driver in a suspended state
	eeprom: at24: check at24_read/write arguments
	bcache: Fix building error on MIPS
	Revert "drm/radeon: dont switch vt on suspend"
	drm/radeon: fix atombios on big endian
	drm/panel: simple: Add missing panel_simple_unprepare() calls
	mtd: nand: Fix writing mtdoops to nand flash.
	NFS: revalidate "." etc correctly on "open".
	drm/i915: Don't try indexed reads to alternate slave addresses
	drm/i915: Prevent zero length "index" write
	nfsd: Make init_open_stateid() a bit more whole
	nfsd: Fix stateid races between OPEN and CLOSE
	nfsd: Fix another OPEN stateid race
	Linux 4.4.104

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parents 9329ea14 bd379939
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 103
SUBLEVEL = 104
EXTRAVERSION =
NAME = Blurry Fish Butt

+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@
	interrupts-extended = <&intc 83 &omap3_pmx_core 0x11a>;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc1_pins &mmc1_cd>;
	cd-gpios = <&gpio4 31 IRQ_TYPE_LEVEL_LOW>;		/* gpio127 */
	cd-gpios = <&gpio4 31 GPIO_ACTIVE_LOW>;		/* gpio127 */
	vmmc-supply = <&vmmc1>;
	bus-width = <4>;
	cap-power-off-card;
+26 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@

#include <asm/fpu/api.h>
#include <asm/pgtable.h>
#include <asm/tlb.h>

/*
 * We map the EFI regions needed for runtime services non-contiguously,
@@ -66,6 +67,17 @@ extern u64 asmlinkage efi_call(void *fp, ...);

#define efi_call_phys(f, args...)		efi_call((f), args)

/*
 * Scratch space used for switching the pagetable in the EFI stub
 */
struct efi_scratch {
	u64	r15;
	u64	prev_cr3;
	pgd_t	*efi_pgt;
	bool	use_pgd;
	u64	phys_stack;
} __packed;

#define efi_call_virt(f, ...)						\
({									\
	efi_status_t __s;						\
@@ -73,7 +85,20 @@ extern u64 asmlinkage efi_call(void *fp, ...);
	efi_sync_low_kernel_mappings();					\
	preempt_disable();						\
	__kernel_fpu_begin();						\
									\
	if (efi_scratch.use_pgd) {					\
		efi_scratch.prev_cr3 = read_cr3();			\
		write_cr3((unsigned long)efi_scratch.efi_pgt);		\
		__flush_tlb_all();					\
	}								\
									\
	__s = efi_call((void *)efi.systab->runtime->f, __VA_ARGS__);	\
									\
	if (efi_scratch.use_pgd) {					\
		write_cr3(efi_scratch.prev_cr3);			\
		__flush_tlb_all();					\
	}								\
									\
	__kernel_fpu_end();						\
	preempt_enable();						\
	__s;								\
@@ -113,6 +138,7 @@ extern void __init efi_memory_uc(u64 addr, unsigned long size);
extern void __init efi_map_region(efi_memory_desc_t *md);
extern void __init efi_map_region_fixed(efi_memory_desc_t *md);
extern void efi_sync_low_kernel_mappings(void);
extern int __init efi_alloc_page_tables(void);
extern int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages);
extern void __init efi_cleanup_page_tables(unsigned long pa_memmap, unsigned num_pages);
extern void __init old_map_region(efi_memory_desc_t *md);
+2 −0
Original line number Diff line number Diff line
@@ -1696,6 +1696,8 @@ static int ud_interception(struct vcpu_svm *svm)
	int er;

	er = emulate_instruction(&svm->vcpu, EMULTYPE_TRAP_UD);
	if (er == EMULATE_USER_EXIT)
		return 0;
	if (er != EMULATE_DONE)
		kvm_queue_exception(&svm->vcpu, UD_VECTOR);
	return 1;
+2 −0
Original line number Diff line number Diff line
@@ -5267,6 +5267,8 @@ static int handle_exception(struct kvm_vcpu *vcpu)
			return 1;
		}
		er = emulate_instruction(vcpu, EMULTYPE_TRAP_UD);
		if (er == EMULATE_USER_EXIT)
			return 0;
		if (er != EMULATE_DONE)
			kvm_queue_exception(vcpu, UD_VECTOR);
		return 1;
Loading