Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] drm/hisilicon/hibmc: WARN_ON in hibmc_unload() on hibmc_load() error --
commit 289d0414bb2d6ac0dd51c3f3424d35a2428b1b8c Author: Maxime Ripard <[email protected]> drm/hisilicon/hibmc: Switch to drm_mode_config_create_initial_state This commit replaces drm_mode_config_reset() with drm_mode_config_create_initial_state() in hibmc_load() to initialize the KMS state at probe time. > diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c > b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c > index 602930964e930..236840cb5b3ad 100644 > --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c > +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c > @@ -411,8 +411,10 @@ static int hibmc_load(struct drm_device *dev) > goto err; > } > > - /* reset all the states of crtc/plane/encoder/connector */ > - drm_mode_config_reset(dev); > + /* Create all the states of crtc/plane/encoder/connector */ > + ret = drm_mode_config_create_initial_state(dev); > + if (ret) > + goto err; [Severity: Medium] If drm_mode_config_create_initial_state() fails while allocating the plane or CRTC state in hibmc_load(), jumping to err calls hibmc_unload() while priv->crtc.state is still NULL: drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c:hibmc_load() { ... err: hibmc_unload(dev); drm_err(dev, "failed to initialize drm driver: %d\n", ret); return ret; } drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c:hibmc_unload() { drm_atomic_helper_shutdown(dev); } Since hibmc_kms_init() has already registered priv->crtc on dev->mode_config.crtc_list, won't the call chain hibmc_unload() -> drm_atomic_helper_shutdown() -> drm_atomic_helper_disable_all() -> drm_atomic_get_crtc_state() -> drm_atomic_helper_crtc_duplicate_state() trigger WARN_ON(!crtc->state) in drm_atomic_helper_crtc_duplicate_state()? (The earlier error jumps in hibmc_load() for hibmc_kms_init(), drm_vblank_init(), and hibmc_msi_init() also jump to err and call hibmc_unload() before drm_mode_config_create_initial_state() has populated crtc->state.) -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=14
