[v2,1/2] video: fbdev: uvesafb: Fixes an error handling path in uvesafb_probe()

Message ID 0eba6acb70fa1270d8cf798afd11ce342aa7e8e1.1670671944.git.christophe.jaillet@wanadoo.fr
State New
Headers
Series [v2,1/2] video: fbdev: uvesafb: Fixes an error handling path in uvesafb_probe() |

Commit Message

Christophe JAILLET Dec. 10, 2022, 11:35 a.m. UTC
  If an error occurs after a successful uvesafb_init_mtrr() call, it must be
undone by a corresponding arch_phys_wc_del() call, as already done in the
remove function.

This has been added in the remove function in commit 63e28a7a5ffc
("uvesafb: Clean up MTRR code")

Fixes: 8bdb3a2d7df4 ("uvesafb: the driver core")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
Unsure about the Fixes tag, maybe it is 63e28a7a5ffc

Change in v2:
  - add arch_phys_wc_del() at the right place in the error handling path

v1 (a long time ago!):
https://lore.kernel.org/all/dd2a4806d3a570ab84947806f38a494454fd0245.1622994310.git.christophe.jaillet@wanadoo.fr/
---
 drivers/video/fbdev/uvesafb.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Helge Deller Dec. 10, 2022, 4:05 p.m. UTC | #1
On 12/10/22 12:35, Christophe JAILLET wrote:
> If an error occurs after a successful uvesafb_init_mtrr() call, it must be
> undone by a corresponding arch_phys_wc_del() call, as already done in the
> remove function.
>
> This has been added in the remove function in commit 63e28a7a5ffc
> ("uvesafb: Clean up MTRR code")
>
> Fixes: 8bdb3a2d7df4 ("uvesafb: the driver core")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Both patches applied.
Thanks!
Helge


> ---
> Unsure about the Fixes tag, maybe it is 63e28a7a5ffc
>
> Change in v2:
>    - add arch_phys_wc_del() at the right place in the error handling path
>
> v1 (a long time ago!):
> https://lore.kernel.org/all/dd2a4806d3a570ab84947806f38a494454fd0245.1622994310.git.christophe.jaillet@wanadoo.fr/
> ---
>   drivers/video/fbdev/uvesafb.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
> index 00d789b6c0fa..0e3cabbec4b4 100644
> --- a/drivers/video/fbdev/uvesafb.c
> +++ b/drivers/video/fbdev/uvesafb.c
> @@ -1758,6 +1758,7 @@ static int uvesafb_probe(struct platform_device *dev)
>   out_unmap:
>   	iounmap(info->screen_base);
>   out_mem:
> +	arch_phys_wc_del(par->mtrr_handle);
>   	release_mem_region(info->fix.smem_start, info->fix.smem_len);
>   out_reg:
>   	release_region(0x3c0, 32);
  

Patch

diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
index 00d789b6c0fa..0e3cabbec4b4 100644
--- a/drivers/video/fbdev/uvesafb.c
+++ b/drivers/video/fbdev/uvesafb.c
@@ -1758,6 +1758,7 @@  static int uvesafb_probe(struct platform_device *dev)
 out_unmap:
 	iounmap(info->screen_base);
 out_mem:
+	arch_phys_wc_del(par->mtrr_handle);
 	release_mem_region(info->fix.smem_start, info->fix.smem_len);
 out_reg:
 	release_region(0x3c0, 32);