Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] The return value of drm_connector_init() is ignored, leading to potential use of a partially initialized connector object on failure.
--
--- Patch [1]: [PATCH] drivers: drm: remove drm_simple_encoder_init then inline with drm_encoder_init ---
commit fb41dbd1014b2770b1e9b17f944e26382c1aa83c
Author: Park Junsung <[email protected]>
drivers: drm: remove drm_simple_encoder_init then inline with drm_encoder_init
This commit removes the unnecessary intermediate layer drm_simple_encoder_init
and inlines it directly into drm_encoder_init. It also introduces a static
drm_encoder_funcs struct to handle encoder cleanup.
> diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
> index a026bd35ef485..52d9bb46ea959 100644
> --- a/drivers/gpu/drm/qxl/qxl_display.c
> +++ b/drivers/gpu/drm/qxl/qxl_display.c
[ ... ]
> @@ -1169,10 +1173,11 @@ static int qdev_output_init(struct drm_device *dev, int num_output)
> drm_connector_init(dev, &qxl_output->base,
> &qxl_connector_funcs, DRM_MODE_CONNECTOR_VIRTUAL);
>
[Severity: High]
This is a pre-existing issue, but is it safe to ignore the return value of
drm_connector_init() here in qdev_output_init()?
If drm_connector_init() fails, for example due to an IDA allocation failure
under memory pressure, and the subsequent call to drm_encoder_init() succeeds,
could this result in using a partially initialized connector object? It seems
this might lead to undefined behavior or a kernel panic when the connector is
later accessed by the DRM core.
> - ret = drm_simple_encoder_init(dev, &qxl_output->enc,
> - DRM_MODE_ENCODER_VIRTUAL);
> + ret = drm_encoder_init(dev, &qxl_output->enc,
> + &drm_encoder_funcs_cleanup,
> + DRM_MODE_ENCODER_VIRTUAL, NULL);
> if (ret) {
> - drm_err(dev, "drm_simple_encoder_init() failed, error %d\n",
> + drm_err(dev, "drm_encoder_init() failed, error %d\n",
> ret);
> goto err_drm_connector_cleanup;
> }
--
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.