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

Commit 758a7acf authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge 5.4.137 into android11-5.4-lts



Changes in 5.4.137
	selftest: fix build error in tools/testing/selftests/vm/userfaultfd.c
	tools: Allow proper CC/CXX/... override with LLVM=1 in Makefile.include
	KVM: x86: determine if an exception has an error code only when injecting it.
	af_unix: fix garbage collect vs MSG_PEEK
	workqueue: fix UAF in pwq_unbound_release_workfn()
	cgroup1: fix leaked context root causing sporadic NULL deref in LTP
	net/802/mrp: fix memleak in mrp_request_join()
	net/802/garp: fix memleak in garp_request_join()
	net: annotate data race around sk_ll_usec
	sctp: move 198 addresses from unusable to private scope
	ipv6: allocate enough headroom in ip6_finish_output2()
	hfs: add missing clean-up in hfs_fill_super
	hfs: fix high memory mapping in hfs_bnode_read
	hfs: add lock nesting notation to hfs_find_init
	firmware: arm_scmi: Fix possible scmi_linux_errmap buffer overflow
	firmware: arm_scmi: Fix range check for the maximum number of pending messages
	cifs: fix the out of range assignment to bit fields in parse_server_interfaces
	iomap: remove the length variable in iomap_seek_data
	iomap: remove the length variable in iomap_seek_hole
	ARM: dts: versatile: Fix up interrupt controller node names
	ipv6: ip6_finish_output2: set sk into newly allocated nskb
	Linux 5.4.137

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
Change-Id: I441d065c6fd79c96c67172137806f71dbcd41753
parents 911bc13b 5b1de8e1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 4
SUBLEVEL = 136
SUBLEVEL = 137
EXTRAVERSION =
NAME = Kleptomaniac Octopus

+2 −3
Original line number Diff line number Diff line
@@ -195,16 +195,15 @@
		#size-cells = <1>;
		ranges;

		vic: intc@10140000 {
		vic: interrupt-controller@10140000 {
			compatible = "arm,versatile-vic";
			interrupt-controller;
			#interrupt-cells = <1>;
			reg = <0x10140000 0x1000>;
			clear-mask = <0xffffffff>;
			valid-mask = <0xffffffff>;
		};

		sic: intc@10003000 {
		sic: interrupt-controller@10003000 {
			compatible = "arm,versatile-sic";
			interrupt-controller;
			#interrupt-cells = <1>;
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@

	amba {
		/* The Versatile PB is using more SIC IRQ lines than the AB */
		sic: intc@10003000 {
		sic: interrupt-controller@10003000 {
			clear-mask = <0xffffffff>;
			/*
			 * Valid interrupt lines mask according to
+9 −4
Original line number Diff line number Diff line
@@ -475,8 +475,6 @@ static void kvm_multiple_exception(struct kvm_vcpu *vcpu,

	if (!vcpu->arch.exception.pending && !vcpu->arch.exception.injected) {
	queue:
		if (has_error && !is_protmode(vcpu))
			has_error = false;
		if (reinject) {
			/*
			 * On vmentry, vcpu->arch.exception.pending is only
@@ -7592,6 +7590,13 @@ static void update_cr8_intercept(struct kvm_vcpu *vcpu)
	kvm_x86_ops->update_cr8_intercept(vcpu, tpr, max_irr);
}

static void kvm_inject_exception(struct kvm_vcpu *vcpu)
{
       if (vcpu->arch.exception.error_code && !is_protmode(vcpu))
               vcpu->arch.exception.error_code = false;
       kvm_x86_ops->queue_exception(vcpu);
}

static int inject_pending_event(struct kvm_vcpu *vcpu)
{
	int r;
@@ -7599,7 +7604,7 @@ static int inject_pending_event(struct kvm_vcpu *vcpu)
	/* try to reinject previous events if any */

	if (vcpu->arch.exception.injected)
		kvm_x86_ops->queue_exception(vcpu);
		kvm_inject_exception(vcpu);
	/*
	 * Do not inject an NMI or interrupt if there is a pending
	 * exception.  Exceptions and interrupts are recognized at
@@ -7665,7 +7670,7 @@ static int inject_pending_event(struct kvm_vcpu *vcpu)
			}
		}

		kvm_x86_ops->queue_exception(vcpu);
		kvm_inject_exception(vcpu);
	}

	/* Don't consider new event if we re-injected an event */
+7 −5
Original line number Diff line number Diff line
@@ -54,7 +54,6 @@ enum scmi_error_codes {
	SCMI_ERR_GENERIC = -8,	/* Generic Error */
	SCMI_ERR_HARDWARE = -9,	/* Hardware Error */
	SCMI_ERR_PROTOCOL = -10,/* Protocol Error */
	SCMI_ERR_MAX
};

/* List of all SCMI devices active in system */
@@ -176,8 +175,10 @@ static const int scmi_linux_errmap[] = {

static inline int scmi_to_linux_errno(int errno)
{
	if (errno < SCMI_SUCCESS && errno > SCMI_ERR_MAX)
		return scmi_linux_errmap[-errno];
	int err_idx = -errno;

	if (err_idx >= SCMI_SUCCESS && err_idx < ARRAY_SIZE(scmi_linux_errmap))
		return scmi_linux_errmap[err_idx];
	return -EIO;
}

@@ -693,8 +694,9 @@ static int scmi_xfer_info_init(struct scmi_info *sinfo)
	struct scmi_xfers_info *info = &sinfo->tx_minfo;

	/* Pre-allocated messages, no more than what hdr.seq can support */
	if (WARN_ON(desc->max_msg >= MSG_TOKEN_MAX)) {
		dev_err(dev, "Maximum message of %d exceeds supported %ld\n",
	if (WARN_ON(!desc->max_msg || desc->max_msg > MSG_TOKEN_MAX)) {
		dev_err(dev,
			"Invalid maximum messages %d, not in range [1 - %lu]\n",
			desc->max_msg, MSG_TOKEN_MAX);
		return -EINVAL;
	}
Loading