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>
Subject: [PATCH 4.4 17/58] drm/nouveau/fifo/gf100-: protect channel preempt with subdev mutex
Date: Fri,  6 Jan 2017 22:44:02 +0100	[thread overview]
Message-ID: <20170106213907.175911498@linuxfoundation.org> (raw)
In-Reply-To: <20170106213906.290654840@linuxfoundation.org>

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

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

From: Ben Skeggs <bskeggs@redhat.com>

commit b27add13f500469127afdf011dbcc9c649e16e54 upstream.

This avoids an issue that occurs when we're attempting to preempt multiple
channels simultaneously.  HW seems to ignore preempt requests while it's
still processing a previous one, which, well, makes sense.

Fixes random "fifo: SCHED_ERROR 0d []" + GPCCS page faults during parallel
piglit runs on (at least) GM107.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c |    9 ++++++---
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c |    8 +++++---
 2 files changed, 11 insertions(+), 6 deletions(-)

--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c
@@ -59,6 +59,7 @@ gf100_fifo_gpfifo_engine_fini(struct nvk
 	struct nvkm_gpuobj *inst = chan->base.inst;
 	int ret = 0;
 
+	mutex_lock(&subdev->mutex);
 	nvkm_wr32(device, 0x002634, chan->base.chid);
 	if (nvkm_msec(device, 2000,
 		if (nvkm_rd32(device, 0x002634) == chan->base.chid)
@@ -66,10 +67,12 @@ gf100_fifo_gpfifo_engine_fini(struct nvk
 	) < 0) {
 		nvkm_error(subdev, "channel %d [%s] kick timeout\n",
 			   chan->base.chid, chan->base.object.client->name);
-		ret = -EBUSY;
-		if (suspend)
-			return ret;
+		ret = -ETIMEDOUT;
 	}
+	mutex_unlock(&subdev->mutex);
+
+	if (ret && suspend)
+		return ret;
 
 	if (offset) {
 		nvkm_kmap(inst);
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c
@@ -39,7 +39,9 @@ gk104_fifo_gpfifo_kick(struct gk104_fifo
 	struct nvkm_subdev *subdev = &fifo->base.engine.subdev;
 	struct nvkm_device *device = subdev->device;
 	struct nvkm_client *client = chan->base.object.client;
+	int ret = 0;
 
+	mutex_lock(&subdev->mutex);
 	nvkm_wr32(device, 0x002634, chan->base.chid);
 	if (nvkm_msec(device, 2000,
 		if (!(nvkm_rd32(device, 0x002634) & 0x00100000))
@@ -47,10 +49,10 @@ gk104_fifo_gpfifo_kick(struct gk104_fifo
 	) < 0) {
 		nvkm_error(subdev, "channel %d [%s] kick timeout\n",
 			   chan->base.chid, client->name);
-		return -EBUSY;
+		ret = -ETIMEDOUT;
 	}
-
-	return 0;
+	mutex_unlock(&subdev->mutex);
+	return ret;
 }
 
 static u32



  parent reply	other threads:[~2017-01-06 22:01 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20170106220400epcas3p1efbe4d9a81e843002529bd6fc2826260@epcas3p1.samsung.com>
2017-01-06 21:43 ` [PATCH 4.4 00/58] 4.4.41-stable review Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 01/58] ssb: Fix error routine when fallback SPROM fails Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 02/58] rtlwifi: Fix enter/exit power_save Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 03/58] cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 04/58] ath9k: Really fix LED polarity for some Mini PCI AR9220 MB92 cards Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 05/58] mmc: sdhci: Fix recovery from tuning timeout Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 06/58] regulator: stw481x-vmmc: fix ages old enable error Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 07/58] timekeeping_Force_unsigned_clocksource_to_nanoseconds_conversion Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 08/58] clk: bcm2835: Avoid overwriting the div info when disabling a pll_div clk Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 09/58] thermal: hwmon: Properly report critical temperature in sysfs Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 10/58] staging: comedi: ni_mio_common: fix M Series ni_ai_insn_read() data mask Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 11/58] staging: comedi: ni_mio_common: fix E series ni_ai_insn_read() data Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 12/58] ACPI / video: Add force_native quirk for Dell XPS 17 L702X Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 13/58] ACPI / video: Add force_native quirk for HP Pavilion dv6 Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 14/58] drm/nouveau/kms: lvds panel strap moved again on maxwell Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 15/58] drm/nouveau/bios: require checksum to match for fast acpi shadow method Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 16/58] drm/nouveau/ltc: protect clearing of comptags with mutex Greg Kroah-Hartman
2017-01-06 21:44   ` Greg Kroah-Hartman [this message]
2017-01-06 21:44   ` [PATCH 4.4 18/58] drm/nouveau/i2c/gk110b,gm10x: use the correct implementation Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 21/58] drm/radeon: add additional pci revision to dpm workaround Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 22/58] drm/gma500: Add compat ioctl Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 23/58] drivers/gpu/drm/ast: Fix infinite loop if read fails Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 24/58] mei: request async autosuspend at the end of enumeration Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 25/58] block: protect iterate_bdevs() against concurrent close Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 26/58] vt: fix Scroll Lock LED trigger name Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 27/58] scsi: megaraid_sas: For SRIOV enabled firmware, ensure VF driver waits for 30secs before reset Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 28/58] scsi: megaraid_sas: Do not set MPI2_TYPE_CUDA for JBOD FP path for FW which does not support JBOD sequence map Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 29/58] scsi: zfcp: fix use-after-"free" in FC ingress path after TMF Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 30/58] scsi: zfcp: do not trace pure benign residual HBA responses at default level Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 31/58] scsi: zfcp: fix rport unblock race with LUN recovery Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 32/58] scsi: avoid a permanent stop of the scsi devices request queue Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 33/58] ARC: mm: arc700: Dont assume 2 colours for aliasing VIPT dcache Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 34/58] firmware: fix usermode helper fallback loading Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 35/58] s390/vmlogrdr: fix IUCV buffer allocation Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 36/58] sc16is7xx: Drop bogus use of IRQF_ONESHOT Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 37/58] md/raid5: limit request size according to implementation limits Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 38/58] KVM: PPC: Book3S HV: Save/restore XER in checkpointed register state Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 39/58] KVM: PPC: Book3S HV: Dont lose hardware R/C bit updates in H_PROTECT Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 40/58] kvm: nVMX: Allow L1 to intercept software exceptions (#BP and #OF) Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 41/58] ftrace/x86_32: Set ftrace_stub to weak to prevent gcc from using short jumps to it Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 42/58] platform/x86: asus-nb-wmi.c: Add X45U quirk Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 43/58] fgraph: Handle a case where a tracer ignores set_graph_notrace Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 44/58] IB/mad: Fix an array index check Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 45/58] IPoIB: Avoid reading an uninitialized member variable Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 46/58] IB/multicast: Check ib_find_pkey() return value Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 47/58] IB/cma: Fix a race condition in iboe_addr_get_sgid() Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 48/58] [media] media: solo6x10: fix lockup by avoiding delayed register write Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 49/58] Input: drv260x - fix input devices parent assignment Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 50/58] PCI: Check for PME in targeted sleep state Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 51/58] libceph: verify authorize reply on connect Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 52/58] nfs_write_end(): fix handling of short copies Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 53/58] powerpc/ps3: Fix system hang with GCC 5 builds Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 54/58] powerpc: Convert cmp to cmpd in idle enter sequence Greg Kroah-Hartman
2017-01-09  9:55     ` Vaidyanathan Srinivasan
2017-01-06 21:44   ` [PATCH 4.4 55/58] target/user: Fix use-after-free of tcmu_cmds if they are expired Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 56/58] kconfig/nconf: Fix hang when editing symbol with a long prompt Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 57/58] sg_write()/bsg_write() is not fit to be called under KERNEL_DS Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 58/58] net: mvpp2: fix dma unmapping of TX buffers for fragments Greg Kroah-Hartman
2017-01-07  2:05   ` [PATCH 4.4 00/58] 4.4.41-stable review Shuah Khan
2017-01-07 15: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=20170106213907.175911498@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=bskeggs@redhat.com \
    --cc=linux-kernel@vger.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;
as well as URLs for NNTP newsgroup(s).