On Sat, 19 Sep 2026, Hui Peng <[email protected]> wrote:
> In drivers/gpu/drm/udl/ (udl_drv.c, udl_edid.c), check that
> usb_control_msg() returns the full 2-byte response in
> udl_read_edid_block() before copying read_buff[1], and clean up
> allocated URBs if udl_Driver initialization fails.

One change per patch please.

>
> Fixes: 5320918b9a87 ("drm/udl: initial UDL driver (v4)")
> Assisted-by: LLM
> Signed-off-by: Hui Peng <[email protected]>
> ---
> diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c
> index 1922988625eb..239a6983f49f 100644
> --- a/drivers/gpu/drm/udl/udl_drv.c
> +++ b/drivers/gpu/drm/udl/udl_drv.c
> @@ -97,8 +97,10 @@ static int udl_usb_probe(struct usb_interface *interface,
>               return PTR_ERR(udl);
>  
>       r = drm_dev_register(&udl->drm, 0);
> -     if (r)
> +     if (r) {
> +             udl_drop_usb(udl);
>               return r;
> +     }
>  
>       DRM_INFO("Initialized udl on minor %d\n", udl->drm.primary->index);
>  
> diff --git a/drivers/gpu/drm/udl/udl_edid.c b/drivers/gpu/drm/udl/udl_edid.c
> index af4cff2a7c51..b7c462436573 100644
> --- a/drivers/gpu/drm/udl/udl_edid.c
> +++ b/drivers/gpu/drm/udl/udl_edid.c
> @@ -36,7 +36,7 @@ static int udl_read_edid_block(void *data, u8 *buf, 
> unsigned int block, size_t l
>               if (ret < 0) {
>                       drm_err(dev, "Read EDID byte %zu failed err %x\n", i, 
> ret);
>                       goto err_drm_dev_exit;
> -             } else if (ret < 1) {
> +             } else if (ret != 2) {
>                       ret = -EIO;
>                       drm_err(dev, "Read EDID byte %zu failed\n", i);
>                       goto err_drm_dev_exit;

-- 
Jani Nikula, Intel

Reply via email to