Re: [PATCH] video: hpfb: Unregister DIO driver on init failure

Helge Deller <[email protected]>
Newsgroups org.kernel.vger.linux-fbdev,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 6/22/26 08:49, Haoxiang Li wrote:
> hpfb_init() registers the DIO driver via dio_register_driver().
> If a later error occurs, the function returns directly without
> unregistering the DIO driver. Unregister the DIO driver before
> returning from these error paths.
> 
> Signed-off-by: Haoxiang Li <[email protected]>
> ---
>   drivers/video/fbdev/hpfb.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)

Thanks! Patch applied to fbdev git tree.

By the way... doesn't the request_mem_region() below needs a corresponding
release_mem_region() in the failure path?

Helge

> 
> diff --git a/drivers/video/fbdev/hpfb.c b/drivers/video/fbdev/hpfb.c
> index a1144b150982..1405712e5b4f 100644
> --- a/drivers/video/fbdev/hpfb.c
> +++ b/drivers/video/fbdev/hpfb.c
> @@ -407,10 +407,13 @@ static int __init hpfb_init(void)
>   	err = copy_from_kernel_nofault(&i, (unsigned char *)INTFBVADDR + DIO_IDOFF, 1);
>   
>   	if (!err && (i == DIO_ID_FBUFFER) && topcat_sid_ok(sid = DIO_SECID(INTFBVADDR))) {
> -		if (!request_mem_region(INTFBPADDR, DIO_DEVSIZE, "Internal Topcat"))
> +		if (!request_mem_region(INTFBPADDR, DIO_DEVSIZE, "Internal Topcat")) {
> +			dio_unregister_driver(&hpfb_driver);
>   			return -EBUSY;
> +		}
>   		printk(KERN_INFO "Internal Topcat found (secondary id %02x)\n", sid);
>   		if (hpfb_init_one(INTFBPADDR, INTFBVADDR)) {
> +			dio_unregister_driver(&hpfb_driver);
>   			return -ENOMEM;
>   		}
>   	}
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.