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

Commit a8b2f632 authored by Ivaylo Georgiev's avatar Ivaylo Georgiev
Browse files

Merge android-4.19-q.69 (93083852) into msm-4.19



* refs/heads/tmp-93083852:
  Linux 4.19.69
  rxrpc: Fix local refcounting
  rxrpc: Fix local endpoint replacement
  rxrpc: Fix read-after-free in rxrpc_queue_local()
  rxrpc: Fix local endpoint refcounting
  powerpc: Allow flush_(inval_)dcache_range to work across ranges >4GB
  dm zoned: fix potential NULL dereference in dmz_do_reclaim()
  xfs: always rejoin held resources during defer roll
  xfs: Add attibute remove and helper functions
  xfs: Add attibute set and helper functions
  xfs: Add helper function xfs_attr_try_sf_addname
  xfs: Move fs/xfs/xfs_attr.h to fs/xfs/libxfs/xfs_attr.h
  xfs: don't trip over uninitialized buffer on extent read of corrupted inode
  xfs: fix missing ILOCK unlock when xfs_setattr_nonsize fails due to EDQUOT
  mm/zsmalloc.c: fix race condition in zs_destroy_pool
  mm/zsmalloc.c: migration can leave pages in ZS_EMPTY indefinitely
  mm, page_owner: handle THP splits correctly
  genirq: Properly pair kobject_del() with kobject_add()
  dm zoned: properly handle backing device failure
  dm zoned: improve error handling in i/o map code
  dm zoned: improve error handling in reclaim
  dm table: fix invalid memory accesses with too high sector number
  dm space map metadata: fix missing store of apply_bops() return value
  dm raid: add missing cleanup in raid_ctr()
  dm integrity: fix a crash due to BUG_ON in __journal_read_write()
  dm btree: fix order of block initialization in btree_split_beneath
  dm kcopyd: always complete failed jobs
  x86/boot: Fix boot regression caused by bootparam sanitizing
  x86/boot: Save fields explicitly, zero out everything else
  x86/CPU/AMD: Clear RDRAND CPUID bit on AMD family 15h/16h
  x86/apic: Handle missing global clockevent gracefully
  x86/retpoline: Don't clobber RFLAGS during CALL_NOSPEC on i386
  userfaultfd_release: always remove uffd flags and clear vm_userfaultfd_ctx
  Drivers: hv: vmbus: Fix virt_to_hvpfn() for X86_PAE
  gpiolib: never report open-drain/source lines as 'input' to user-space
  drm/nouveau: Don't retry infinitely when receiving no data on i2c over AUX
  libceph: fix PG split vs OSD (re)connect race
  ceph: don't try fill file_lock on unsuccessful GETFILELOCK reply
  ceph: clear page dirty before invalidate page
  clk: socfpga: stratix10: fix rate caclulationg for cnt_clks
  Revert "dm bufio: fix deadlock with loop device"
  HID: wacom: Correct distance scale for 2nd-gen Intuos devices
  HID: wacom: correct misreported EKR ring values
  selftests: kvm: Adding config fragments
  KVM: arm: Don't write junk to CP15 registers on reset
  KVM: arm64: Don't write junk to sysregs on reset
  perf pmu-events: Fix missing "cpu_clk_unhalted.core" event
  perf cpumap: Fix writing to illegal memory in handling cpumap mask
  perf ftrace: Fix failure to set cpumask when only one cpu is present
  block, bfq: handle NULL return value by bfq_init_rq()
  drm/vmwgfx: fix memory leak when too many retries have occurred
  x86/lib/cpu: Address missing prototypes warning
  libata: add SG safety checks in SFF pio transfers
  libata: have ata_scsi_rw_xlat() fail invalid passthrough requests
  net: hisilicon: Fix dma_map_single failed on arm64
  net: hisilicon: fix hip04-xmit never return TX_BUSY
  net: hisilicon: make hip04_tx_reclaim non-reentrant
  net: stmmac: tc: Do not return a fragment entry
  net: stmmac: Fix issues when number of Queues >= 4
  net: cxgb3_main: Fix a resource leak in a error path in 'init_one()'
  s390: put _stext and _etext into .text section
  SMB3: Kernel oops mounting a encryptData share with CONFIG_DEBUG_VIRTUAL
  SMB3: Fix potential memory leak when processing compound chain
  drm/rockchip: Suspend DP late
  HID: input: fix a4tech horizontal wheel custom usage
  HID: quirks: Set the INCREMENT_USAGE_ON_DUPLICATE quirk on Saitek X52
  NFS: Fix regression whereby fscache errors are appearing on 'nofsc' mounts
  NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim()
  net/ethernet/qlogic/qed: force the string buffer NULL-terminated
  can: peak_usb: force the string buffer NULL-terminated
  can: sja1000: force the string buffer NULL-terminated
  perf bench numa: Fix cpu0 binding
  net: phy: phy_led_triggers: Fix a possible null-pointer dereference in phy_led_trigger_change_speed()
  isdn: hfcsusb: Fix mISDN driver crash caused by transfer buffer on the stack
  rxrpc: Fix the lack of notification when sendmsg() fails on a DATA packet
  rxrpc: Fix potential deadlock
  netfilter: ipset: Fix rename concurrency with listing
  netfilter: ipset: Copy the right MAC address in bitmap:ip,mac and hash:ip,mac sets
  netfilter: ipset: Actually allow destination MAC address for hash:ip,mac sets too
  mac80211_hwsim: Fix possible null-pointer dereferences in hwsim_dump_radio_nl()
  isdn: mISDN: hfcsusb: Fix possible null-pointer dereferences in start_isoc_chain()
  qed: RDMA - Fix the hw_ver returned in device attributes
  net: usb: qmi_wwan: Add the BroadMobi BM818 card
  ASoC: ti: davinci-mcasp: Correct slot_width posed constraint
  ASoC: rockchip: Fix mono capture
  st_nci_hci_connectivity_event_received: null check the allocation
  st21nfca_connectivity_event_received: null check the allocation
  ASoC: Fail card instantiation if DAI format setup fails
  can: gw: Fix error path of cgw_module_init
  can: mcp251x: add error check when wq alloc failed
  can: dev: call netif_carrier_off() in register_candev()
  selftests: forwarding: gre_multipath: Fix flower filters
  selftests: forwarding: gre_multipath: Enable IPv4 forwarding
  net: mvpp2: Don't check for 3 consecutive Idle frames for 10G links
  bonding: Force slave speed check after link state recovery for 802.3ad
  selftests/bpf: fix sendmsg6_prog on s390
  ASoC: dapm: Fix handling of custom_stop_condition on DAPM graph walks
  netfilter: ebtables: fix a memory leak bug in compat
  mips: fix cacheinfo
  MIPS: kernel: only use i8253 clocksource with periodic clockevent
  HID: Add 044f:b320 ThrustMaster, Inc. 2 in 1 DT

Conflicts:
	fs/userfaultfd.c

Change-Id: I35868bf90a3b2693b033ff302fbbb0dfd36b43fa
Signed-off-by: default avatarIvaylo Georgiev <irgeorgiev@codeaurora.org>
parents 22379645 93083852
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -3959,6 +3959,13 @@
			Run specified binary instead of /init from the ramdisk,
			used for early userspace startup. See initrd.

	rdrand=		[X86]
			force - Override the decision by the kernel to hide the
				advertisement of RDRAND support (this affects
				certain AMD processors because of buggy BIOS
				support, specifically around the suspend/resume
				path).

	rdt=		[HW,X86,RDT]
			Turn on/off individual RDT features. List is:
			cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, l2cdp,
+1 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
VERSION = 4
PATCHLEVEL = 19
SUBLEVEL = 68
SUBLEVEL = 69
EXTRAVERSION =
NAME = "People's Front"

+15 −8
Original line number Diff line number Diff line
@@ -658,13 +658,22 @@ int kvm_handle_cp14_64(struct kvm_vcpu *vcpu, struct kvm_run *run)
}

static void reset_coproc_regs(struct kvm_vcpu *vcpu,
			      const struct coproc_reg *table, size_t num)
			      const struct coproc_reg *table, size_t num,
			      unsigned long *bmap)
{
	unsigned long i;

	for (i = 0; i < num; i++)
		if (table[i].reset)
		if (table[i].reset) {
			int reg = table[i].reg;

			table[i].reset(vcpu, &table[i]);
			if (reg > 0 && reg < NR_CP15_REGS) {
				set_bit(reg, bmap);
				if (table[i].is_64bit)
					set_bit(reg + 1, bmap);
			}
		}
}

static struct coproc_params decode_32bit_hsr(struct kvm_vcpu *vcpu)
@@ -1439,17 +1448,15 @@ void kvm_reset_coprocs(struct kvm_vcpu *vcpu)
{
	size_t num;
	const struct coproc_reg *table;

	/* Catch someone adding a register without putting in reset entry. */
	memset(vcpu->arch.ctxt.cp15, 0x42, sizeof(vcpu->arch.ctxt.cp15));
	DECLARE_BITMAP(bmap, NR_CP15_REGS) = { 0, };

	/* Generic chip reset first (so target could override). */
	reset_coproc_regs(vcpu, cp15_regs, ARRAY_SIZE(cp15_regs));
	reset_coproc_regs(vcpu, cp15_regs, ARRAY_SIZE(cp15_regs), bmap);

	table = get_target_table(vcpu->arch.target, &num);
	reset_coproc_regs(vcpu, table, num);
	reset_coproc_regs(vcpu, table, num, bmap);

	for (num = 1; num < NR_CP15_REGS; num++)
		WARN(vcpu_cp15(vcpu, num) == 0x42424242,
		WARN(!test_bit(num, bmap),
		     "Didn't reset vcpu_cp15(vcpu, %zi)", num);
}
+18 −14
Original line number Diff line number Diff line
@@ -626,7 +626,7 @@ static void reset_pmcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r)
	 */
	val = ((pmcr & ~ARMV8_PMU_PMCR_MASK)
	       | (ARMV8_PMU_PMCR_MASK & 0xdecafbad)) & (~ARMV8_PMU_PMCR_E);
	__vcpu_sys_reg(vcpu, PMCR_EL0) = val;
	__vcpu_sys_reg(vcpu, r->reg) = val;
}

static bool check_pmu_access_disabled(struct kvm_vcpu *vcpu, u64 flags)
@@ -968,13 +968,13 @@ static bool access_pmuserenr(struct kvm_vcpu *vcpu, struct sys_reg_params *p,
/* Silly macro to expand the DBG{BCR,BVR,WVR,WCR}n_EL1 registers in one go */
#define DBG_BCR_BVR_WCR_WVR_EL1(n)					\
	{ SYS_DESC(SYS_DBGBVRn_EL1(n)),					\
	  trap_bvr, reset_bvr, n, 0, get_bvr, set_bvr },		\
	  trap_bvr, reset_bvr, 0, 0, get_bvr, set_bvr },		\
	{ SYS_DESC(SYS_DBGBCRn_EL1(n)),					\
	  trap_bcr, reset_bcr, n, 0, get_bcr, set_bcr },		\
	  trap_bcr, reset_bcr, 0, 0, get_bcr, set_bcr },		\
	{ SYS_DESC(SYS_DBGWVRn_EL1(n)),					\
	  trap_wvr, reset_wvr, n, 0,  get_wvr, set_wvr },		\
	  trap_wvr, reset_wvr, 0, 0,  get_wvr, set_wvr },		\
	{ SYS_DESC(SYS_DBGWCRn_EL1(n)),					\
	  trap_wcr, reset_wcr, n, 0,  get_wcr, set_wcr }
	  trap_wcr, reset_wcr, 0, 0,  get_wcr, set_wcr }

/* Macro to expand the PMEVCNTRn_EL0 register */
#define PMU_PMEVCNTR_EL0(n)						\
@@ -1359,7 +1359,7 @@ static const struct sys_reg_desc sys_reg_descs[] = {

	{ SYS_DESC(SYS_CSSELR_EL1), NULL, reset_unknown, CSSELR_EL1 },

	{ SYS_DESC(SYS_PMCR_EL0), access_pmcr, reset_pmcr, },
	{ SYS_DESC(SYS_PMCR_EL0), access_pmcr, reset_pmcr, PMCR_EL0 },
	{ SYS_DESC(SYS_PMCNTENSET_EL0), access_pmcnten, reset_unknown, PMCNTENSET_EL0 },
	{ SYS_DESC(SYS_PMCNTENCLR_EL0), access_pmcnten, NULL, PMCNTENSET_EL0 },
	{ SYS_DESC(SYS_PMOVSCLR_EL0), access_pmovs, NULL, PMOVSSET_EL0 },
@@ -2072,13 +2072,19 @@ static int emulate_sys_reg(struct kvm_vcpu *vcpu,
}

static void reset_sys_reg_descs(struct kvm_vcpu *vcpu,
			      const struct sys_reg_desc *table, size_t num)
				const struct sys_reg_desc *table, size_t num,
				unsigned long *bmap)
{
	unsigned long i;

	for (i = 0; i < num; i++)
		if (table[i].reset)
		if (table[i].reset) {
			int reg = table[i].reg;

			table[i].reset(vcpu, &table[i]);
			if (reg > 0 && reg < NR_SYS_REGS)
				set_bit(reg, bmap);
		}
}

/**
@@ -2576,18 +2582,16 @@ void kvm_reset_sys_regs(struct kvm_vcpu *vcpu)
{
	size_t num;
	const struct sys_reg_desc *table;

	/* Catch someone adding a register without putting in reset entry. */
	memset(&vcpu->arch.ctxt.sys_regs, 0x42, sizeof(vcpu->arch.ctxt.sys_regs));
	DECLARE_BITMAP(bmap, NR_SYS_REGS) = { 0, };

	/* Generic chip reset first (so target could override). */
	reset_sys_reg_descs(vcpu, sys_reg_descs, ARRAY_SIZE(sys_reg_descs));
	reset_sys_reg_descs(vcpu, sys_reg_descs, ARRAY_SIZE(sys_reg_descs), bmap);

	table = get_target_table(vcpu->arch.target, true, &num);
	reset_sys_reg_descs(vcpu, table, num);
	reset_sys_reg_descs(vcpu, table, num, bmap);

	for (num = 1; num < NR_SYS_REGS; num++) {
		if (WARN(__vcpu_sys_reg(vcpu, num) == 0x4242424242424242,
		if (WARN(!test_bit(num, bmap),
			 "Didn't reset __vcpu_sys_reg(%zi)\n", num))
			break;
	}
+2 −0
Original line number Diff line number Diff line
@@ -80,6 +80,8 @@ static int __populate_cache_leaves(unsigned int cpu)
	if (c->tcache.waysize)
		populate_cache(tcache, this_leaf, 3, CACHE_TYPE_UNIFIED);

	this_cpu_ci->cpu_map_populated = true;

	return 0;
}

Loading