On 10/24/26 1:19 AM, Dmitry Baryshkov wrote:
> msm_kms_init() returns early when it fails to allocate its workqueue or
> to create one of the pending timer workers, leaving behind whatever it
> has already set up. The kms drivers' ->destroy() callbacks still run in
> that case and reach msm_kms_destroy(), which passes a workqueue that was
> never allocated straight to destroy_workqueue().
>
> Tear down the timers and the workqueue created so far when
> msm_kms_init() fails. Until every kms driver has stopped relying on
> ->destroy() to clean up a failed init, let msm_kms_destroy() skip what
> has already been destroyed.
>
> Fixes: a409b78fcdf7 ("drm/msm: move wq handling to KMS code")
> Assisted-by: LLM
> Signed-off-by: Dmitry Baryshkov <[email protected]>
> ---
Reviewed-by: Konrad Dybcio <[email protected]>
Konrad