Den 16.02.2021 14.36, skrev Oliver Neukum: > Am Freitag, den 12.02.2021, 18:46 +0100 schrieb Noralf Trønnes: >> +static void gud_connector_early_unregister(struct drm_connector *connector) >> +{ >> + struct gud_connector *gconn = to_gud_connector(connector); >> + >> + backlight_device_unregister(gconn->backlight); >> + cancel_work_sync(&gconn->backlight_work); >> +} > > Hi, > > this looks like you are creating a race condition where the queued work > may operate on an already unregistered backlight. > backlight_device_unregister() sets bd->ops = NULL. This means that userspace can't update brightness anymore, and thus won't call into this driver. After that it should be safe to flush/cancel the workqueue. Unless I'm missing something here. Noralf.