drm/nouveau: remove double WFI when destroying channels
authorBen Skeggs <bskeggs@redhat.com>
Wed, 1 Jun 2022 10:46:05 +0000 (20:46 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 13 Jul 2022 03:57:06 +0000 (13:57 +1000)
This is particularly irritating when the channel has hung.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/nouveau/nouveau_abi16.c

index 2278b92..5bee655 100644 (file)
@@ -126,9 +126,8 @@ nouveau_abi16_chan_fini(struct nouveau_abi16 *abi16,
 {
        struct nouveau_abi16_ntfy *ntfy, *temp;
 
-       /* wait for all activity to stop before releasing notify object, which
-        * may be still in use */
-       if (chan->chan && chan->ntfy)
+       /* wait for all activity to stop before cleaning up */
+       if (chan->chan)
                nouveau_channel_idle(chan->chan);
 
        /* cleanup notifier state */
@@ -148,7 +147,6 @@ nouveau_abi16_chan_fini(struct nouveau_abi16 *abi16,
        /* destroy channel object, all children will be killed too */
        if (chan->chan) {
                nvif_object_dtor(&chan->ce);
-               nouveau_channel_idle(chan->chan);
                nouveau_channel_del(&chan->chan);
        }