diff mbox series

[v2] fbdev/hpfb: Fix an error handling path in hpfb_dio_probe()

Message ID ec4a9fbbff184e40d50e1f12e6df161ff5119f21.1722544445.git.christophe.jaillet@wanadoo.fr
State New
Headers show
Series [v2] fbdev/hpfb: Fix an error handling path in hpfb_dio_probe() | expand

Commit Message

Christophe JAILLET Aug. 1, 2024, 8:34 p.m. UTC
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.jaillet@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.jaillet@wanadoo.fr/
---
 drivers/video/fbdev/hpfb.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Helge Deller Aug. 1, 2024, 8:48 p.m. UTC | #1
On 8/1/24 22:34, Christophe JAILLET wrote:
> 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.jaillet@wanadoo.fr>

I've applied it as-is (with the Fixes tag) to the fbdev git tree.
Thank you, Christophe!

Helge

> ---
> *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.jaillet@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;
diff mbox series

Patch

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;