Merge 5.4.52 into android11-5.4

Changes in 5.4.52
	KVM: s390: reduce number of IO pins to 1
	spi: spi-fsl-dspi: Adding shutdown hook
	spi: spi-fsl-dspi: Fix lockup if device is removed during SPI transfer
	regmap: fix alignment issue
	perf/x86/rapl: Move RAPL support to common x86 code
	perf/x86/rapl: Fix RAPL config variable bug
	ARM: dts: omap4-droid4: Fix spi configuration and increase rate
	drm/ttm: Fix dma_fence refcnt leak when adding move fence
	drm/tegra: hub: Do not enable orphaned window group
	gpu: host1x: Detach driver on unregister
	drm: mcde: Fix display initialization problem
	ASoC: SOF: Intel: add PCI ID for CometLake-S
	ALSA: hda: Intel: add missing PCI IDs for ICL-H, TGL-H and EKL
	spi: spidev: fix a race between spidev_release and spidev_remove
	spi: spidev: fix a potential use-after-free in spidev_release()
	net: ethernet: mvneta: Fix Serdes configuration for SoCs without comphy
	net: ethernet: mvneta: Add 2500BaseX support for SoCs without comphy
	ixgbe: protect ring accesses with READ- and WRITE_ONCE
	i40e: protect ring accesses with READ- and WRITE_ONCE
	ibmvnic: continue to init in CRQ reset returns H_CLOSED
	powerpc/kvm/book3s64: Fix kernel crash with nested kvm & DEBUG_VIRTUAL
	iommu/vt-d: Don't apply gfx quirks to untrusted devices
	drm: panel-orientation-quirks: Add quirk for Asus T101HA panel
	drm: panel-orientation-quirks: Use generic orientation-data for Acer S1003
	s390/kasan: fix early pgm check handler execution
	cifs: update ctime and mtime during truncate
	ARM: imx6: add missing put_device() call in imx6q_suspend_init()
	scsi: mptscsih: Fix read sense data size
	usb: dwc3: pci: Fix reference count leak in dwc3_pci_resume_work
	block: release bip in a right way in error path
	nvme-rdma: assign completion vector correctly
	x86/entry: Increase entry_stack size to a full page
	sched/core: Check cpus_mask, not cpus_ptr in __set_cpus_allowed_ptr(), to fix mask corruption
	net: qrtr: Fix an out of bounds read qrtr_endpoint_post()
	gpio: pca953x: Override IRQ for one of the expanders on Galileo Gen 2
	gpio: pca953x: Fix GPIO resource leak on Intel Galileo Gen 2
	nl80211: don't return err unconditionally in nl80211_start_ap()
	drm/mediatek: Check plane visibility in atomic_update
	bpf, sockmap: RCU splat with redirect and strparser error or TLS
	bpf, sockmap: RCU dereferenced psock may be used outside RCU block
	netfilter: ipset: call ip_set_free() instead of kfree()
	net: mvneta: fix use of state->speed
	net: cxgb4: fix return error value in t4_prep_fw
	IB/sa: Resolv use-after-free in ib_nl_make_request()
	net: dsa: microchip: set the correct number of ports
	netfilter: conntrack: refetch conntrack after nf_conntrack_update()
	perf report TUI: Fix segmentation fault in perf_evsel__hists_browse()
	perf intel-pt: Fix recording PEBS-via-PT with registers
	perf intel-pt: Fix PEBS sample for XMM registers
	smsc95xx: check return value of smsc95xx_reset
	smsc95xx: avoid memory leak in smsc95xx_bind
	net: hns3: add a missing uninit debugfs when unload driver
	net: hns3: fix use-after-free when doing self test
	ALSA: compress: fix partial_drain completion state
	RDMA/siw: Fix reporting vendor_part_id
	arm64: kgdb: Fix single-step exception handling oops
	nbd: Fix memory leak in nbd_add_socket
	cxgb4: fix all-mask IP address comparison
	IB/mlx5: Fix 50G per lane indication
	qed: Populate nvm-file attributes while reading nvm config partition.
	net/mlx5: Fix eeprom support for SFP module
	net/mlx5e: Fix 50G per lane indication
	bnxt_en: fix NULL dereference in case SR-IOV configuration fails
	net: macb: fix wakeup test in runtime suspend/resume routines
	net: macb: mark device wake capable when "magic-packet" property present
	net: macb: fix call to pm_runtime in the suspend/resume functions
	mlxsw: spectrum_router: Remove inappropriate usage of WARN_ON()
	mlxsw: pci: Fix use-after-free in case of failed devlink reload
	IB/hfi1: Do not destroy hfi1_wq when the device is shut down
	IB/hfi1: Do not destroy link_wq when the device is shut down
	ALSA: opl3: fix infoleak in opl3
	ALSA: hda - let hs_mic be picked ahead of hp_mic
	ALSA: usb-audio: add quirk for MacroSilicon MS2109
	ALSA: usb-audio: Add implicit feedback quirk for RTX6001
	ALSA: hda/realtek - Fix Lenovo Thinkpad X1 Carbon 7th quirk subdevice id
	ALSA: hda/realtek - Enable audio jacks of Acer vCopperbox with ALC269VC
	ALSA: hda/realtek: Enable headset mic of Acer C20-820 with ALC269VC
	ALSA: hda/realtek: Enable headset mic of Acer Veriton N4660G with ALC269VC
	KVM: arm64: Fix definition of PAGE_HYP_DEVICE
	KVM: arm64: Stop clobbering x0 for HVC_SOFT_RESTART
	KVM: arm64: Annotate hyp NMI-related functions as __always_inline
	KVM: x86: bit 8 of non-leaf PDPEs is not reserved
	KVM: x86: Inject #GP if guest attempts to toggle CR4.LA57 in 64-bit mode
	KVM: x86: Mark CR4.TSD as being possibly owned by the guest
	KVM: arm64: Fix kvm_reset_vcpu() return code being incorrect with SVE
	kallsyms: Refactor kallsyms_show_value() to take cred
	module: Refactor section attr into bin attribute
	module: Do not expose section addresses to non-CAP_SYSLOG
	kprobes: Do not expose probe addresses to non-CAP_SYSLOG
	bpf: Check correct cred for CAP_SYSLOG in bpf_dump_raw_ok()
	Revert "ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb"
	btrfs: fix fatal extent_buffer readahead vs releasepage race
	btrfs: fix double put of block group with nocow
	drm/radeon: fix double free
	drm/amdgpu: don't do soft recovery if gpu_recovery=0
	dm: use noio when sending kobject event
	mmc: meson-gx: limit segments to 1 when dram-access-quirk is needed
	ARC: entry: fix potential EFA clobber when TIF_SYSCALL_TRACE
	ARC: elf: use right ELF_ARCH
	s390/setup: init jump labels before command line parsing
	s390/mm: fix huge pte soft dirty copying
	blk-mq: consider non-idle request as "inflight" in blk_mq_rq_inflight()
	dm writecache: reject asynchronous pmem devices
	perf scripts python: export-to-postgresql.py: Fix struct.pack() int argument
	perf scripts python: exported-sql-viewer.py: Fix zero id in call graph 'Find' result
	perf scripts python: exported-sql-viewer.py: Fix zero id in call tree 'Find' result
	perf scripts python: exported-sql-viewer.py: Fix unexpanded 'Find' result
	pwm: jz4740: Fix build failure
	s390: Change s390_kernel_write() return type to match memcpy()
	s390/maccess: add no DAT mode to kernel_write
	Linux 5.4.52

Signed-off-by: Greg Kroah-Hartman <[email protected]>
Change-Id: Ib10c465a3556b5c55d6d6c2ec37b6061b32ca75f
This commit is contained in:
Greg Kroah-Hartman 2020-07-16 09:11:25 +02:00
commit c7725aece3
116 changed files with 1025 additions and 491 deletions

View file

@ -17,6 +17,7 @@
#include <linux/delay.h>
#include <linux/log2.h>
#include <linux/hwspinlock.h>
#include <asm/unaligned.h>
#define CREATE_TRACE_POINTS
#include "trace.h"
@ -249,22 +250,20 @@ static void regmap_format_8(void *buf, unsigned int val, unsigned int shift)
static void regmap_format_16_be(void *buf, unsigned int val, unsigned int shift)
{
__be16 *b = buf;
b[0] = cpu_to_be16(val << shift);
put_unaligned_be16(val << shift, buf);
}
static void regmap_format_16_le(void *buf, unsigned int val, unsigned int shift)
{
__le16 *b = buf;
b[0] = cpu_to_le16(val << shift);
put_unaligned_le16(val << shift, buf);
}
static void regmap_format_16_native(void *buf, unsigned int val,
unsigned int shift)
{
*(u16 *)buf = val << shift;
u16 v = val << shift;
memcpy(buf, &v, sizeof(v));
}
static void regmap_format_24(void *buf, unsigned int val, unsigned int shift)
@ -280,43 +279,39 @@ static void regmap_format_24(void *buf, unsigned int val, unsigned int shift)
static void regmap_format_32_be(void *buf, unsigned int val, unsigned int shift)
{
__be32 *b = buf;
b[0] = cpu_to_be32(val << shift);
put_unaligned_be32(val << shift, buf);
}
static void regmap_format_32_le(void *buf, unsigned int val, unsigned int shift)
{
__le32 *b = buf;
b[0] = cpu_to_le32(val << shift);
put_unaligned_le32(val << shift, buf);
}
static void regmap_format_32_native(void *buf, unsigned int val,
unsigned int shift)
{
*(u32 *)buf = val << shift;
u32 v = val << shift;
memcpy(buf, &v, sizeof(v));
}
#ifdef CONFIG_64BIT
static void regmap_format_64_be(void *buf, unsigned int val, unsigned int shift)
{
__be64 *b = buf;
b[0] = cpu_to_be64((u64)val << shift);
put_unaligned_be64((u64) val << shift, buf);
}
static void regmap_format_64_le(void *buf, unsigned int val, unsigned int shift)
{
__le64 *b = buf;
b[0] = cpu_to_le64((u64)val << shift);
put_unaligned_le64((u64) val << shift, buf);
}
static void regmap_format_64_native(void *buf, unsigned int val,
unsigned int shift)
{
*(u64 *)buf = (u64)val << shift;
u64 v = (u64) val << shift;
memcpy(buf, &v, sizeof(v));
}
#endif
@ -333,35 +328,34 @@ static unsigned int regmap_parse_8(const void *buf)
static unsigned int regmap_parse_16_be(const void *buf)
{
const __be16 *b = buf;
return be16_to_cpu(b[0]);
return get_unaligned_be16(buf);
}
static unsigned int regmap_parse_16_le(const void *buf)
{
const __le16 *b = buf;
return le16_to_cpu(b[0]);
return get_unaligned_le16(buf);
}
static void regmap_parse_16_be_inplace(void *buf)
{
__be16 *b = buf;
u16 v = get_unaligned_be16(buf);
b[0] = be16_to_cpu(b[0]);
memcpy(buf, &v, sizeof(v));
}
static void regmap_parse_16_le_inplace(void *buf)
{
__le16 *b = buf;
u16 v = get_unaligned_le16(buf);
b[0] = le16_to_cpu(b[0]);
memcpy(buf, &v, sizeof(v));
}
static unsigned int regmap_parse_16_native(const void *buf)
{
return *(u16 *)buf;
u16 v;
memcpy(&v, buf, sizeof(v));
return v;
}
static unsigned int regmap_parse_24(const void *buf)
@ -376,69 +370,67 @@ static unsigned int regmap_parse_24(const void *buf)
static unsigned int regmap_parse_32_be(const void *buf)
{
const __be32 *b = buf;
return be32_to_cpu(b[0]);
return get_unaligned_be32(buf);
}
static unsigned int regmap_parse_32_le(const void *buf)
{
const __le32 *b = buf;
return le32_to_cpu(b[0]);
return get_unaligned_le32(buf);
}
static void regmap_parse_32_be_inplace(void *buf)
{
__be32 *b = buf;
u32 v = get_unaligned_be32(buf);
b[0] = be32_to_cpu(b[0]);
memcpy(buf, &v, sizeof(v));
}
static void regmap_parse_32_le_inplace(void *buf)
{
__le32 *b = buf;
u32 v = get_unaligned_le32(buf);
b[0] = le32_to_cpu(b[0]);
memcpy(buf, &v, sizeof(v));
}
static unsigned int regmap_parse_32_native(const void *buf)
{
return *(u32 *)buf;
u32 v;
memcpy(&v, buf, sizeof(v));
return v;
}
#ifdef CONFIG_64BIT
static unsigned int regmap_parse_64_be(const void *buf)
{
const __be64 *b = buf;
return be64_to_cpu(b[0]);
return get_unaligned_be64(buf);
}
static unsigned int regmap_parse_64_le(const void *buf)
{
const __le64 *b = buf;
return le64_to_cpu(b[0]);
return get_unaligned_le64(buf);
}
static void regmap_parse_64_be_inplace(void *buf)
{
__be64 *b = buf;
u64 v = get_unaligned_be64(buf);
b[0] = be64_to_cpu(b[0]);
memcpy(buf, &v, sizeof(v));
}
static void regmap_parse_64_le_inplace(void *buf)
{
__le64 *b = buf;
u64 v = get_unaligned_le64(buf);
b[0] = le64_to_cpu(b[0]);
memcpy(buf, &v, sizeof(v));
}
static unsigned int regmap_parse_64_native(const void *buf)
{
return *(u64 *)buf;
u64 v;
memcpy(&v, buf, sizeof(v));
return v;
}
#endif