Message ID | 1609153481-9909-1-git-send-email-tiantao6@hisilicon.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/qxl: Use managed mode-config init | expand |
On Mon, Dec 28, 2020 at 07:04:41PM +0800, Tian Tao wrote: > Using drmm_mode_config_init() sets up managed release of modesetting > resources. > > Signed-off-by: Tian Tao <tiantao6@hisilicon.com> This changes the order of the cleanup actions, so most likely will break really badly. You can only move a cleanup action safely over to drmm_ if it is the last thing (at the time the patch is applied) done before cleanup is finished. There's a _lot_ of code that's run after qxl_modeset_fini. -Daniel > --- > drivers/gpu/drm/qxl/qxl_display.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c > index 012bce0..38d6b59 100644 > --- a/drivers/gpu/drm/qxl/qxl_display.c > +++ b/drivers/gpu/drm/qxl/qxl_display.c > @@ -1195,7 +1195,9 @@ int qxl_modeset_init(struct qxl_device *qdev) > int i; > int ret; > > - drm_mode_config_init(&qdev->ddev); > + ret = drmm_mode_config_init(&qdev->ddev); > + if (ret) > + return ret; > > ret = qxl_create_monitors_object(qdev); > if (ret) > @@ -1228,5 +1230,4 @@ int qxl_modeset_init(struct qxl_device *qdev) > void qxl_modeset_fini(struct qxl_device *qdev) > { > qxl_destroy_monitors_object(qdev); > - drm_mode_config_cleanup(&qdev->ddev); > } > -- > 2.7.4 >
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c index 012bce0..38d6b59 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -1195,7 +1195,9 @@ int qxl_modeset_init(struct qxl_device *qdev) int i; int ret; - drm_mode_config_init(&qdev->ddev); + ret = drmm_mode_config_init(&qdev->ddev); + if (ret) + return ret; ret = qxl_create_monitors_object(qdev); if (ret) @@ -1228,5 +1230,4 @@ int qxl_modeset_init(struct qxl_device *qdev) void qxl_modeset_fini(struct qxl_device *qdev) { qxl_destroy_monitors_object(qdev); - drm_mode_config_cleanup(&qdev->ddev); }
Using drmm_mode_config_init() sets up managed release of modesetting resources. Signed-off-by: Tian Tao <tiantao6@hisilicon.com> --- drivers/gpu/drm/qxl/qxl_display.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)