stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Ben Skeggs <bskeggs@redhat.com>,
	Lyude Paul <lyude@redhat.com>, Karol Herbst <kherbst@redhat.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Subject: [PATCH 5.14 014/151] drm/nouveau/ga102-: support ttm buffer moves via copy engine
Date: Mon, 11 Oct 2021 15:44:46 +0200	[thread overview]
Message-ID: <20211011134518.317795942@linuxfoundation.org> (raw)
In-Reply-To: <20211011134517.833565002@linuxfoundation.org>

From: Ben Skeggs <bskeggs@redhat.com>

commit 49b2dfc081826874705b27f7970631319628ee7f upstream.

We don't currently have any kind of real acceleration on Ampere GPUs,
but the TTM memcpy() fallback paths aren't really designed to handle
copies between different devices, such as on Optimus systems, and
result in a kernel OOPS.

A few options were investigated to try and fix this, but didn't work
out, and likely would have resulted in a very unpleasant experience
for users anyway.

This commit adds just enough support for setting up a single channel
connected to a copy engine, which the kernel can use to accelerate
the buffer copies between devices.  Userspace has no access to this
incomplete channel support, but it's suitable for TTM's needs.

A more complete implementation of host(fifo) for Ampere GPUs is in
the works, but the required changes are far too invasive that they
would be unsuitable to backport to fix this issue on current kernels.

v2: fix GPFIFO length in RAMFC (reported by Karol)

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Karol Herbst <kherbst@redhat.com>
Cc: <stable@vger.kernel.org> # v5.12+
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Tested-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210916220406.666454-1-skeggsb@gmail.com
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/gpu/drm/nouveau/include/nvif/class.h       |    2 
 drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h |    1 
 drivers/gpu/drm/nouveau/nouveau_bo.c               |    1 
 drivers/gpu/drm/nouveau/nouveau_chan.c             |    6 
 drivers/gpu/drm/nouveau/nouveau_drm.c              |    4 
 drivers/gpu/drm/nouveau/nv84_fence.c               |    2 
 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c  |    3 
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild    |    1 
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga102.c   |  308 +++++++++++++++++++++
 drivers/gpu/drm/nouveau/nvkm/subdev/top/ga100.c    |    7 
 10 files changed, 329 insertions(+), 6 deletions(-)
 create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga102.c

--- a/drivers/gpu/drm/nouveau/include/nvif/class.h
+++ b/drivers/gpu/drm/nouveau/include/nvif/class.h
@@ -71,6 +71,7 @@
 #define PASCAL_CHANNEL_GPFIFO_A                       /* cla06f.h */ 0x0000c06f
 #define VOLTA_CHANNEL_GPFIFO_A                        /* clc36f.h */ 0x0000c36f
 #define TURING_CHANNEL_GPFIFO_A                       /* clc36f.h */ 0x0000c46f
+#define AMPERE_CHANNEL_GPFIFO_B                       /* clc36f.h */ 0x0000c76f
 
 #define NV50_DISP                                     /* cl5070.h */ 0x00005070
 #define G82_DISP                                      /* cl5070.h */ 0x00008270
@@ -200,6 +201,7 @@
 #define PASCAL_DMA_COPY_B                                            0x0000c1b5
 #define VOLTA_DMA_COPY_A                                             0x0000c3b5
 #define TURING_DMA_COPY_A                                            0x0000c5b5
+#define AMPERE_DMA_COPY_B                                            0x0000c7b5
 
 #define FERMI_DECOMPRESS                                             0x000090b8
 
--- a/drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h
+++ b/drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h
@@ -77,4 +77,5 @@ int gp100_fifo_new(struct nvkm_device *,
 int gp10b_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
 int gv100_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
 int tu102_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
+int ga102_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
 #endif
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -844,6 +844,7 @@ nouveau_bo_move_init(struct nouveau_drm
 			    struct ttm_resource *, struct ttm_resource *);
 		int (*init)(struct nouveau_channel *, u32 handle);
 	} _methods[] = {
+		{  "COPY", 4, 0xc7b5, nve0_bo_move_copy, nve0_bo_move_init },
 		{  "COPY", 4, 0xc5b5, nve0_bo_move_copy, nve0_bo_move_init },
 		{  "GRCE", 0, 0xc5b5, nve0_bo_move_copy, nvc0_bo_move_init },
 		{  "COPY", 4, 0xc3b5, nve0_bo_move_copy, nve0_bo_move_init },
--- a/drivers/gpu/drm/nouveau/nouveau_chan.c
+++ b/drivers/gpu/drm/nouveau/nouveau_chan.c
@@ -250,7 +250,8 @@ static int
 nouveau_channel_ind(struct nouveau_drm *drm, struct nvif_device *device,
 		    u64 runlist, bool priv, struct nouveau_channel **pchan)
 {
-	static const u16 oclasses[] = { TURING_CHANNEL_GPFIFO_A,
+	static const u16 oclasses[] = { AMPERE_CHANNEL_GPFIFO_B,
+					TURING_CHANNEL_GPFIFO_A,
 					VOLTA_CHANNEL_GPFIFO_A,
 					PASCAL_CHANNEL_GPFIFO_A,
 					MAXWELL_CHANNEL_GPFIFO_A,
@@ -386,7 +387,8 @@ nouveau_channel_init(struct nouveau_chan
 
 	nvif_object_map(&chan->user, NULL, 0);
 
-	if (chan->user.oclass >= FERMI_CHANNEL_GPFIFO) {
+	if (chan->user.oclass >= FERMI_CHANNEL_GPFIFO &&
+	    chan->user.oclass < AMPERE_CHANNEL_GPFIFO_B) {
 		ret = nvif_notify_ctor(&chan->user, "abi16ChanKilled",
 				       nouveau_channel_killed,
 				       true, NV906F_V0_NTFY_KILLED,
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -345,6 +345,9 @@ nouveau_accel_gr_init(struct nouveau_drm
 	u32 arg0, arg1;
 	int ret;
 
+	if (device->info.family >= NV_DEVICE_INFO_V0_AMPERE)
+		return;
+
 	/* Allocate channel that has access to the graphics engine. */
 	if (device->info.family >= NV_DEVICE_INFO_V0_KEPLER) {
 		arg0 = nvif_fifo_runlist(device, NV_DEVICE_HOST_RUNLIST_ENGINES_GR);
@@ -469,6 +472,7 @@ nouveau_accel_init(struct nouveau_drm *d
 		case PASCAL_CHANNEL_GPFIFO_A:
 		case VOLTA_CHANNEL_GPFIFO_A:
 		case TURING_CHANNEL_GPFIFO_A:
+		case AMPERE_CHANNEL_GPFIFO_B:
 			ret = nvc0_fence_create(drm);
 			break;
 		default:
--- a/drivers/gpu/drm/nouveau/nv84_fence.c
+++ b/drivers/gpu/drm/nouveau/nv84_fence.c
@@ -204,7 +204,7 @@ nv84_fence_create(struct nouveau_drm *dr
 	priv->base.context_new = nv84_fence_context_new;
 	priv->base.context_del = nv84_fence_context_del;
 
-	priv->base.uevent = true;
+	priv->base.uevent = drm->client.device.info.family < NV_DEVICE_INFO_V0_AMPERE;
 
 	mutex_init(&priv->mutex);
 
--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
@@ -2602,6 +2602,7 @@ nv172_chipset = {
 	.top      = { 0x00000001, ga100_top_new },
 	.disp     = { 0x00000001, ga102_disp_new },
 	.dma      = { 0x00000001, gv100_dma_new },
+	.fifo     = { 0x00000001, ga102_fifo_new },
 };
 
 static const struct nvkm_device_chip
@@ -2622,6 +2623,7 @@ nv174_chipset = {
 	.top      = { 0x00000001, ga100_top_new },
 	.disp     = { 0x00000001, ga102_disp_new },
 	.dma      = { 0x00000001, gv100_dma_new },
+	.fifo     = { 0x00000001, ga102_fifo_new },
 };
 
 static const struct nvkm_device_chip
@@ -2642,6 +2644,7 @@ nv177_chipset = {
 	.top      = { 0x00000001, ga100_top_new },
 	.disp     = { 0x00000001, ga102_disp_new },
 	.dma      = { 0x00000001, gv100_dma_new },
+	.fifo     = { 0x00000001, ga102_fifo_new },
 };
 
 static int
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild
@@ -18,6 +18,7 @@ nvkm-y += nvkm/engine/fifo/gp100.o
 nvkm-y += nvkm/engine/fifo/gp10b.o
 nvkm-y += nvkm/engine/fifo/gv100.o
 nvkm-y += nvkm/engine/fifo/tu102.o
+nvkm-y += nvkm/engine/fifo/ga102.o
 
 nvkm-y += nvkm/engine/fifo/chan.o
 nvkm-y += nvkm/engine/fifo/channv50.o
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga102.c
@@ -0,0 +1,308 @@
+/*
+ * Copyright 2021 Red Hat Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+#define ga102_fifo(p) container_of((p), struct ga102_fifo, base.engine)
+#define ga102_chan(p) container_of((p), struct ga102_chan, object)
+#include <engine/fifo.h>
+#include "user.h"
+
+#include <core/memory.h>
+#include <subdev/mmu.h>
+#include <subdev/timer.h>
+#include <subdev/top.h>
+
+#include <nvif/cl0080.h>
+#include <nvif/clc36f.h>
+#include <nvif/class.h>
+
+struct ga102_fifo {
+	struct nvkm_fifo base;
+};
+
+struct ga102_chan {
+	struct nvkm_object object;
+
+	struct {
+		u32 runl;
+		u32 chan;
+	} ctrl;
+
+	struct nvkm_memory *mthd;
+	struct nvkm_memory *inst;
+	struct nvkm_memory *user;
+	struct nvkm_memory *runl;
+
+	struct nvkm_vmm *vmm;
+};
+
+static int
+ga102_chan_sclass(struct nvkm_object *object, int index, struct nvkm_oclass *oclass)
+{
+	if (index == 0) {
+		oclass->ctor = nvkm_object_new;
+		oclass->base = (struct nvkm_sclass) { -1, -1, AMPERE_DMA_COPY_B };
+		return 0;
+	}
+
+	return -EINVAL;
+}
+
+static int
+ga102_chan_map(struct nvkm_object *object, void *argv, u32 argc,
+	       enum nvkm_object_map *type, u64 *addr, u64 *size)
+{
+	struct ga102_chan *chan = ga102_chan(object);
+	struct nvkm_device *device = chan->object.engine->subdev.device;
+	u64 bar2 = nvkm_memory_bar2(chan->user);
+
+	if (bar2 == ~0ULL)
+		return -EFAULT;
+
+	*type = NVKM_OBJECT_MAP_IO;
+	*addr = device->func->resource_addr(device, 3) + bar2;
+	*size = 0x1000;
+	return 0;
+}
+
+static int
+ga102_chan_fini(struct nvkm_object *object, bool suspend)
+{
+	struct ga102_chan *chan = ga102_chan(object);
+	struct nvkm_device *device = chan->object.engine->subdev.device;
+
+	nvkm_wr32(device, chan->ctrl.chan, 0x00000003);
+
+	nvkm_wr32(device, chan->ctrl.runl + 0x098, 0x01000000);
+	nvkm_msec(device, 2000,
+		if (!(nvkm_rd32(device, chan->ctrl.runl + 0x098) & 0x00100000))
+			break;
+	);
+
+	nvkm_wr32(device, chan->ctrl.runl + 0x088, 0);
+
+	nvkm_wr32(device, chan->ctrl.chan, 0xffffffff);
+	return 0;
+}
+
+static int
+ga102_chan_init(struct nvkm_object *object)
+{
+	struct ga102_chan *chan = ga102_chan(object);
+	struct nvkm_device *device = chan->object.engine->subdev.device;
+
+	nvkm_mask(device, chan->ctrl.runl + 0x300, 0x80000000, 0x80000000);
+
+	nvkm_wr32(device, chan->ctrl.runl + 0x080, lower_32_bits(nvkm_memory_addr(chan->runl)));
+	nvkm_wr32(device, chan->ctrl.runl + 0x084, upper_32_bits(nvkm_memory_addr(chan->runl)));
+	nvkm_wr32(device, chan->ctrl.runl + 0x088, 2);
+
+	nvkm_wr32(device, chan->ctrl.chan, 0x00000002);
+	nvkm_wr32(device, chan->ctrl.runl + 0x0090, 0);
+	return 0;
+}
+
+static void *
+ga102_chan_dtor(struct nvkm_object *object)
+{
+	struct ga102_chan *chan = ga102_chan(object);
+
+	if (chan->vmm) {
+		nvkm_vmm_part(chan->vmm, chan->inst);
+		nvkm_vmm_unref(&chan->vmm);
+	}
+
+	nvkm_memory_unref(&chan->runl);
+	nvkm_memory_unref(&chan->user);
+	nvkm_memory_unref(&chan->inst);
+	nvkm_memory_unref(&chan->mthd);
+	return chan;
+}
+
+static const struct nvkm_object_func
+ga102_chan = {
+	.dtor = ga102_chan_dtor,
+	.init = ga102_chan_init,
+	.fini = ga102_chan_fini,
+	.map = ga102_chan_map,
+	.sclass = ga102_chan_sclass,
+};
+
+static int
+ga102_chan_new(struct nvkm_device *device,
+	       const struct nvkm_oclass *oclass, void *argv, u32 argc, struct nvkm_object **pobject)
+{
+	struct volta_channel_gpfifo_a_v0 *args = argv;
+	struct nvkm_top_device *tdev;
+	struct nvkm_vmm *vmm;
+	struct ga102_chan *chan;
+	int ret;
+
+	if (argc != sizeof(*args))
+		return -ENOSYS;
+
+	vmm = nvkm_uvmm_search(oclass->client, args->vmm);
+	if (IS_ERR(vmm))
+		return PTR_ERR(vmm);
+
+	if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+		return -ENOMEM;
+
+	nvkm_object_ctor(&ga102_chan, oclass, &chan->object);
+	*pobject = &chan->object;
+
+	list_for_each_entry(tdev, &device->top->device, head) {
+		if (tdev->type == NVKM_ENGINE_CE) {
+			chan->ctrl.runl = tdev->runlist;
+			break;
+		}
+	}
+
+	if (!chan->ctrl.runl)
+		return -ENODEV;
+
+	chan->ctrl.chan = nvkm_rd32(device, chan->ctrl.runl + 0x004) & 0xfffffff0;
+	args->token = nvkm_rd32(device, chan->ctrl.runl + 0x008) & 0xffff0000;
+
+	ret = nvkm_memory_new(device, NVKM_MEM_TARGET_INST, 0x1000, 0x1000, true, &chan->mthd);
+	if (ret)
+		return ret;
+
+	ret = nvkm_memory_new(device, NVKM_MEM_TARGET_INST, 0x1000, 0x1000, true, &chan->inst);
+	if (ret)
+		return ret;
+
+	nvkm_kmap(chan->inst);
+	nvkm_wo32(chan->inst, 0x010, 0x0000face);
+	nvkm_wo32(chan->inst, 0x030, 0x7ffff902);
+	nvkm_wo32(chan->inst, 0x048, lower_32_bits(args->ioffset));
+	nvkm_wo32(chan->inst, 0x04c, upper_32_bits(args->ioffset) |
+				     (order_base_2(args->ilength / 8) << 16));
+	nvkm_wo32(chan->inst, 0x084, 0x20400000);
+	nvkm_wo32(chan->inst, 0x094, 0x30000001);
+	nvkm_wo32(chan->inst, 0x0ac, 0x00020000);
+	nvkm_wo32(chan->inst, 0x0e4, 0x00000000);
+	nvkm_wo32(chan->inst, 0x0e8, 0);
+	nvkm_wo32(chan->inst, 0x0f4, 0x00001000);
+	nvkm_wo32(chan->inst, 0x0f8, 0x10003080);
+	nvkm_mo32(chan->inst, 0x218, 0x00000000, 0x00000000);
+	nvkm_wo32(chan->inst, 0x220, lower_32_bits(nvkm_memory_bar2(chan->mthd)));
+	nvkm_wo32(chan->inst, 0x224, upper_32_bits(nvkm_memory_bar2(chan->mthd)));
+	nvkm_done(chan->inst);
+
+	ret = nvkm_memory_new(device, NVKM_MEM_TARGET_INST, 0x1000, 0x1000, true, &chan->user);
+	if (ret)
+		return ret;
+
+	ret = nvkm_memory_new(device, NVKM_MEM_TARGET_INST, 0x1000, 0x1000, true, &chan->runl);
+	if (ret)
+		return ret;
+
+	nvkm_kmap(chan->runl);
+	nvkm_wo32(chan->runl, 0x00, 0x80030001);
+	nvkm_wo32(chan->runl, 0x04, 1);
+	nvkm_wo32(chan->runl, 0x08, 0);
+	nvkm_wo32(chan->runl, 0x0c, 0x00000000);
+	nvkm_wo32(chan->runl, 0x10, lower_32_bits(nvkm_memory_addr(chan->user)));
+	nvkm_wo32(chan->runl, 0x14, upper_32_bits(nvkm_memory_addr(chan->user)));
+	nvkm_wo32(chan->runl, 0x18, lower_32_bits(nvkm_memory_addr(chan->inst)));
+	nvkm_wo32(chan->runl, 0x1c, upper_32_bits(nvkm_memory_addr(chan->inst)));
+	nvkm_done(chan->runl);
+
+	ret = nvkm_vmm_join(vmm, chan->inst);
+	if (ret)
+		return ret;
+
+	chan->vmm = nvkm_vmm_ref(vmm);
+	return 0;
+}
+
+static const struct nvkm_device_oclass
+ga102_chan_oclass = {
+	.ctor = ga102_chan_new,
+};
+
+static int
+ga102_user_new(struct nvkm_device *device,
+	       const struct nvkm_oclass *oclass, void *argv, u32 argc, struct nvkm_object **pobject)
+{
+	return tu102_fifo_user_new(oclass, argv, argc, pobject);
+}
+
+static const struct nvkm_device_oclass
+ga102_user_oclass = {
+	.ctor = ga102_user_new,
+};
+
+static int
+ga102_fifo_sclass(struct nvkm_oclass *oclass, int index, const struct nvkm_device_oclass **class)
+{
+	if (index == 0) {
+		oclass->base = (struct nvkm_sclass) { -1, -1, VOLTA_USERMODE_A };
+		*class = &ga102_user_oclass;
+		return 0;
+	} else
+	if (index == 1) {
+		oclass->base = (struct nvkm_sclass) { 0, 0, AMPERE_CHANNEL_GPFIFO_B };
+		*class = &ga102_chan_oclass;
+		return 0;
+	}
+
+	return 2;
+}
+
+static int
+ga102_fifo_info(struct nvkm_engine *engine, u64 mthd, u64 *data)
+{
+	switch (mthd) {
+	case NV_DEVICE_HOST_CHANNELS: *data = 1; return 0;
+	default:
+		break;
+	}
+
+	return -ENOSYS;
+}
+
+static void *
+ga102_fifo_dtor(struct nvkm_engine *engine)
+{
+	return ga102_fifo(engine);
+}
+
+static const struct nvkm_engine_func
+ga102_fifo = {
+	.dtor = ga102_fifo_dtor,
+	.info = ga102_fifo_info,
+	.base.sclass = ga102_fifo_sclass,
+};
+
+int
+ga102_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
+	       struct nvkm_fifo **pfifo)
+{
+	struct ga102_fifo *fifo;
+
+	if (!(fifo = kzalloc(sizeof(*fifo), GFP_KERNEL)))
+		return -ENOMEM;
+
+	nvkm_engine_ctor(&ga102_fifo, device, type, inst, true, &fifo->base.engine);
+	*pfifo = &fifo->base;
+	return 0;
+}
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/top/ga100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/top/ga100.c
@@ -54,7 +54,7 @@ ga100_top_oneinit(struct nvkm_top *top)
 			info->reset   = (data & 0x0000001f);
 			break;
 		case 2:
-			info->runlist = (data & 0x0000fc00) >> 10;
+			info->runlist = (data & 0x00fffc00);
 			info->engine  = (data & 0x00000003);
 			break;
 		default:
@@ -85,9 +85,10 @@ ga100_top_oneinit(struct nvkm_top *top)
 		}
 
 		nvkm_debug(subdev, "%02x.%d (%8s): addr %06x fault %2d "
-				   "runlist %2d engine %2d reset %2d\n", type, inst,
+				   "runlist %6x engine %2d reset %2d\n", type, inst,
 			   info->type == NVKM_SUBDEV_NR ? "????????" : nvkm_subdev_type[info->type],
-			   info->addr, info->fault, info->runlist, info->engine, info->reset);
+			   info->addr, info->fault, info->runlist < 0 ? 0 : info->runlist,
+			   info->engine, info->reset);
 		info = NULL;
 	}
 



  parent reply	other threads:[~2021-10-11 13:59 UTC|newest]

Thread overview: 162+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-11 13:44 [PATCH 5.14 000/151] 5.14.12-rc1 review Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 001/151] Partially revert "usb: Kconfig: using select for USB_COMMON dependency" Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 002/151] usb: cdc-wdm: Fix check for WWAN Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 003/151] usb: chipidea: ci_hdrc_imx: Also search for phys phandle Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 004/151] usb: gadget: f_uac2: fixed EP-IN wMaxPacketSize Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 005/151] USB: cdc-acm: fix racy tty buffer accesses Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 006/151] USB: cdc-acm: fix break reporting Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 007/151] usb: typec: tcpci: dont handle vSafe0V event if its not enabled Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 008/151] usb: typec: tcpm: handle SRC_STARTUP state if cc changes Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 009/151] usb: typec: tipd: Remove dependency on "connector" child fwnode Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 010/151] drm/amd/display: Fix B0 USB-C DP Alt mode Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 011/151] drm/amd/display: USB4 bring up set correct address Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 012/151] drm/amdgpu: During s0ix dont wait to signal GFXOFF Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 013/151] drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows Greg Kroah-Hartman
2021-10-11 13:44 ` Greg Kroah-Hartman [this message]
2021-10-11 13:44 ` [PATCH 5.14 015/151] drm/amd/display: Limit display scaling to up to 4k for DCN 3.1 Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 016/151] drm/amd/display: Fix detection of 4 lane for DPALT Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 017/151] drm/amd/display: Fix DCN3 B0 DP Alt Mapping Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 018/151] drm/i915: Fix runtime pm handling in i915_gem_shrink Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 019/151] drm/i915: Extend the async flip VT-d w/a to skl/bxt Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 020/151] xen/privcmd: fix error handling in mmap-resource processing Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 021/151] mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 022/151] mmc: sdhci-of-at91: wait for calibration done before proceed Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 023/151] mmc: sdhci-of-at91: replace while loop with read_poll_timeout Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 024/151] fbdev: simplefb: fix Kconfig dependencies Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 025/151] ovl: fix missing negative dentry check in ovl_rename() Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 026/151] ovl: fix IOCB_DIRECT if underlying fs doesnt support direct IO Greg Kroah-Hartman
2021-10-11 13:44 ` [PATCH 5.14 027/151] nfsd: fix error handling of register_pernet_subsys() in init_nfsd() Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 028/151] nfsd4: Handle the NFSv4 READDIR dircount hint being zero Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 029/151] SUNRPC: fix sign error causing rpcsec_gss drops Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 030/151] xen/balloon: fix cancelled balloon action Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 031/151] ARM: dts: omap3430-sdp: Fix NAND device node Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 032/151] ARM: dts: imx6dl-yapp4: Fix lp5562 LED driver probe Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 033/151] ARM: dts: qcom: apq8064: use compatible which contains chipid Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 034/151] scsi: ufs: core: Fix task management completion Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 035/151] riscv: Flush current cpu icache before other cpus Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 036/151] bus: ti-sysc: Add break in switch statement in sysc_init_soc() Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 037/151] soc: qcom: socinfo: Fixed argument passed to platform_set_data() Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 038/151] ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 039/151] Revert "arm64: dts: qcom: sc7280: Fixup the cpufreq node" Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 040/151] ARM: at91: pm: do not panic if ram controllers are not enabled Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 041/151] iwlwifi: mvm: Fix possible NULL dereference Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 042/151] soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 043/151] ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 044/151] ARM: dts: imx: Fix USB host power regulator polarity " Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 045/151] ARM: dts: imx6qdl-pico: Fix Ethernet support Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 046/151] PCI: hv: Fix sleep while in non-sleep context when removing child devices from the bus Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 047/151] ath5k: fix building with LEDS=m Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 048/151] arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 049/151] xtensa: use CONFIG_USE_OF instead of CONFIG_OF Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 050/151] xtensa: call irqchip_init only when CONFIG_USE_OF is selected Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 051/151] iwlwifi: pcie: add configuration of a Wi-Fi adapter on Dell XPS 15 Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 052/151] netfilter: conntrack: fix boot failure with nf_conntrack.enable_hooks=1 Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 053/151] netfilter: nf_tables: add position handle in event notification Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 054/151] netfilter: nf_tables: reverse order in rule replacement expansion Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 055/151] bpf, arm: Fix register clobbering in div/mod implementation Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 056/151] soc: ti: omap-prm: Fix external abort for am335x pruss Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 057/151] bpf: Fix integer overflow in prealloc_elems_and_freelist() Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 058/151] net/mlx5e: IPSEC RX, enable checksum complete Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 059/151] net/mlx5e: Keep the value for maximum number of channels in-sync Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 060/151] net/mlx5: E-Switch, Fix double allocation of acl flow counter Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 061/151] net/mlx5: Force round second at 1PPS out start time Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 062/151] net/mlx5: Avoid generating event after PPS out in Real time mode Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 063/151] net/mlx5: Fix length of irq_index in chars Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 064/151] net/mlx5: Fix setting number of EQs of SFs Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 065/151] net/mlx5e: Fix the presented RQ index in PTP stats Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 066/151] libbpf: Fix segfault in light skeleton for objects without BTF Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 067/151] phy: mdio: fix memory leak Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 068/151] libbpf: Fix memory leak in strset Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 069/151] net_sched: fix NULL deref in fifo_set_limit() Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 070/151] net: mscc: ocelot: fix VCAP filters remaining active after being deleted Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 071/151] net: stmmac: dwmac-rk: Fix ethernet on rk3399 based devices Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 072/151] MIPS: Revert "add support for buggy MT7621S core detection" Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 073/151] netfilter: nf_tables: honor NLM_F_CREATE and NLM_F_EXCL in event notification Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 074/151] powerpc/fsl/dts: Fix phy-connection-type for fm1mac3 Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 075/151] ptp_pch: Load module automatically if ID matches Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 076/151] ARM: dts: imx: change the spi-nor tx Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 077/151] arm64: dts: imx8: " Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 078/151] arm64: dts: imx8mm-kontron-n801x-som: do not allow to switch off buck2 Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 079/151] arm64: dts: ls1028a: fix eSDHC2 node Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 080/151] dt-bindings: drm/bridge: ti-sn65dsi86: Fix reg value Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 081/151] ARM: imx6: disable the GIC CPU interface before calling stby-poweroff sequence Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 082/151] drm/i915/audio: Use BIOS provided value for RKL HDA link Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 083/151] drm/i915/jsl: Add W/A 1409054076 for JSL Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 084/151] drm/i915/tc: Fix TypeC port init/resume time sanitization Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 085/151] drm/i915/bdb: Fix version check Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 086/151] netfs: Fix READ/WRITE confusion when calling iov_iter_xarray() Greg Kroah-Hartman
2021-10-11 13:45 ` [PATCH 5.14 087/151] afs: Fix afs_launder_page() to set correct start file position Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 088/151] net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size() Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 089/151] net: bridge: fix under estimation " Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 090/151] net/sched: sch_taprio: properly cancel timer from taprio_destroy() Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 091/151] net: sfp: Fix typo in state machine debug string Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 092/151] net: pcs: xpcs: fix incorrect CL37 AN sequence Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 093/151] netlink: annotate data races around nlk->bound Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 094/151] ARM: defconfig: gemini: Restore framebuffer Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 095/151] drm/amdkfd: fix a potential ttm->sg memory leak Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 096/151] drm/amdgpu: handle the case of pci_channel_io_frozen only in amdgpu_pci_resume Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 097/151] perf jevents: Free the sys_event_tables list after processing entries Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 098/151] bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893 Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 099/151] drm/sun4i: dw-hdmi: Fix HDMI PHY clock setup Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 100/151] drm/nouveau/fifo/ga102: initialise chid on return from channel creation Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 101/151] drm/panel: abt-y030xx067a: yellow tint fix Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 102/151] video: fbdev: gbefb: Only instantiate device when built for IP32 Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 103/151] drm/nouveau: avoid a use-after-free when BO init fails Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 104/151] drm/nouveau/kms/nv50-: fix file release memory leak Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 105/151] drm/nouveau/debugfs: " Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 106/151] net: pcs: xpcs: fix incorrect steps on disable EEE Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 107/151] net: stmmac: trigger PCS EEE to turn off on link down Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 108/151] gve: Correct available tx qpl check Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 109/151] gve: Avoid freeing NULL pointer Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 110/151] gve: Properly handle errors in gve_assign_qpl Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 111/151] rtnetlink: fix if_nlmsg_stats_size() under estimation Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 112/151] gve: fix gve_get_stats() Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 113/151] gve: report 64bit tx_bytes counter from gve_handle_report_stats() Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 114/151] i40e: fix endless loop under rtnl Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 115/151] i40e: Fix freeing of uninitialized misc IRQ vector Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 116/151] iavf: fix double unlock of crit_lock Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 117/151] net: prefer socket bound to interface when not in VRF Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 118/151] powerpc/iommu: Report the correct most efficient DMA mask for PCI devices Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 119/151] i2c: acpi: fix resource leak in reconfiguration device addition Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 120/151] i2c: mediatek: Add OFFSET_EXT_CONF setting back Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 121/151] riscv: explicitly use symbol offsets for VDSO Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 122/151] RISC-V: Fix VDSO build for !MMU Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 123/151] riscv/vdso: Refactor asm/vdso.h Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 124/151] riscv/vdso: Move vdso data page up front Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 125/151] riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for write killable Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 126/151] bpf, s390: Fix potential memory leak about jit_data Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 127/151] i2c: mlxcpld: Fix criteria for frequency setting Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 128/151] i2c: mlxcpld: Modify register setting for 400KHz frequency Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 129/151] RISC-V: Include clone3() on rv32 Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 130/151] scsi: iscsi: Fix iscsi_task use after free Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 131/151] objtool: Remove reloc symbol type checks in get_alt_entry() Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 132/151] objtool: Make .altinstructions section entry size consistent Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 133/151] powerpc/bpf: Fix BPF_MOD when imm == 1 Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 134/151] powerpc/bpf: Fix BPF_SUB when imm == 0x80000000 Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 135/151] powerpc/bpf ppc32: Fix ALU32 BPF_ARSH operation Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 136/151] powerpc/bpf ppc32: Fix JMP32_JSET_K Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 137/151] powerpc/bpf ppc32: Do not emit zero extend instruction for 64-bit BPF_END Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 138/151] powerpc/bpf ppc32: Fix BPF_SUB when imm == 0x80000000 Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 139/151] powerpc/64s: fix program check interrupt emergency stack path Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 140/151] powerpc/traps: do not enable irqs in _exception Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 141/151] powerpc/64s: Fix unrecoverable MCE calling async handler from NMI Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 142/151] powerpc/32s: Fix kuap_kernel_restore() Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 143/151] pseries/eeh: Fix the kdump kernel crash during eeh_pseries_init Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 144/151] x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 145/151] x86/Kconfig: Correct reference to MWINCHIP3D Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 146/151] x86/sev: Return an error on a returned non-zero SW_EXITINFO1[31:0] Greg Kroah-Hartman
2021-10-11 13:46 ` [PATCH 5.14 147/151] x86/fpu: Restore the masking out of reserved MXCSR bits Greg Kroah-Hartman
2021-10-11 13:47 ` [PATCH 5.14 148/151] x86/entry: Correct reference to intended CONFIG_64_BIT Greg Kroah-Hartman
2021-10-11 13:47 ` [PATCH 5.14 149/151] x86/entry: Clear X86_FEATURE_SMAP when CONFIG_X86_SMAP=n Greg Kroah-Hartman
2021-10-11 13:47 ` [PATCH 5.14 150/151] x86/hpet: Use another crystalball to evaluate HPET usability Greg Kroah-Hartman
2021-10-11 13:47 ` [PATCH 5.14 151/151] dsa: tag_dsa: Fix mask for trunked packets Greg Kroah-Hartman
2021-10-11 16:25 ` [PATCH 5.14 000/151] 5.14.12-rc1 review Florian Fainelli
2021-10-11 16:43 ` Fox Chen
2021-10-11 18:35 ` Naresh Kamboju
2021-10-11 19:11   ` Naresh Kamboju
2021-10-11 19:30   ` Arnd Bergmann
2021-10-11 21:34     ` Naresh Kamboju
2021-10-12  1:17 ` Shuah Khan
2021-10-12  2:02 ` Guenter Roeck
2021-10-12  7:36 ` Jon Hunter
2021-10-12 10:27 ` Naresh Kamboju

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=20211011134518.317795942@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=bskeggs@redhat.com \
    --cc=kherbst@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lyude@redhat.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --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;
as well as URLs for NNTP newsgroup(s).