]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
nouveau/gsp: allocate enough space for all channel ids.
authorDave Airlie <airlied@redhat.com>
Tue, 21 Nov 2023 20:11:09 +0000 (06:11 +1000)
committerDanilo Krummrich <dakr@redhat.com>
Tue, 21 Nov 2023 21:28:01 +0000 (22:28 +0100)
This probably isn't the ideal fix, but we ended up using chids
sparsely, and lots of things rely on indexing into the full range,
so just allocate the full range up front.

The GSP code fixes 8 channels into a userd page, but we end up using
a single userd page per channel so end up sparsely using the range.

Fixes a few crashes seen with multiple channels.

Link: https://gitlab.freedesktop.org/drm/nouveau/-/issues/277
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Danilo Krummrich <dakr@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231121201109.2988516-1-airlied@gmail.com
drivers/gpu/drm/nouveau/nvkm/engine/fifo/r535.c

index 3adbb05ff587ba93ca6c618679aba7af9261ae29..d088e636edc31c407582bdbe8ab0ee28653956bf 100644 (file)
@@ -539,7 +539,7 @@ r535_fifo_runl_ctor(struct nvkm_fifo *fifo)
        struct nvkm_runl *runl;
        struct nvkm_engn *engn;
        u32 cgids = 2048;
-       u32 chids = 2048 / CHID_PER_USERD;
+       u32 chids = 2048;
        int ret;
        NV2080_CTRL_FIFO_GET_DEVICE_INFO_TABLE_PARAMS *ctrl;