If an error occurs after request_mem_region(), a corresponding
release_mem_region() should be called, as already done in the remove
function.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Christophe JAILLET <christophe.jail...@wanadoo.fr>
---
*Not* even compile tested only.
It is provided as-is

Changes in v2:
  - Apply a minimal change   [Helge Deller]

v1: 
https://lore.kernel.org/all/dc4fe3d857849ac63131c5620f1bacf1a3d7172e.1722191367.git.christophe.jail...@wanadoo.fr/
---
 drivers/video/fbdev/hpfb.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/video/fbdev/hpfb.c b/drivers/video/fbdev/hpfb.c
index 66fac8e5393e..a1144b150982 100644
--- a/drivers/video/fbdev/hpfb.c
+++ b/drivers/video/fbdev/hpfb.c
@@ -345,6 +345,7 @@ static int hpfb_dio_probe(struct dio_dev *d, const struct 
dio_device_id *ent)
        if (hpfb_init_one(paddr, vaddr)) {
                if (d->scode >= DIOII_SCBASE)
                        iounmap((void *)vaddr);
+               release_mem_region(d->resource.start, 
resource_size(&d->resource));
                return -ENOMEM;
        }
        return 0;
-- 
2.45.2

Reply via email to