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

Unverified Commit f8239b8b authored by Michael Bestas's avatar Michael Bestas
Browse files

Merge tag 'ASB-2024-10-05_4.19-stable' of...

Merge tag 'ASB-2024-10-05_4.19-stable' of https://android.googlesource.com/kernel/common into android13-4.19-kona

https://source.android.com/docs/security/bulletin/2024-10-01

* tag 'ASB-2024-10-05_4.19-stable' of https://android.googlesource.com/kernel/common: (99 commits)
  Linux 4.19.322
  Revert "parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367"
  netns: restore ops before calling ops_exit_list
  cx82310_eth: fix error return code in cx82310_bind()
  net, sunrpc: Remap EPERM in case of connection failure in xs_tcp_setup_socket
  rtmutex: Drop rt_mutex::wait_lock before scheduling
  drm/i915/fence: Mark debug_fence_free() with __maybe_unused
  drm/i915/fence: Mark debug_fence_init_onstack() with __maybe_unused
  ACPI: processor: Fix memory leaks in error paths of processor_add()
  ACPI: processor: Return an error if acpi_processor_get_info() fails in processor_add()
  ila: call nf_unregister_net_hooks() sooner
  netns: add pre_exit method to struct pernet_operations
  nilfs2: protect references to superblock parameters exposed in sysfs
  nilfs2: replace snprintf in show functions with sysfs_emit
  tracing: Avoid possible softlockup in tracing_iter_reset()
  ring-buffer: Rename ring_buffer_read() to read_buffer_iter_advance()
  uprobes: Use kzalloc to allocate xol area
  clocksource/drivers/imx-tpm: Fix next event not taking effect sometime
  clocksource/drivers/imx-tpm: Fix return -ETIME when delta exceeds INT_MAX
  VMCI: Fix use-after-free when removing resource in vmci_resource_remove()
  ...

 Conflicts:
	drivers/clk/qcom/clk-alpha-pll.c

Change-Id: I79078f7d518fa7e6a2b373df48acbd6f9f9ba30b
parents 22dbdadf 1b3964c5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
VERSION = 4
PATCHLEVEL = 19
SUBLEVEL = 321
SUBLEVEL = 322
EXTRAVERSION =
NAME = "People's Front"

+2 −2
Original line number Diff line number Diff line
@@ -524,7 +524,7 @@ void do_cpu_irq_mask(struct pt_regs *regs)

	old_regs = set_irq_regs(regs);
	local_irq_disable();
	irq_enter_rcu();
	irq_enter();

	eirr_val = mfctl(23) & cpu_eiem & per_cpu(local_ack_eiem, cpu);
	if (!eirr_val)
@@ -559,7 +559,7 @@ void do_cpu_irq_mask(struct pt_regs *regs)
#endif /* CONFIG_IRQSTACKS */

 out:
	irq_exit_rcu();
	irq_exit();
	set_irq_regs(old_regs);
	return;

+2 −0
Original line number Diff line number Diff line
@@ -391,6 +391,7 @@ int setup_one_line(struct line *lines, int n, char *init,
			parse_chan_pair(NULL, line, n, opts, error_out);
			err = 0;
		}
		*error_out = "configured as 'none'";
	} else {
		char *new = kstrdup(init, GFP_KERNEL);
		if (!new) {
@@ -414,6 +415,7 @@ int setup_one_line(struct line *lines, int n, char *init,
			}
		}
		if (err) {
			*error_out = "failed to parse channel pair";
			line->init_str = NULL;
			line->valid = 0;
			kfree(new);
+10 −1
Original line number Diff line number Diff line
@@ -227,6 +227,7 @@ bool bio_integrity_prep(struct bio *bio)
	unsigned int bytes, offset, i;
	unsigned int intervals;
	blk_status_t status;
	gfp_t gfp = GFP_NOIO;

	if (!bi)
		return true;
@@ -249,12 +250,20 @@ bool bio_integrity_prep(struct bio *bio)
		if (!bi->profile->generate_fn ||
		    !(bi->flags & BLK_INTEGRITY_GENERATE))
			return true;

		/*
		 * Zero the memory allocated to not leak uninitialized kernel
		 * memory to disk.  For PI this only affects the app tag, but
		 * for non-integrity metadata it affects the entire metadata
		 * buffer.
		 */
		gfp |= __GFP_ZERO;
	}
	intervals = bio_integrity_intervals(bi, bio_sectors(bio));

	/* Allocate kernel buffer for protection data */
	len = intervals * bi->tuple_size;
	buf = kmalloc(len, GFP_NOIO | q->bounce_gfp);
	buf = kmalloc(len, gfp | q->bounce_gfp);
	status = BLK_STS_RESOURCE;
	if (unlikely(buf == NULL)) {
		printk(KERN_ERR "could not allocate integrity buffer\n");
+8 −7
Original line number Diff line number Diff line
@@ -391,7 +391,7 @@ static int acpi_processor_add(struct acpi_device *device,

	result = acpi_processor_get_info(device);
	if (result) /* Processor is not physically present or unavailable */
		return 0;
		goto err_clear_driver_data;

	BUG_ON(pr->id >= nr_cpu_ids);

@@ -406,7 +406,7 @@ static int acpi_processor_add(struct acpi_device *device,
			"BIOS reported wrong ACPI id %d for the processor\n",
			pr->id);
		/* Give up, but do not abort the namespace scan. */
		goto err;
		goto err_clear_driver_data;
	}
	/*
	 * processor_device_array is not cleared on errors to allow buggy BIOS
@@ -418,12 +418,12 @@ static int acpi_processor_add(struct acpi_device *device,
	dev = get_cpu_device(pr->id);
	if (!dev) {
		result = -ENODEV;
		goto err;
		goto err_clear_per_cpu;
	}

	result = acpi_bind_one(dev, device);
	if (result)
		goto err;
		goto err_clear_per_cpu;

	pr->dev = dev;

@@ -434,10 +434,11 @@ static int acpi_processor_add(struct acpi_device *device,
	dev_err(dev, "Processor driver could not be attached\n");
	acpi_unbind_one(dev);

 err:
	free_cpumask_var(pr->throttling.shared_cpu_map);
	device->driver_data = NULL;
 err_clear_per_cpu:
	per_cpu(processors, pr->id) = NULL;
 err_clear_driver_data:
	device->driver_data = NULL;
	free_cpumask_var(pr->throttling.shared_cpu_map);
 err_free_pr:
	kfree(pr);
	return result;
Loading