diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2022-06-01 20:47:33 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2022-11-09 10:44:49 +1000 |
commit | 520db0405e9daed6b96b69149673491d80849fe7 (patch) | |
tree | 7714cc9359cb4c18ba71f6bed4c5465b9ea40ee3 | |
parent | acff941535639a1d244ad9a20dbf3266d39915ed (diff) | |
download | linux-stable-520db0405e9daed6b96b69149673491d80849fe7.tar.gz linux-stable-520db0405e9daed6b96b69149673491d80849fe7.tar.bz2 linux-stable-520db0405e9daed6b96b69149673491d80849fe7.zip |
drm/nouveau/fifo: kill channel on a selection of PBDMA errors
A bunch of these can be handled in such a way that the channel can
continue, however, any of these are a pretty decent sign something
has gone horribly wrong, and the safest option is to disable the
channel.
This is a bit of a hack, we will want to handle these individually
and dump relevant debug info for each at some point.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c index 4c3338c4d47a..ff28b5a4c36f 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c @@ -30,7 +30,6 @@ #include "gf100.h" #include "changf100.h" -#include <core/client.h> #include <core/gpuobj.h> #include <subdev/bar.h> #include <subdev/fault.h> @@ -138,8 +137,9 @@ gf100_runq_intr(struct nvkm_runq *runq, struct nvkm_runl *null) nvkm_error(subdev, "PBDMA%d: %08x [%s] ch %d [%010llx %s] " "subc %d mthd %04x data %08x\n", runq->id, show, msg, chid, chan ? chan->inst->addr : 0, - chan ? chan->object.client->name : "unknown", - subc, mthd, data); + chan ? chan->name : "unknown", subc, mthd, data); + if ((stat & 0xc67fe000) && chan) + nvkm_chan_error(chan, true); nvkm_chan_put(&chan, flags); } |