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; > } > }