public inbox for stable@vger.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, "Ilia Levi" <ilia.levi@intel.com>,
	"Piotr Piórkowski" <piotr.piorkowski@intel.com>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Sasha Levin" <sashal@kernel.org>
Subject: [PATCH 6.13 077/138] drm/xe/irq: Separate MSI and MSI-X flows
Date: Mon, 24 Feb 2025 15:35:07 +0100	[thread overview]
Message-ID: <20250224142607.503141803@linuxfoundation.org> (raw)
In-Reply-To: <20250224142604.442289573@linuxfoundation.org>

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

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

From: Ilia Levi <ilia.levi@intel.com>

[ Upstream commit da889070be7b26b91e8b90f072687ca437d3ed7b ]

A new flow is added for devices that support MSI-X:
- MSI-X vector 0 is used for GuC-to-host interrupt
- MSI-X vector 1 (aka default MSI-X) is used for HW engines

The default MSI-X will be passed to the HW engines in a subsequent
patch.

Signed-off-by: Ilia Levi <ilia.levi@intel.com>
Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241213072538.6823-2-ilia.levi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Stable-dep-of: 0c455f3a1229 ("drm/xe: Fix error handling in xe_irq_install()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/gpu/drm/xe/xe_device.c       |   4 +-
 drivers/gpu/drm/xe/xe_device.h       |   3 +-
 drivers/gpu/drm/xe/xe_device_types.h |   6 +
 drivers/gpu/drm/xe/xe_irq.c          | 257 +++++++++++++++++++++++----
 drivers/gpu/drm/xe/xe_irq.h          |   3 +
 5 files changed, 237 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 06d6db8b50f93..7f902d50ebf69 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -324,7 +324,9 @@ struct xe_device *xe_device_create(struct pci_dev *pdev,
 	xe->info.revid = pdev->revision;
 	xe->info.force_execlist = xe_modparam.force_execlist;
 
-	spin_lock_init(&xe->irq.lock);
+	err = xe_irq_init(xe);
+	if (err)
+		goto err;
 
 	init_waitqueue_head(&xe->ufence_wq);
 
diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
index f1fbfe9168678..fc3c2af3fb7fd 100644
--- a/drivers/gpu/drm/xe/xe_device.h
+++ b/drivers/gpu/drm/xe/xe_device.h
@@ -157,8 +157,7 @@ static inline bool xe_device_has_sriov(struct xe_device *xe)
 
 static inline bool xe_device_has_msix(struct xe_device *xe)
 {
-	/* TODO: change this when MSI-X support is fully integrated */
-	return false;
+	return xe->irq.msix.nvec > 0;
 }
 
 static inline bool xe_device_has_memirq(struct xe_device *xe)
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 09068ea7349a8..782eb224a46e7 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -346,6 +346,12 @@ struct xe_device {
 
 		/** @irq.enabled: interrupts enabled on this device */
 		atomic_t enabled;
+
+		/** @irq.msix: irq info for platforms that support MSI-X */
+		struct {
+			/** @irq.msix.nvec: number of MSI-X interrupts */
+			u16 nvec;
+		} msix;
 	} irq;
 
 	/** @ttm: ttm device */
diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c
index 32547b6a6d1cb..de220ce113c25 100644
--- a/drivers/gpu/drm/xe/xe_irq.c
+++ b/drivers/gpu/drm/xe/xe_irq.c
@@ -10,6 +10,7 @@
 #include <drm/drm_managed.h>
 
 #include "display/xe_display.h"
+#include "regs/xe_guc_regs.h"
 #include "regs/xe_irq_regs.h"
 #include "xe_device.h"
 #include "xe_drv.h"
@@ -29,6 +30,11 @@
 #define IIR(offset)				XE_REG(offset + 0x8)
 #define IER(offset)				XE_REG(offset + 0xc)
 
+static int xe_irq_msix_init(struct xe_device *xe);
+static void xe_irq_msix_free(struct xe_device *xe);
+static int xe_irq_msix_request_irqs(struct xe_device *xe);
+static void xe_irq_msix_synchronize_irq(struct xe_device *xe);
+
 static void assert_iir_is_zero(struct xe_mmio *mmio, struct xe_reg reg)
 {
 	u32 val = xe_mmio_read32(mmio, reg);
@@ -572,6 +578,11 @@ static void xe_irq_reset(struct xe_device *xe)
 	if (IS_SRIOV_VF(xe))
 		return vf_irq_reset(xe);
 
+	if (xe_device_uses_memirq(xe)) {
+		for_each_tile(tile, xe, id)
+			xe_memirq_reset(&tile->memirq);
+	}
+
 	for_each_tile(tile, xe, id) {
 		if (GRAPHICS_VERx100(xe) >= 1210)
 			dg1_irq_reset(tile);
@@ -614,6 +625,14 @@ static void xe_irq_postinstall(struct xe_device *xe)
 	if (IS_SRIOV_VF(xe))
 		return vf_irq_postinstall(xe);
 
+	if (xe_device_uses_memirq(xe)) {
+		struct xe_tile *tile;
+		unsigned int id;
+
+		for_each_tile(tile, xe, id)
+			xe_memirq_postinstall(&tile->memirq);
+	}
+
 	xe_display_irq_postinstall(xe, xe_root_mmio_gt(xe));
 
 	/*
@@ -656,60 +675,83 @@ static irq_handler_t xe_irq_handler(struct xe_device *xe)
 		return xelp_irq_handler;
 }
 
-static void irq_uninstall(void *arg)
+static int xe_irq_msi_request_irqs(struct xe_device *xe)
+{
+	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+	irq_handler_t irq_handler;
+	int irq, err;
+
+	irq_handler = xe_irq_handler(xe);
+	if (!irq_handler) {
+		drm_err(&xe->drm, "No supported interrupt handler");
+		return -EINVAL;
+	}
+
+	irq = pci_irq_vector(pdev, 0);
+	err = request_irq(irq, irq_handler, IRQF_SHARED, DRIVER_NAME, xe);
+	if (err < 0) {
+		drm_err(&xe->drm, "Failed to request MSI IRQ %d\n", err);
+		return err;
+	}
+
+	return 0;
+}
+
+static void xe_irq_msi_free(struct xe_device *xe)
 {
-	struct xe_device *xe = arg;
 	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
 	int irq;
 
+	irq = pci_irq_vector(pdev, 0);
+	free_irq(irq, xe);
+}
+
+static void irq_uninstall(void *arg)
+{
+	struct xe_device *xe = arg;
+
 	if (!atomic_xchg(&xe->irq.enabled, 0))
 		return;
 
 	xe_irq_reset(xe);
 
-	irq = pci_irq_vector(pdev, 0);
-	free_irq(irq, xe);
+	if (xe_device_has_msix(xe))
+		xe_irq_msix_free(xe);
+	else
+		xe_irq_msi_free(xe);
+}
+
+int xe_irq_init(struct xe_device *xe)
+{
+	spin_lock_init(&xe->irq.lock);
+
+	return xe_irq_msix_init(xe);
 }
 
 int xe_irq_install(struct xe_device *xe)
 {
 	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
-	unsigned int irq_flags = PCI_IRQ_MSIX;
-	irq_handler_t irq_handler;
-	int err, irq, nvec;
-
-	irq_handler = xe_irq_handler(xe);
-	if (!irq_handler) {
-		drm_err(&xe->drm, "No supported interrupt handler");
-		return -EINVAL;
-	}
+	unsigned int irq_flags = PCI_IRQ_MSI;
+	int nvec = 1;
+	int err;
 
 	xe_irq_reset(xe);
 
-	nvec = pci_msix_vec_count(pdev);
-	if (nvec <= 0) {
-		if (nvec == -EINVAL) {
-			/* MSIX capability is not supported in the device, using MSI */
-			irq_flags = PCI_IRQ_MSI;
-			nvec = 1;
-		} else {
-			drm_err(&xe->drm, "MSIX: Failed getting count\n");
-			return nvec;
-		}
+	if (xe_device_has_msix(xe)) {
+		nvec = xe->irq.msix.nvec;
+		irq_flags = PCI_IRQ_MSIX;
 	}
 
 	err = pci_alloc_irq_vectors(pdev, nvec, nvec, irq_flags);
 	if (err < 0) {
-		drm_err(&xe->drm, "MSI/MSIX: Failed to enable support %d\n", err);
+		drm_err(&xe->drm, "Failed to allocate IRQ vectors: %d\n", err);
 		return err;
 	}
 
-	irq = pci_irq_vector(pdev, 0);
-	err = request_irq(irq, irq_handler, IRQF_SHARED, DRIVER_NAME, xe);
-	if (err < 0) {
-		drm_err(&xe->drm, "Failed to request MSI/MSIX IRQ %d\n", err);
+	err = xe_device_has_msix(xe) ? xe_irq_msix_request_irqs(xe) :
+					xe_irq_msi_request_irqs(xe);
+	if (err)
 		return err;
-	}
 
 	atomic_set(&xe->irq.enabled, 1);
 
@@ -722,18 +764,28 @@ int xe_irq_install(struct xe_device *xe)
 	return 0;
 
 free_irq_handler:
-	free_irq(irq, xe);
+	if (xe_device_has_msix(xe))
+		xe_irq_msix_free(xe);
+	else
+		xe_irq_msi_free(xe);
 
 	return err;
 }
 
-void xe_irq_suspend(struct xe_device *xe)
+static void xe_irq_msi_synchronize_irq(struct xe_device *xe)
 {
-	int irq = to_pci_dev(xe->drm.dev)->irq;
+	synchronize_irq(to_pci_dev(xe->drm.dev)->irq);
+}
 
+void xe_irq_suspend(struct xe_device *xe)
+{
 	atomic_set(&xe->irq.enabled, 0); /* no new irqs */
 
-	synchronize_irq(irq); /* flush irqs */
+	/* flush irqs */
+	if (xe_device_has_msix(xe))
+		xe_irq_msix_synchronize_irq(xe);
+	else
+		xe_irq_msi_synchronize_irq(xe);
 	xe_irq_reset(xe); /* turn irqs off */
 }
 
@@ -754,3 +806,142 @@ void xe_irq_resume(struct xe_device *xe)
 	for_each_gt(gt, xe, id)
 		xe_irq_enable_hwe(gt);
 }
+
+/* MSI-X related definitions and functions below. */
+
+enum xe_irq_msix_static {
+	GUC2HOST_MSIX = 0,
+	DEFAULT_MSIX = XE_IRQ_DEFAULT_MSIX,
+	/* Must be last */
+	NUM_OF_STATIC_MSIX,
+};
+
+static int xe_irq_msix_init(struct xe_device *xe)
+{
+	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+	int nvec = pci_msix_vec_count(pdev);
+
+	if (nvec == -EINVAL)
+		return 0;  /* MSI */
+
+	if (nvec < 0) {
+		drm_err(&xe->drm, "Failed getting MSI-X vectors count: %d\n", nvec);
+		return nvec;
+	}
+
+	xe->irq.msix.nvec = nvec;
+	return 0;
+}
+
+static irqreturn_t guc2host_irq_handler(int irq, void *arg)
+{
+	struct xe_device *xe = arg;
+	struct xe_tile *tile;
+	u8 id;
+
+	if (!atomic_read(&xe->irq.enabled))
+		return IRQ_NONE;
+
+	for_each_tile(tile, xe, id)
+		xe_guc_irq_handler(&tile->primary_gt->uc.guc,
+				   GUC_INTR_GUC2HOST);
+
+	return IRQ_HANDLED;
+}
+
+static irqreturn_t xe_irq_msix_default_hwe_handler(int irq, void *arg)
+{
+	unsigned int tile_id, gt_id;
+	struct xe_device *xe = arg;
+	struct xe_memirq *memirq;
+	struct xe_hw_engine *hwe;
+	enum xe_hw_engine_id id;
+	struct xe_tile *tile;
+	struct xe_gt *gt;
+
+	if (!atomic_read(&xe->irq.enabled))
+		return IRQ_NONE;
+
+	for_each_tile(tile, xe, tile_id) {
+		memirq = &tile->memirq;
+		if (!memirq->bo)
+			continue;
+
+		for_each_gt(gt, xe, gt_id) {
+			if (gt->tile != tile)
+				continue;
+
+			for_each_hw_engine(hwe, gt, id)
+				xe_memirq_hwe_handler(memirq, hwe);
+		}
+	}
+
+	return IRQ_HANDLED;
+}
+
+static int xe_irq_msix_request_irq(struct xe_device *xe, irq_handler_t handler,
+				   const char *name, u16 msix)
+{
+	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+	int ret, irq;
+
+	irq = pci_irq_vector(pdev, msix);
+	if (irq < 0)
+		return irq;
+
+	ret = request_irq(irq, handler, IRQF_SHARED, name, xe);
+	if (ret < 0)
+		return ret;
+
+	return 0;
+}
+
+static void xe_irq_msix_free_irq(struct xe_device *xe, u16 msix)
+{
+	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+	int irq;
+
+	irq = pci_irq_vector(pdev, msix);
+	if (irq < 0) {
+		drm_err(&xe->drm, "MSI-X %u can't be released, there is no matching IRQ\n", msix);
+		return;
+	}
+
+	free_irq(irq, xe);
+}
+
+static int xe_irq_msix_request_irqs(struct xe_device *xe)
+{
+	int err;
+
+	err = xe_irq_msix_request_irq(xe, guc2host_irq_handler,
+				      DRIVER_NAME "-guc2host", GUC2HOST_MSIX);
+	if (err) {
+		drm_err(&xe->drm, "Failed to request MSI-X IRQ %d: %d\n", GUC2HOST_MSIX, err);
+		return err;
+	}
+
+	err = xe_irq_msix_request_irq(xe, xe_irq_msix_default_hwe_handler,
+				      DRIVER_NAME "-default-msix", DEFAULT_MSIX);
+	if (err) {
+		drm_err(&xe->drm, "Failed to request MSI-X IRQ %d: %d\n", DEFAULT_MSIX, err);
+		xe_irq_msix_free_irq(xe, GUC2HOST_MSIX);
+		return err;
+	}
+
+	return 0;
+}
+
+static void xe_irq_msix_free(struct xe_device *xe)
+{
+	xe_irq_msix_free_irq(xe, GUC2HOST_MSIX);
+	xe_irq_msix_free_irq(xe, DEFAULT_MSIX);
+}
+
+static void xe_irq_msix_synchronize_irq(struct xe_device *xe)
+{
+	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+
+	synchronize_irq(pci_irq_vector(pdev, GUC2HOST_MSIX));
+	synchronize_irq(pci_irq_vector(pdev, DEFAULT_MSIX));
+}
diff --git a/drivers/gpu/drm/xe/xe_irq.h b/drivers/gpu/drm/xe/xe_irq.h
index 067514e13675b..24ff16111b968 100644
--- a/drivers/gpu/drm/xe/xe_irq.h
+++ b/drivers/gpu/drm/xe/xe_irq.h
@@ -6,10 +6,13 @@
 #ifndef _XE_IRQ_H_
 #define _XE_IRQ_H_
 
+#define XE_IRQ_DEFAULT_MSIX 1
+
 struct xe_device;
 struct xe_tile;
 struct xe_gt;
 
+int xe_irq_init(struct xe_device *xe);
 int xe_irq_install(struct xe_device *xe);
 void xe_irq_suspend(struct xe_device *xe);
 void xe_irq_resume(struct xe_device *xe);
-- 
2.39.5




  parent reply	other threads:[~2025-02-24 14:57 UTC|newest]

Thread overview: 149+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-24 14:33 [PATCH 6.13 000/138] 6.13.5-rc1 review Greg Kroah-Hartman
2025-02-24 14:33 ` [PATCH 6.13 001/138] Drivers: hv: vmbus: Log on missing offers if any Greg Kroah-Hartman
2025-02-24 14:33 ` [PATCH 6.13 002/138] btrfs: use btrfs_inode in extent_writepage() Greg Kroah-Hartman
2025-02-24 14:33 ` [PATCH 6.13 003/138] btrfs: fix double accounting race when btrfs_run_delalloc_range() failed Greg Kroah-Hartman
2025-02-24 14:33 ` [PATCH 6.13 004/138] btrfs: fix double accounting race when extent_writepage_io() failed Greg Kroah-Hartman
2025-02-24 14:33 ` [PATCH 6.13 005/138] drm/amd/display: update dcn351 used clock offset Greg Kroah-Hartman
2025-02-24 14:33 ` [PATCH 6.13 006/138] drm/amd/display: Correct register address in dcn35 Greg Kroah-Hartman
2025-02-24 14:33 ` [PATCH 6.13 007/138] Bluetooth: qca: Update firmware-name to support board specific nvm Greg Kroah-Hartman
2025-02-24 14:33 ` [PATCH 6.13 008/138] Bluetooth: qca: Fix poor RF performance for WCN6855 Greg Kroah-Hartman
2025-02-24 14:33 ` [PATCH 6.13 009/138] serial: sh-sci: Move runtime PM enable to sci_probe_single() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 010/138] serial: sh-sci: Clean sci_ports[0] after at earlycon exit Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 011/138] serial: sh-sci: Increment the runtime usage counter for the earlycon device Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 012/138] PCI: Export pci_intx_unmanaged() and pcim_intx() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 013/138] PCI: Remove devres from pci_intx() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 014/138] PCI: Restore original INTX_DISABLE bit by pcim_intx() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 015/138] drm/amdkfd: Move gfx12 trap handler to separate file Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 016/138] drm/amdkfd: Ensure consistent barrier state saved in gfx12 trap handler Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 017/138] tracing: Switch trace.c code over to use guard() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 018/138] tracing: Have the error of __tracing_resize_ring_buffer() passed to user Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 019/138] USB: gadget: f_midi: f_midi_complete to call queue_work Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 020/138] ASoC: rockchip: i2s-tdm: fix shift config for SND_SOC_DAIFMT_DSP_[AB] Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 021/138] ASoC: SOF: ipc4-topology: Harden loops for looking up ALH copiers Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 022/138] powerpc/code-patching: Disable KASAN report during patching via temporary mm Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 023/138] powerpc/64s: Rewrite __real_pte() and __rpte_to_hidx() as static inline Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 024/138] ALSA: hda/realtek: Fixup ALC225 depop procedure Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 025/138] powerpc/code-patching: Fix KASAN hit by not flagging text patching area as VM_ALLOC Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 026/138] ASoC: imx-audmix: remove cpu_mclk which is from cpu dai device Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 027/138] vsock/virtio: fix variables initialization during resuming Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 028/138] geneve: Fix use-after-free in geneve_find_dev() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 029/138] ALSA: hda/cirrus: Correct the full scale volume set logic Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 030/138] net/sched: cls_api: fix error handling causing NULL dereference Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 031/138] ALSA: seq: Drop UMP events when no UMP-conversion is set Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 032/138] s390/ism: add release function for struct device Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 033/138] ibmvnic: Dont reference skb after sending to VIOS Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 034/138] sockmap, vsock: For connectible sockets allow only connected Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 035/138] vsock/bpf: Warn on socket without transport Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 036/138] tcp: adjust rcvq_space after updating scaling ratio Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 037/138] net: pse-pd: Avoid setting max_uA in regulator constraints Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 038/138] net: pse-pd: Use power limit at driver side instead of current limit Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 039/138] net: pse-pd: pd692x0: Fix power limit retrieval Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 040/138] gtp: Suppress list corruption splat in gtp_net_exit_batch_rtnl() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 041/138] geneve: Suppress list corruption splat in geneve_destroy_tunnels() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 042/138] flow_dissector: Fix handling of mixed port and port-range keys Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 043/138] flow_dissector: Fix port range key handling in BPF conversion Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 044/138] net: Add non-RCU dev_getbyhwaddr() helper Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 045/138] arp: switch to dev_getbyhwaddr() in arp_req_set_public() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 046/138] net: axienet: Set mac_managed_pm Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 047/138] tcp: drop secpath at the same time as we currently drop dst Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 048/138] net: allow small head cache usage with large MAX_SKB_FRAGS values Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 049/138] rust: finish using custom FFI integer types Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 050/138] rust: map `long` to `isize` and `char` to `u8` Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 051/138] rust: cleanup unnecessary casts Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 052/138] bpf, test_run: Fix use-after-free issue in eth_skb_pkt_type() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 053/138] bpf: unify VM_WRITE vs VM_MAYWRITE use in BPF map mmaping logic Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 054/138] bpf: avoid holding freeze_mutex during mmap operation Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 055/138] bpf: Disable non stream socket for strparser Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 056/138] bpf: Fix deadlock when freeing cgroup storage Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 057/138] arm64: dts: rockchip: fix fixed-regulator renames on rk3399-gru devices Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 058/138] arm64: dts: rockchip: Fix lcdpwr_en pin for Cool Pi GenBook Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 059/138] power: supply: da9150-fg: fix potential overflow Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 060/138] power: supply: axp20x_battery: Fix fault handling for AXP717 Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 061/138] net: Add rx_skb of kfree_skb to raw_tp_null_args[] Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 062/138] bpf: Fix softlockup in arena_map_free on 64k page kernel Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 063/138] arm64: dts: rockchip: adjust SMMU interrupt type on rk3588 Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 064/138] firmware: arm_scmi: imx: Correct tx size of scmi_imx_misc_ctrl_set Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 065/138] md/raid*: Fix the set_queue_limits implementations Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 066/138] firmware: imx: IMX_SCMI_MISC_DRV should depend on ARCH_MXC Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 067/138] platform: cznic: CZNIC_PLATFORMS should depend on ARCH_MVEBU Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 068/138] nouveau/svm: fix missing folio unlock + put after make_device_exclusive_range() Greg Kroah-Hartman
2025-02-24 14:34 ` [PATCH 6.13 069/138] drm/msm: Avoid rounding up to one jiffy Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 070/138] drm/msm/dpu: skip watchdog timer programming through TOP on >= SM8450 Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 071/138] drm/msm/dpu: enable DPU_WB_INPUT_CTRL for DPU 5.x Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 072/138] drm/msm/dpu: Dont leak bits_per_component into random DSC_ENC fields Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 073/138] drm/msm/dsi/phy: Protect PHY_CMN_CLK_CFG0 updated from driver side Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 074/138] drm/msm/dsi/phy: Protect PHY_CMN_CLK_CFG1 against clock driver Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 075/138] drm/msm/dsi/phy: Do not overwite PHY_CMN_CLK_CFG1 when choosing bitclk source Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 076/138] drm/xe: Make irq enabled flag atomic Greg Kroah-Hartman
2025-02-24 14:35 ` Greg Kroah-Hartman [this message]
2025-02-24 14:35 ` [PATCH 6.13 078/138] drm/xe: Fix error handling in xe_irq_install() Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 079/138] nvmet: Fix crash when a namespace is disabled Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 080/138] nvme: tcp: Fix compilation warning with W=1 Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 081/138] nvme-tcp: fix connect failure on receiving partial ICResp PDU Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 082/138] nvme/ioctl: add missing space in err message Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 083/138] bpf: skip non exist keys in generic_map_lookup_batch Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 084/138] drm/nouveau/pmu: Fix gp10b firmware guard Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 085/138] irqchip/jcore-aic, clocksource/drivers/jcore: Fix jcore-pit interrupt request Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 086/138] sched: Compact RSEQ concurrency IDs with reduced threads and affinity Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 087/138] drm: panel: jd9365da-h3: fix reset signal polarity Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 088/138] drm/msm/dp: account for widebus and yuv420 during mode validation Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 089/138] drm/msm/dpu: Disable dither in phys encoder cleanup Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 090/138] drm/i915: Make sure all planes in use by the joiner have their crtc included Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 091/138] drm/i915/dp: Fix error handling during 128b/132b link training Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 092/138] drm/i915/ddi: Fix HDMI port width programming in DDI_BUF_CTL Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 093/138] drm/i915/gt: Use spin_lock_irqsave() in interruptible context Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 094/138] drm/i915/dsi: Use TRANS_DDI_FUNC_CTLs own port width macro Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 095/138] io_uring/rw: forbid multishot async reads Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 096/138] io_uring: prevent opcode speculation Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 097/138] gpiolib: check the return value of gpio_chip::get_direction() Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 098/138] gpiolib: protect gpio_chip with SRCU in array_info paths in multi get/set Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 099/138] tee: optee: Fix supplicant wait loop Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 100/138] drop_monitor: fix incorrect initialization order Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 101/138] mm/migrate_device: dont add folio to be freed to LRU in migrate_device_finalize() Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 102/138] arm64: dts: rockchip: change eth phy mode to rgmii-id for orangepi r1 plus lts Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 103/138] arm64: dts: rockchip: Fix broken tsadc pinctrl names for rk3588 Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 104/138] arm64: dts: rockchip: Move uart5 pin configuration to px30 ringneck SoM Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 105/138] arm64: dts: rockchip: Disable DMA for uart5 on px30-ringneck Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 106/138] gpio: vf610: add locking to gpio direction functions Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 107/138] soc: loongson: loongson2_guts: Add check for devm_kstrdup() Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 108/138] s390/boot: Fix ESSA detection Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 109/138] xfs: fix online repair probing when CONFIG_XFS_ONLINE_REPAIR=n Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 110/138] lib/iov_iter: fix import_iovec_ubuf iovec management Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 111/138] smb: client: fix chmod(2) regression with ATTR_READONLY Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 112/138] mm/zswap: fix inconsistency when zswap_store_page() fails Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 113/138] nfp: bpf: Add check for nfp_app_ctrl_msg_alloc() Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 114/138] gve: set xdp redirect target only when it is available Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 115/138] ASoC: SOF: stream-ipc: Check for cstream nullity in sof_ipc_msg_data() Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 116/138] ASoC: fsl_micfil: Enable default case in micfil_set_quality() Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 117/138] ALSA: hda: Add error check for snd_ctl_rename_id() in snd_hda_create_dig_out_ctls() Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 118/138] ALSA: hda/conexant: Add quirk for HP ProBook 450 G4 mute LED Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 119/138] ASoC: SOF: pcm: Clear the susbstream pointer to NULL on close Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 120/138] acct: perform last write from workqueue Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 121/138] acct: block access to kernel internal filesystems Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 122/138] mm,madvise,hugetlb: check for 0-length range after end address adjustment Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 123/138] mtd: spi-nor: sst: Fix SST write failure Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 124/138] mtd: rawnand: cadence: fix error code in cadence_nand_init() Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 125/138] mtd: rawnand: cadence: use dma_map_resource for sdma address Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 126/138] mtd: rawnand: cadence: fix incorrect device in dma_unmap_single Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 127/138] perf/x86/intel: Fix event constraints for LNC Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 128/138] irqchip/gic-v3: Fix rk3399 workaround when secure interrupts are enabled Greg Kroah-Hartman
2025-02-24 14:35 ` [PATCH 6.13 129/138] smb: client: Add check for next_buffer in receive_encrypted_standard() Greg Kroah-Hartman
2025-02-24 14:36 ` [PATCH 6.13 130/138] EDAC/qcom: Correct interrupt enable register configuration Greg Kroah-Hartman
2025-02-24 14:36 ` [PATCH 6.13 131/138] ftrace: Correct preemption accounting for function tracing Greg Kroah-Hartman
2025-02-24 14:36 ` [PATCH 6.13 132/138] ftrace: Fix accounting of adding subops to a manager ops Greg Kroah-Hartman
2025-02-24 14:36 ` [PATCH 6.13 133/138] ftrace: Do not add duplicate entries in subops " Greg Kroah-Hartman
2025-02-24 14:36 ` [PATCH 6.13 134/138] drm: select DRM_KMS_HELPER from DRM_GEM_SHMEM_HELPER Greg Kroah-Hartman
2025-02-24 14:36 ` [PATCH 6.13 135/138] tracing: Fix using ret variable in tracing_set_tracer() Greg Kroah-Hartman
2025-02-24 14:36 ` [PATCH 6.13 136/138] net: pse-pd: Fix deadlock in current limit functions Greg Kroah-Hartman
2025-02-24 14:36 ` [PATCH 6.13 137/138] drm/amdgpu/gfx9: manually control gfxoff for CS on RV Greg Kroah-Hartman
2025-02-24 14:36 ` [PATCH 6.13 138/138] drm/amdgpu: bump version for RV/PCO compute fix Greg Kroah-Hartman
2025-02-24 18:22 ` [PATCH 6.13 000/138] 6.13.5-rc1 review Florian Fainelli
2025-02-24 19:52 ` Mark Brown
2025-02-24 19:57   ` Bartosz Golaszewski
2025-02-25  6:46     ` Greg Kroah-Hartman
2025-02-25  7:29       ` Bartosz Golaszewski
2025-02-24 21:09 ` Pavel Machek
2025-02-24 21:19 ` Peter Schneider
2025-02-24 23:29 ` Shuah Khan
2025-02-25  0:03 ` Jon Hunter
2025-02-25  6:16 ` Ron Economos

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=20250224142607.503141803@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=ilia.levi@intel.com \
    --cc=patches@lists.linux.dev \
    --cc=piotr.piorkowski@intel.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox