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

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

Merge 5.4.238 into android11-5.4-lts



Changes in 5.4.238
	ext4: fix cgroup writeback accounting with fs-layer encryption
	xfrm: Allow transport-mode states with AF_UNSPEC selector
	drm/panfrost: Don't sync rpm suspension after mmu flushing
	cifs: Move the in_send statistic to __smb_send_rqst()
	drm/meson: fix 1px pink line on GXM when scaling video overlay
	clk: HI655X: select REGMAP instead of depending on it
	docs: Correct missing "d_" prefix for dentry_operations member d_weak_revalidate
	scsi: mpt3sas: Fix NULL pointer access in mpt3sas_transport_port_add()
	ALSA: hda - add Intel DG1 PCI and HDMI ids
	ALSA: hda - controller is in GPU on the DG1
	ALSA: hda: Add Alderlake-S PCI ID and HDMI codec vid
	ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid
	ALSA: hda: Match only Intel devices with CONTROLLER_IN_GPU()
	netfilter: nft_redir: correct value of inet type `.maxattrs`
	scsi: core: Fix a comment in function scsi_host_dev_release()
	scsi: core: Fix a procfs host directory removal regression
	tcp: tcp_make_synack() can be called from process context
	nfc: pn533: initialize struct pn533_out_arg properly
	ipvlan: Make skb->skb_iif track skb->dev for l3s mode
	i40e: Fix kernel crash during reboot when adapter is in recovery mode
	qed/qed_dev: guard against a possible division by zero
	net: tunnels: annotate lockless accesses to dev->needed_headroom
	net: phy: smsc: bail out in lan87xx_read_status if genphy_read_status fails
	nfc: st-nci: Fix use after free bug in ndlc_remove due to race condition
	net: usb: smsc75xx: Limit packet length to skb->len
	nvmet: avoid potential UAF in nvmet_req_complete()
	block: sunvdc: add check for mdesc_grab() returning NULL
	ipv4: Fix incorrect table ID in IOCTL path
	net: usb: smsc75xx: Move packet length check to prevent kernel panic in skb_pull
	net/iucv: Fix size of interrupt data
	ethernet: sun: add check for the mdesc_grab()
	hwmon: (adt7475) Display smoothing attributes in correct order
	hwmon: (adt7475) Fix masking of hysteresis registers
	hwmon: (xgene) Fix use after free bug in xgene_hwmon_remove due to race condition
	hwmon: (ina3221) return prober error code
	media: m5mols: fix off-by-one loop termination error
	mmc: atmel-mci: fix race between stop command and start of next command
	jffs2: correct logic when creating a hole in jffs2_write_begin
	ext4: fail ext4_iget if special inode unallocated
	ext4: fix task hung in ext4_xattr_delete_inode
	drm/amdkfd: Fix an illegal memory access
	sh: intc: Avoid spurious sizeof-pointer-div warning
	ext4: fix possible double unlock when moving a directory
	tty: serial: fsl_lpuart: skip waiting for transmission complete when UARTCTRL_SBK is asserted
	interconnect: fix mem leak when freeing nodes
	tracing: Check field value in hist_field_name()
	tracing: Make tracepoint lockdep check actually test something
	KVM: nVMX: add missing consistency checks for CR0 and CR4
	ftrace: Fix invalid address access in lookup_rec() when index is 0
	fbdev: stifb: Provide valid pixelclock and add fb_check_var() checks
	x86/mm: Fix use of uninitialized buffer in sme_enable()
	drm/i915: Don't use stolen memory for ring buffers with LLC
	serial: 8250_em: Fix UART port type
	s390/ipl: add missing intersection check to ipl_report handling
	PCI: Unify delay handling for reset and resume
	HID: core: Provide new max_buffer_size attribute to over-ride the default
	HID: uhid: Over-ride the default maximum data buffer value with our own
	Linux 5.4.238

Change-Id: I29d1460644a834fba41654b94a3bb35551976001
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parents 6eb1bfc7 6849d8c4
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1173,7 +1173,7 @@ defined:
	return
	return
	-ECHILD and it will be called again in ref-walk mode.
	-ECHILD and it will be called again in ref-walk mode.


``_weak_revalidate``
``d_weak_revalidate``
	called when the VFS needs to revalidate a "jumped" dentry.  This
	called when the VFS needs to revalidate a "jumped" dentry.  This
	is called when a path-walk ends at dentry that was not acquired
	is called when a path-walk ends at dentry that was not acquired
	by doing a lookup in the parent directory.  This includes "/",
	by doing a lookup in the parent directory.  This includes "/",
+1 −1
Original line number Original line Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
VERSION = 5
PATCHLEVEL = 4
PATCHLEVEL = 4
SUBLEVEL = 237
SUBLEVEL = 238
EXTRAVERSION =
EXTRAVERSION =
NAME = Kleptomaniac Octopus
NAME = Kleptomaniac Octopus


+8 −0
Original line number Original line Diff line number Diff line
@@ -57,11 +57,19 @@ static unsigned long find_bootdata_space(struct ipl_rb_components *comps,
	if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && INITRD_START && INITRD_SIZE &&
	if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && INITRD_START && INITRD_SIZE &&
	    intersects(INITRD_START, INITRD_SIZE, safe_addr, size))
	    intersects(INITRD_START, INITRD_SIZE, safe_addr, size))
		safe_addr = INITRD_START + INITRD_SIZE;
		safe_addr = INITRD_START + INITRD_SIZE;
	if (intersects(safe_addr, size, (unsigned long)comps, comps->len)) {
		safe_addr = (unsigned long)comps + comps->len;
		goto repeat;
	}
	for_each_rb_entry(comp, comps)
	for_each_rb_entry(comp, comps)
		if (intersects(safe_addr, size, comp->addr, comp->len)) {
		if (intersects(safe_addr, size, comp->addr, comp->len)) {
			safe_addr = comp->addr + comp->len;
			safe_addr = comp->addr + comp->len;
			goto repeat;
			goto repeat;
		}
		}
	if (intersects(safe_addr, size, (unsigned long)certs, certs->len)) {
		safe_addr = (unsigned long)certs + certs->len;
		goto repeat;
	}
	for_each_rb_entry(cert, certs)
	for_each_rb_entry(cert, certs)
		if (intersects(safe_addr, size, cert->addr, cert->len)) {
		if (intersects(safe_addr, size, cert->addr, cert->len)) {
			safe_addr = cert->addr + cert->len;
			safe_addr = cert->addr + cert->len;
+8 −2
Original line number Original line Diff line number Diff line
@@ -2779,7 +2779,7 @@ static int nested_vmx_check_guest_state(struct kvm_vcpu *vcpu,
					struct vmcs12 *vmcs12,
					struct vmcs12 *vmcs12,
					u32 *exit_qual)
					u32 *exit_qual)
{
{
	bool ia32e;
	bool ia32e = !!(vmcs12->vm_entry_controls & VM_ENTRY_IA32E_MODE);


	*exit_qual = ENTRY_FAIL_DEFAULT;
	*exit_qual = ENTRY_FAIL_DEFAULT;


@@ -2796,6 +2796,13 @@ static int nested_vmx_check_guest_state(struct kvm_vcpu *vcpu,
		return -EINVAL;
		return -EINVAL;
	}
	}


	if (CC((vmcs12->guest_cr0 & (X86_CR0_PG | X86_CR0_PE)) == X86_CR0_PG))
		return -EINVAL;

	if (CC(ia32e && !(vmcs12->guest_cr4 & X86_CR4_PAE)) ||
	    CC(ia32e && !(vmcs12->guest_cr0 & X86_CR0_PG)))
		return -EINVAL;

	/*
	/*
	 * If the load IA32_EFER VM-entry control is 1, the following checks
	 * If the load IA32_EFER VM-entry control is 1, the following checks
	 * are performed on the field for the IA32_EFER MSR:
	 * are performed on the field for the IA32_EFER MSR:
@@ -2807,7 +2814,6 @@ static int nested_vmx_check_guest_state(struct kvm_vcpu *vcpu,
	 */
	 */
	if (to_vmx(vcpu)->nested.nested_run_pending &&
	if (to_vmx(vcpu)->nested.nested_run_pending &&
	    (vmcs12->vm_entry_controls & VM_ENTRY_LOAD_IA32_EFER)) {
	    (vmcs12->vm_entry_controls & VM_ENTRY_LOAD_IA32_EFER)) {
		ia32e = (vmcs12->vm_entry_controls & VM_ENTRY_IA32E_MODE) != 0;
		if (CC(!kvm_valid_efer(vcpu, vmcs12->guest_ia32_efer)) ||
		if (CC(!kvm_valid_efer(vcpu, vmcs12->guest_ia32_efer)) ||
		    CC(ia32e != !!(vmcs12->guest_ia32_efer & EFER_LMA)) ||
		    CC(ia32e != !!(vmcs12->guest_ia32_efer & EFER_LMA)) ||
		    CC(((vmcs12->guest_cr0 & X86_CR0_PG) &&
		    CC(((vmcs12->guest_cr0 & X86_CR0_PG) &&
+2 −1
Original line number Original line Diff line number Diff line
@@ -579,7 +579,8 @@ void __init sme_enable(struct boot_params *bp)
	cmdline_ptr = (const char *)((u64)bp->hdr.cmd_line_ptr |
	cmdline_ptr = (const char *)((u64)bp->hdr.cmd_line_ptr |
				     ((u64)bp->ext_cmd_line_ptr << 32));
				     ((u64)bp->ext_cmd_line_ptr << 32));


	cmdline_find_option(cmdline_ptr, cmdline_arg, buffer, sizeof(buffer));
	if (cmdline_find_option(cmdline_ptr, cmdline_arg, buffer, sizeof(buffer)) < 0)
		return;


	if (!strncmp(buffer, cmdline_on, sizeof(buffer)))
	if (!strncmp(buffer, cmdline_on, sizeof(buffer)))
		sme_me_mask = me_mask;
		sme_me_mask = me_mask;
Loading