Re: [PATCH 2/3] drm/nouveau: cancel the DP IRQ work before freeing the connector
From: lyude
Date: Thu Aug 20 2026 - 14:46:48 EST
On Sat, 2026-08-15 at 22:42 +0200, Marek Czernohous wrote:
> But the wider question the bot is asking is fair, and my cover letter
> answered it too confidently. It says "there is no fourth patch here"
> on the strength of drm->hpd_work being drained in
> nouveau_display_fini(). Having looked again after the bot's mail: that
> drain runs at nouveau_display.c:600 under "if (!runtime &&
> !drm->headless)", and disp->fini() drains it a second time under the
> same condition (dispnv50/disp.c:2686, dispnv04/disp.c:72, which I had
> not spotted when I wrote the cover). Both of those are before
> drm_mode_config_cleanup() reaches nouveau_connector_destroy(). So a
> late irq_work really can re-arm hpd_work after every drain, and nothing
> drains it again. Whether that is reachable in practice I do not know:
> nvif_event_block() on conn->irq has already run by then, so it needs
> work that was queued before the block and has not run yet.
Actually - after rereading this again, nah - this isn't an issue. So
long as the connector IRQs are blocked at that point, it should be
good. MST connectors aren't, but that's also fine - they use the IRQ
notify thingies of the non-MST connectors, so they're indirectly
blocked by that.