All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Ingo Molnar <mingo@kernel.org>,
	Pierre Gondois <pierre.gondois@arm.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1 113/137] cpufreq/cppc: Move and rename cppc_cpufreq_{perf_to_khz|khz_to_perf}()
Date: Mon, 28 Oct 2024 07:25:50 +0100	[thread overview]
Message-ID: <20241028062301.870194127@linuxfoundation.org> (raw)
In-Reply-To: <20241028062258.708872330@linuxfoundation.org>

6.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Vincent Guittot <vincent.guittot@linaro.org>

[ Upstream commit 50b813b147e9eb6546a1fc49d4e703e6d23691f2 ]

Move and rename cppc_cpufreq_perf_to_khz() and cppc_cpufreq_khz_to_perf() to
use them outside cppc_cpufreq in topology_init_cpu_capacity_cppc().

Modify the interface to use struct cppc_perf_caps *caps instead of
struct cppc_cpudata *cpu_data as we only use the fields of cppc_perf_caps.

cppc_cpufreq was converting the lowest and nominal freq from MHz to kHz
before using them. We move this conversion inside cppc_perf_to_khz and
cppc_khz_to_perf to make them generic and usable outside cppc_cpufreq.

No functional change

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Pierre Gondois <pierre.gondois@arm.com>
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Link: https://lore.kernel.org/r/20231211104855.558096-6-vincent.guittot@linaro.org
Stable-dep-of: d93df29bdab1 ("cpufreq: CPPC: fix perf_to_khz/khz_to_perf conversion exception")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/acpi/cppc_acpi.c       | 104 ++++++++++++++++++++++++
 drivers/cpufreq/cppc_cpufreq.c | 139 ++++-----------------------------
 include/acpi/cppc_acpi.h       |   2 +
 3 files changed, 123 insertions(+), 122 deletions(-)

diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
index 12296d85a7196..8d4b72488eb5e 100644
--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -39,6 +39,9 @@
 #include <linux/rwsem.h>
 #include <linux/wait.h>
 #include <linux/topology.h>
+#include <linux/dmi.h>
+#include <linux/units.h>
+#include <asm/unaligned.h>
 
 #include <acpi/cppc_acpi.h>
 
@@ -1664,3 +1667,104 @@ unsigned int cppc_get_transition_latency(int cpu_num)
 	return latency_ns;
 }
 EXPORT_SYMBOL_GPL(cppc_get_transition_latency);
+
+/* Minimum struct length needed for the DMI processor entry we want */
+#define DMI_ENTRY_PROCESSOR_MIN_LENGTH	48
+
+/* Offset in the DMI processor structure for the max frequency */
+#define DMI_PROCESSOR_MAX_SPEED		0x14
+
+/* Callback function used to retrieve the max frequency from DMI */
+static void cppc_find_dmi_mhz(const struct dmi_header *dm, void *private)
+{
+	const u8 *dmi_data = (const u8 *)dm;
+	u16 *mhz = (u16 *)private;
+
+	if (dm->type == DMI_ENTRY_PROCESSOR &&
+	    dm->length >= DMI_ENTRY_PROCESSOR_MIN_LENGTH) {
+		u16 val = (u16)get_unaligned((const u16 *)
+				(dmi_data + DMI_PROCESSOR_MAX_SPEED));
+		*mhz = val > *mhz ? val : *mhz;
+	}
+}
+
+/* Look up the max frequency in DMI */
+static u64 cppc_get_dmi_max_khz(void)
+{
+	u16 mhz = 0;
+
+	dmi_walk(cppc_find_dmi_mhz, &mhz);
+
+	/*
+	 * Real stupid fallback value, just in case there is no
+	 * actual value set.
+	 */
+	mhz = mhz ? mhz : 1;
+
+	return KHZ_PER_MHZ * mhz;
+}
+
+/*
+ * If CPPC lowest_freq and nominal_freq registers are exposed then we can
+ * use them to convert perf to freq and vice versa. The conversion is
+ * extrapolated as an affine function passing by the 2 points:
+ *  - (Low perf, Low freq)
+ *  - (Nominal perf, Nominal freq)
+ */
+unsigned int cppc_perf_to_khz(struct cppc_perf_caps *caps, unsigned int perf)
+{
+	s64 retval, offset = 0;
+	static u64 max_khz;
+	u64 mul, div;
+
+	if (caps->lowest_freq && caps->nominal_freq) {
+		mul = caps->nominal_freq - caps->lowest_freq;
+		mul *= KHZ_PER_MHZ;
+		div = caps->nominal_perf - caps->lowest_perf;
+		offset = caps->nominal_freq * KHZ_PER_MHZ -
+			 div64_u64(caps->nominal_perf * mul, div);
+	} else {
+		if (!max_khz)
+			max_khz = cppc_get_dmi_max_khz();
+		mul = max_khz;
+		div = caps->highest_perf;
+	}
+
+	retval = offset + div64_u64(perf * mul, div);
+	if (retval >= 0)
+		return retval;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(cppc_perf_to_khz);
+
+unsigned int cppc_khz_to_perf(struct cppc_perf_caps *caps, unsigned int freq)
+{
+	s64 retval, offset = 0;
+	static u64 max_khz;
+	u64  mul, div;
+
+	if (caps->lowest_freq && caps->nominal_freq) {
+		mul = caps->nominal_perf - caps->lowest_perf;
+		div = caps->nominal_freq - caps->lowest_freq;
+		/*
+		 * We don't need to convert to kHz for computing offset and can
+		 * directly use nominal_freq and lowest_freq as the div64_u64
+		 * will remove the frequency unit.
+		 */
+		offset = caps->nominal_perf -
+			 div64_u64(caps->nominal_freq * mul, div);
+		/* But we need it for computing the perf level. */
+		div *= KHZ_PER_MHZ;
+	} else {
+		if (!max_khz)
+			max_khz = cppc_get_dmi_max_khz();
+		mul = caps->highest_perf;
+		div = max_khz;
+	}
+
+	retval = offset + div64_u64(freq * mul, div);
+	if (retval >= 0)
+		return retval;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(cppc_khz_to_perf);
diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c
index 8791a88c7741c..0050242d382e7 100644
--- a/drivers/cpufreq/cppc_cpufreq.c
+++ b/drivers/cpufreq/cppc_cpufreq.c
@@ -16,7 +16,6 @@
 #include <linux/delay.h>
 #include <linux/cpu.h>
 #include <linux/cpufreq.h>
-#include <linux/dmi.h>
 #include <linux/irq_work.h>
 #include <linux/kthread.h>
 #include <linux/time.h>
@@ -27,12 +26,6 @@
 
 #include <acpi/cppc_acpi.h>
 
-/* Minimum struct length needed for the DMI processor entry we want */
-#define DMI_ENTRY_PROCESSOR_MIN_LENGTH	48
-
-/* Offset in the DMI processor structure for the max frequency */
-#define DMI_PROCESSOR_MAX_SPEED		0x14
-
 /*
  * This list contains information parsed from per CPU ACPI _CPC and _PSD
  * structures: e.g. the highest and lowest supported performance, capabilities,
@@ -288,97 +281,9 @@ static inline void cppc_freq_invariance_exit(void)
 }
 #endif /* CONFIG_ACPI_CPPC_CPUFREQ_FIE */
 
-/* Callback function used to retrieve the max frequency from DMI */
-static void cppc_find_dmi_mhz(const struct dmi_header *dm, void *private)
-{
-	const u8 *dmi_data = (const u8 *)dm;
-	u16 *mhz = (u16 *)private;
-
-	if (dm->type == DMI_ENTRY_PROCESSOR &&
-	    dm->length >= DMI_ENTRY_PROCESSOR_MIN_LENGTH) {
-		u16 val = (u16)get_unaligned((const u16 *)
-				(dmi_data + DMI_PROCESSOR_MAX_SPEED));
-		*mhz = val > *mhz ? val : *mhz;
-	}
-}
-
-/* Look up the max frequency in DMI */
-static u64 cppc_get_dmi_max_khz(void)
-{
-	u16 mhz = 0;
-
-	dmi_walk(cppc_find_dmi_mhz, &mhz);
-
-	/*
-	 * Real stupid fallback value, just in case there is no
-	 * actual value set.
-	 */
-	mhz = mhz ? mhz : 1;
-
-	return (1000 * mhz);
-}
-
-/*
- * If CPPC lowest_freq and nominal_freq registers are exposed then we can
- * use them to convert perf to freq and vice versa. The conversion is
- * extrapolated as an affine function passing by the 2 points:
- *  - (Low perf, Low freq)
- *  - (Nominal perf, Nominal perf)
- */
-static unsigned int cppc_cpufreq_perf_to_khz(struct cppc_cpudata *cpu_data,
-					     unsigned int perf)
-{
-	struct cppc_perf_caps *caps = &cpu_data->perf_caps;
-	s64 retval, offset = 0;
-	static u64 max_khz;
-	u64 mul, div;
-
-	if (caps->lowest_freq && caps->nominal_freq) {
-		mul = caps->nominal_freq - caps->lowest_freq;
-		div = caps->nominal_perf - caps->lowest_perf;
-		offset = caps->nominal_freq - div64_u64(caps->nominal_perf * mul, div);
-	} else {
-		if (!max_khz)
-			max_khz = cppc_get_dmi_max_khz();
-		mul = max_khz;
-		div = caps->highest_perf;
-	}
-
-	retval = offset + div64_u64(perf * mul, div);
-	if (retval >= 0)
-		return retval;
-	return 0;
-}
-
-static unsigned int cppc_cpufreq_khz_to_perf(struct cppc_cpudata *cpu_data,
-					     unsigned int freq)
-{
-	struct cppc_perf_caps *caps = &cpu_data->perf_caps;
-	s64 retval, offset = 0;
-	static u64 max_khz;
-	u64  mul, div;
-
-	if (caps->lowest_freq && caps->nominal_freq) {
-		mul = caps->nominal_perf - caps->lowest_perf;
-		div = caps->nominal_freq - caps->lowest_freq;
-		offset = caps->nominal_perf - div64_u64(caps->nominal_freq * mul, div);
-	} else {
-		if (!max_khz)
-			max_khz = cppc_get_dmi_max_khz();
-		mul = caps->highest_perf;
-		div = max_khz;
-	}
-
-	retval = offset + div64_u64(freq * mul, div);
-	if (retval >= 0)
-		return retval;
-	return 0;
-}
-
 static int cppc_cpufreq_set_target(struct cpufreq_policy *policy,
 				   unsigned int target_freq,
 				   unsigned int relation)
-
 {
 	struct cppc_cpudata *cpu_data = policy->driver_data;
 	unsigned int cpu = policy->cpu;
@@ -386,7 +291,7 @@ static int cppc_cpufreq_set_target(struct cpufreq_policy *policy,
 	u32 desired_perf;
 	int ret = 0;
 
-	desired_perf = cppc_cpufreq_khz_to_perf(cpu_data, target_freq);
+	desired_perf = cppc_khz_to_perf(&cpu_data->perf_caps, target_freq);
 	/* Return if it is exactly the same perf */
 	if (desired_perf == cpu_data->perf_ctrls.desired_perf)
 		return ret;
@@ -414,7 +319,7 @@ static unsigned int cppc_cpufreq_fast_switch(struct cpufreq_policy *policy,
 	u32 desired_perf;
 	int ret;
 
-	desired_perf = cppc_cpufreq_khz_to_perf(cpu_data, target_freq);
+	desired_perf = cppc_khz_to_perf(&cpu_data->perf_caps, target_freq);
 	cpu_data->perf_ctrls.desired_perf = desired_perf;
 	ret = cppc_set_perf(cpu, &cpu_data->perf_ctrls);
 
@@ -527,7 +432,7 @@ static int cppc_get_cpu_power(struct device *cpu_dev,
 	min_step = min_cap / CPPC_EM_CAP_STEP;
 	max_step = max_cap / CPPC_EM_CAP_STEP;
 
-	perf_prev = cppc_cpufreq_khz_to_perf(cpu_data, *KHz);
+	perf_prev = cppc_khz_to_perf(perf_caps, *KHz);
 	step = perf_prev / perf_step;
 
 	if (step > max_step)
@@ -547,8 +452,8 @@ static int cppc_get_cpu_power(struct device *cpu_dev,
 			perf = step * perf_step;
 	}
 
-	*KHz = cppc_cpufreq_perf_to_khz(cpu_data, perf);
-	perf_check = cppc_cpufreq_khz_to_perf(cpu_data, *KHz);
+	*KHz = cppc_perf_to_khz(perf_caps, perf);
+	perf_check = cppc_khz_to_perf(perf_caps, *KHz);
 	step_check = perf_check / perf_step;
 
 	/*
@@ -558,8 +463,8 @@ static int cppc_get_cpu_power(struct device *cpu_dev,
 	 */
 	while ((*KHz == prev_freq) || (step_check != step)) {
 		perf++;
-		*KHz = cppc_cpufreq_perf_to_khz(cpu_data, perf);
-		perf_check = cppc_cpufreq_khz_to_perf(cpu_data, *KHz);
+		*KHz = cppc_perf_to_khz(perf_caps, perf);
+		perf_check = cppc_khz_to_perf(perf_caps, *KHz);
 		step_check = perf_check / perf_step;
 	}
 
@@ -588,7 +493,7 @@ static int cppc_get_cpu_cost(struct device *cpu_dev, unsigned long KHz,
 	perf_caps = &cpu_data->perf_caps;
 	max_cap = arch_scale_cpu_capacity(cpu_dev->id);
 
-	perf_prev = cppc_cpufreq_khz_to_perf(cpu_data, KHz);
+	perf_prev = cppc_khz_to_perf(perf_caps, KHz);
 	perf_step = CPPC_EM_CAP_STEP * perf_caps->highest_perf / max_cap;
 	step = perf_prev / perf_step;
 
@@ -676,10 +581,6 @@ static struct cppc_cpudata *cppc_cpufreq_get_cpu_data(unsigned int cpu)
 		goto free_mask;
 	}
 
-	/* Convert the lowest and nominal freq from MHz to KHz */
-	cpu_data->perf_caps.lowest_freq *= 1000;
-	cpu_data->perf_caps.nominal_freq *= 1000;
-
 	list_add(&cpu_data->node, &cpu_data_list);
 
 	return cpu_data;
@@ -721,20 +622,16 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
 	 * Set min to lowest nonlinear perf to avoid any efficiency penalty (see
 	 * Section 8.4.7.1.1.5 of ACPI 6.1 spec)
 	 */
-	policy->min = cppc_cpufreq_perf_to_khz(cpu_data,
-					       caps->lowest_nonlinear_perf);
-	policy->max = cppc_cpufreq_perf_to_khz(cpu_data,
-					       caps->nominal_perf);
+	policy->min = cppc_perf_to_khz(caps, caps->lowest_nonlinear_perf);
+	policy->max = cppc_perf_to_khz(caps, caps->nominal_perf);
 
 	/*
 	 * Set cpuinfo.min_freq to Lowest to make the full range of performance
 	 * available if userspace wants to use any perf between lowest & lowest
 	 * nonlinear perf
 	 */
-	policy->cpuinfo.min_freq = cppc_cpufreq_perf_to_khz(cpu_data,
-							    caps->lowest_perf);
-	policy->cpuinfo.max_freq = cppc_cpufreq_perf_to_khz(cpu_data,
-							    caps->nominal_perf);
+	policy->cpuinfo.min_freq = cppc_perf_to_khz(caps, caps->lowest_perf);
+	policy->cpuinfo.max_freq = cppc_perf_to_khz(caps, caps->nominal_perf);
 
 	policy->transition_delay_us = cppc_cpufreq_get_transition_delay_us(cpu);
 	policy->shared_type = cpu_data->shared_type;
@@ -770,7 +667,7 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
 		boost_supported = true;
 
 	/* Set policy->cur to max now. The governors will adjust later. */
-	policy->cur = cppc_cpufreq_perf_to_khz(cpu_data, caps->highest_perf);
+	policy->cur = cppc_perf_to_khz(caps, caps->highest_perf);
 	cpu_data->perf_ctrls.desired_perf =  caps->highest_perf;
 
 	ret = cppc_set_perf(cpu, &cpu_data->perf_ctrls);
@@ -865,7 +762,7 @@ static unsigned int cppc_cpufreq_get_rate(unsigned int cpu)
 	delivered_perf = cppc_perf_from_fbctrs(cpu_data, &fb_ctrs_t0,
 					       &fb_ctrs_t1);
 
-	return cppc_cpufreq_perf_to_khz(cpu_data, delivered_perf);
+	return cppc_perf_to_khz(&cpu_data->perf_caps, delivered_perf);
 }
 
 static int cppc_cpufreq_set_boost(struct cpufreq_policy *policy, int state)
@@ -880,11 +777,9 @@ static int cppc_cpufreq_set_boost(struct cpufreq_policy *policy, int state)
 	}
 
 	if (state)
-		policy->max = cppc_cpufreq_perf_to_khz(cpu_data,
-						       caps->highest_perf);
+		policy->max = cppc_perf_to_khz(caps, caps->highest_perf);
 	else
-		policy->max = cppc_cpufreq_perf_to_khz(cpu_data,
-						       caps->nominal_perf);
+		policy->max = cppc_perf_to_khz(caps, caps->nominal_perf);
 	policy->cpuinfo.max_freq = policy->max;
 
 	ret = freq_qos_update_request(policy->max_freq_req, policy->max);
@@ -944,7 +839,7 @@ static unsigned int hisi_cppc_cpufreq_get_rate(unsigned int cpu)
 	if (ret < 0)
 		return -EIO;
 
-	return cppc_cpufreq_perf_to_khz(cpu_data, desired_perf);
+	return cppc_perf_to_khz(&cpu_data->perf_caps, desired_perf);
 }
 
 static void cppc_check_hisi_workaround(void)
diff --git a/include/acpi/cppc_acpi.h b/include/acpi/cppc_acpi.h
index b097bd57b2e47..2d1ec0e6ee018 100644
--- a/include/acpi/cppc_acpi.h
+++ b/include/acpi/cppc_acpi.h
@@ -143,6 +143,8 @@ extern int cppc_set_perf(int cpu, struct cppc_perf_ctrls *perf_ctrls);
 extern int cppc_set_enable(int cpu, bool enable);
 extern int cppc_get_perf_caps(int cpu, struct cppc_perf_caps *caps);
 extern bool cppc_perf_ctrs_in_pcc(void);
+extern unsigned int cppc_perf_to_khz(struct cppc_perf_caps *caps, unsigned int perf);
+extern unsigned int cppc_khz_to_perf(struct cppc_perf_caps *caps, unsigned int freq);
 extern bool acpi_cpc_valid(void);
 extern bool cppc_allow_fast_switch(void);
 extern int acpi_get_psd_map(unsigned int cpu, struct cppc_cpudata *cpu_data);
-- 
2.43.0




  parent reply	other threads:[~2024-10-28  6:36 UTC|newest]

Thread overview: 154+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-28  6:23 [PATCH 6.1 000/137] 6.1.115-rc1 review Greg Kroah-Hartman
2024-10-28  6:23 ` [PATCH 6.1 001/137] bpf: Use raw_spinlock_t in ringbuf Greg Kroah-Hartman
2024-10-28  6:23 ` [PATCH 6.1 002/137] iio: accel: bma400: Fix uninitialized variable field_value in tap event handling Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 003/137] bpf: Make sure internal and UAPI bpf_redirect flags dont overlap Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 004/137] bpf: devmap: provide rxq after redirect Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 005/137] bpf: Fix memory leak in bpf_core_apply Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 006/137] RDMA/bnxt_re: Fix incorrect AVID type in WQE structure Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 007/137] RDMA/bnxt_re: Add a check for memory allocation Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 008/137] x86/resctrl: Avoid overflow in MB settings in bw_validate() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 009/137] ARM: dts: bcm2837-rpi-cm3-io3: Fix HDMI hpd-gpio pin Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 010/137] s390/pci: Handle PCI error codes other than 0x3a Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 011/137] bpf: fix kfunc btf caching for modules Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 012/137] iio: frequency: {admv4420,adrf6780}: format Kconfig entries Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 013/137] iio: frequency: admv4420: fix missing select REMAP_SPI in Kconfig Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 014/137] drm/vmwgfx: Handle possible ENOMEM in vmw_stdu_connector_atomic_check Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 015/137] selftests/bpf: Fix cross-compiling urandom_read Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 016/137] ALSA: hda/cs8409: Fix possible NULL dereference Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 017/137] RDMA/cxgb4: Fix RDMA_CM_EVENT_UNREACHABLE error for iWARP Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 018/137] RDMA/irdma: Fix misspelling of "accept*" Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 019/137] RDMA/srpt: Make slab cache names unique Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 020/137] ipv4: give an IPv4 dev to blackhole_netdev Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 021/137] RDMA/bnxt_re: Return more meaningful error Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 022/137] RDMA/bnxt_re: Fix a bug while setting up Level-2 PBL pages Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 023/137] drm/msm/dpu: make sure phys resources are properly initialized Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 024/137] drm/msm/dsi: fix 32-bit signed integer extension in pclk_rate calculation Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 025/137] drm/msm: Avoid NULL dereference in msm_disp_state_print_regs() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 026/137] drm/msm: Allocate memory for disp snapshot with kvzalloc() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 027/137] net: usb: usbnet: fix race in probe failure Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 028/137] octeontx2-af: Fix potential integer overflows on integer shifts Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 029/137] drm/amd/amdgpu: Fix double unlock in amdgpu_mes_add_ring Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 030/137] macsec: dont increment counters for an unrelated SA Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 031/137] netdevsim: use cond_resched() in nsim_dev_trap_report_work() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 032/137] net: ethernet: aeroflex: fix potential memory leak in greth_start_xmit_gbit() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 033/137] net/smc: Fix searching in list of known pnetids in smc_pnet_add_pnetid Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 034/137] net: xilinx: axienet: fix potential memory leak in axienet_start_xmit() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 035/137] net: systemport: fix potential memory leak in bcm_sysport_xmit() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 036/137] irqchip/renesas-rzg2l: Align struct member names to tabs Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 037/137] irqchip/renesas-rzg2l: Document structure members Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 038/137] irqchip/renesas-rzg2l: Add support for suspend to RAM Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 039/137] irqchip/renesas-rzg2l: Fix missing put_device Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 040/137] drm/msm/dpu: Wire up DSC mask for active CTL configuration Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 041/137] drm/msm/dpu: dont always program merge_3d block Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 042/137] tcp/dccp: Dont use timer_pending() in reqsk_queue_unlink() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 043/137] genetlink: hold RCU in genlmsg_mcast() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 044/137] ravb: Remove setting of RX software timestamp Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 045/137] net: ravb: Only advertise Rx/Tx timestamps if hardware supports it Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 046/137] scsi: target: core: Fix null-ptr-deref in target_alloc_device() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 047/137] smb: client: fix OOBs when building SMB2_IOCTL request Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 048/137] usb: typec: altmode should keep reference to parent Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 049/137] s390: Initialize psw mask in perf_arch_fetch_caller_regs() Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 050/137] Bluetooth: bnep: fix wild-memory-access in proto_unregister Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 051/137] net/mlx5: Remove redundant cmdif revision check Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 052/137] net/mlx5: split mlx5_cmd_init() to probe and reload routines Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 053/137] net/mlx5: Fix command bitmask initialization Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 054/137] net/mlx5: Unregister notifier on eswitch init failure Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 055/137] riscv, bpf: Make BPF_CMPXCHG fully ordered Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 056/137] bpf: Fix iter/task tid filtering Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 057/137] arm64:uprobe fix the uprobe SWBP_INSN in big-endian Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 058/137] arm64: probes: Fix uprobes for big-endian kernels Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 059/137] xhci: dbgtty: remove kfifo_out() wrapper Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 060/137] xhci: dbgtty: use kfifo from tty_port struct Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 061/137] xhci: dbc: honor usb transfer size boundaries Greg Kroah-Hartman
2024-10-28  6:24 ` [PATCH 6.1 062/137] usb: gadget: f_uac2: Replace snprintf() with the safer scnprintf() variant Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 063/137] usb: gadget: f_uac2: fix non-newline-terminated function name Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 064/137] usb: gadget: f_uac2: fix return value for UAC2_ATTRIBUTE_STRING store Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 065/137] usb: gadget: Add function wakeup support Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 066/137] XHCI: Separate PORT and CAPs macros into dedicated file Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 067/137] usb: dwc3: core: Fix system suspend on TI AM62 platforms Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 068/137] tty/serial: Make ->dcd_change()+uart_handle_dcd_change() status bool active Greg Kroah-Hartman
2024-10-29  5:59   ` Jiri Slaby
2024-10-29 11:26     ` Sasha Levin
2024-10-29 11:40       ` Jiri Slaby
2024-10-29 18:16         ` Sasha Levin
2024-10-28  6:25 ` [PATCH 6.1 069/137] serial: Make uart_handle_cts_change() status param " Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 070/137] serial: imx: Update mctrl old_status on RTSD interrupt Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 071/137] block, bfq: fix procress reference leakage for bfqq in merge chain Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 072/137] exec: dont WARN for racy path_noexec check Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 073/137] fs/ntfs3: Add more attributes checks in mi_enum_attr() Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 074/137] drm/vboxvideo: Replace fake VLA at end of vbva_mouse_pointer_shape with real VLA Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 075/137] ASoC: codecs: lpass-rx-macro: add missing CDC_RX_BCL_VBAT_RF_PROC2 to default regs values Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 076/137] ASoC: fsl_sai: Enable FIFO continue on error FCONT bit Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 077/137] arm64: Force position-independent veneers Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 078/137] udf: refactor udf_current_aext() to handle error Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 079/137] udf: fix uninit-value use in udf_get_fileshortad Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 080/137] ASoC: qcom: sm8250: add qrb4210-rb2-sndcard compatible string Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 081/137] platform/x86: dell-sysman: add support for alienware products Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 082/137] LoongArch: Add support to clone a time namespace Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 083/137] LoongArch: Dont crash in stack_top() for tasks without vDSO Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 084/137] jfs: Fix sanity check in dbMount Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 085/137] tracing: Consider the NULL character when validating the event length Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 086/137] xfrm: extract dst lookup parameters into a struct Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 087/137] xfrm: respect ip protocols rules criteria when performing dst lookups Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 088/137] net/sun3_82586: fix potential memory leak in sun3_82586_send_packet() Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 089/137] be2net: fix potential memory leak in be_xmit() Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 090/137] net: plip: fix break; causing plip to never transmit Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 091/137] octeon_ep: Implement helper for iterating packets in Rx queue Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 092/137] octeon_ep: Add SKB allocation failures handling in __octep_oq_process_rx() Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 093/137] net: dsa: mv88e6xxx: Fix error when setting port policy on mv88e6393x Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 094/137] netfilter: xtables: fix typo causing some targets not to load on IPv6 Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 095/137] net: wwan: fix global oob in wwan_rtnl_policy Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 096/137] docs: net: reformat driver.rst from a list to sections Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 097/137] net: provide macros for commonly copied lockless queue stop/wake code Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 098/137] net/sched: adjust device watchdog timer to detect stopped queue at right time Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 099/137] net: fix races in netdev_tx_sent_queue()/dev_watchdog() Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 100/137] net: usb: usbnet: fix name regression Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 101/137] net/sched: act_api: deny mismatched skip_sw/skip_hw flags for actions created by classifiers Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 102/137] net: sched: fix use-after-free in taprio_change() Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 103/137] r8169: avoid unsolicited interrupts Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 104/137] posix-clock: posix-clock: Fix unbalanced locking in pc_clock_settime() Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 105/137] Bluetooth: SCO: Fix UAF on sco_sock_timeout Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 106/137] Bluetooth: ISO: Fix UAF on iso_sock_timeout Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 107/137] bpf,perf: Fix perf_event_detach_bpf_prog error handling Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 108/137] ASoC: dt-bindings: davinci-mcasp: Fix interrupts property Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 109/137] ASoC: dt-bindings: davinci-mcasp: Fix interrupt properties Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 110/137] ALSA: firewire-lib: Avoid division by zero in apply_constraint_to_size() Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 111/137] powercap: dtpm_devfreq: Fix error check against dev_pm_qos_add_request() Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 112/137] ALSA: hda/realtek: Update default depop procedure Greg Kroah-Hartman
2024-10-28  6:25 ` Greg Kroah-Hartman [this message]
2024-10-28  6:25 ` [PATCH 6.1 114/137] cpufreq: CPPC: fix perf_to_khz/khz_to_perf conversion exception Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 115/137] btrfs: fix passing 0 to ERR_PTR in btrfs_search_dir_index_item() Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 116/137] btrfs: zoned: fix zone unusable accounting for freed reserved extent Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 117/137] drm/amd: Guard against bad data for ATIF ACPI method Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 118/137] ACPI: resource: Add LG 16T90SP to irq1_level_low_skip_override[] Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 119/137] ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM handler and context Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 120/137] ACPI: button: Add DMI quirk for Samsung Galaxy Book2 to fix initial lid detection issue Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 121/137] nilfs2: fix kernel bug due to missing clearing of buffer delay flag Greg Kroah-Hartman
2024-10-28  6:25 ` [PATCH 6.1 122/137] openat2: explicitly return -E2BIG for (usize > PAGE_SIZE) Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 123/137] KVM: nSVM: Ignore nCR3[4:0] when loading PDPTEs from memory Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 124/137] KVM: arm64: Dont eagerly teardown the vgic on init error Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 125/137] ALSA: hda/realtek: Add subwoofer quirk for Acer Predator G9-593 Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 126/137] LoongArch: Get correct cores_per_package for SMT systems Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 127/137] xfrm: fix one more kernel-infoleak in algo dumping Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 128/137] hv_netvsc: Fix VF namespace also in synthetic NIC NETDEV_REGISTER event Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 129/137] drm/amd/display: Disable PSR-SU on Parade 08-01 TCON too Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 130/137] selinux: improve error checking in sel_write_load() Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 131/137] serial: protect uart_port_dtr_rts() in uart_shutdown() too Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 132/137] net: phy: dp83822: Fix reset pin definitions Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 133/137] block: fix sanity checks in blk_rq_map_user_bvec Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 134/137] ASoC: qcom: Fix NULL Dereference in asoc_qcom_lpass_cpu_platform_probe() Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 135/137] platform/x86: dell-wmi: Ignore suspend notifications Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 136/137] ACPI: PRM: Clean up guid type in struct prm_handler_info Greg Kroah-Hartman
2024-10-28  6:26 ` [PATCH 6.1 137/137] arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning Greg Kroah-Hartman
2024-10-28 14:18 ` [PATCH 6.1 000/137] 6.1.115-rc1 review Mark Brown
2024-10-28 16:58 ` Naresh Kamboju
2024-10-28 17:50 ` SeongJae Park
2024-10-28 18:35 ` Peter Schneider
2024-10-28 19:35 ` Florian Fainelli
2024-10-29  1:57 ` [PATCH 6.1] " Hardik Garg
2024-10-29 12:59 ` [PATCH 6.1 000/137] " Muhammad Usama Anjum
2024-10-29 20:27 ` Pavel Machek
2024-10-30  1:39 ` Ron Economos
2024-11-02 16:46 ` Guenter Roeck
2024-11-02 17:41   ` Thomas Weißschuh
2024-11-03 17:51 ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241028062301.870194127@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=mingo@kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=pierre.gondois@arm.com \
    --cc=rafael@kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=vincent.guittot@linaro.org \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.