Re: [PATCH 6.1 202/321] fbdev: offb: replace of_node_put with __free(device_node)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Greg, Sasha,

On Tue, Aug 27, 2024 at 04:38:30PM GMT, Greg Kroah-Hartman wrote:
> 6.1-stable review patch.  If anyone has any objections, please let me know.

We got v6.1.107 build error on ppc64le due to this commit, with:

    CC      drivers/video/fbdev/offb.o
  drivers/video/fbdev/offb.c: In function 'offb_init_palette_hacks':
  drivers/video/fbdev/offb.c:358:24: error: cleanup argument not a function
    358 |                 struct device_node *pciparent __free(device_node) = of_get_parent(dp);
        |                        ^~~~~~~~~~~
  make[4]: *** [scripts/Makefile.build:250: drivers/video/fbdev/offb.o] Error 1

Where CONFIG_FB_OF is enabled. Perhaps, due to this commit not being picked:

  9448e55d032d ("of: Add cleanup.h based auto release via __free(device_node) markings")

Thanks,

> 
> ------------------
> 
> From: Abdulrasaq Lawani <abdulrasaqolawani@xxxxxxxxx>
> 
> [ Upstream commit ce4a7ae84a58b9f33aae8d6c769b3c94f3d5ce76 ]
> 
> Replaced instance of of_node_put with __free(device_node)
> to simplify code and protect against any memory leaks
> due to future changes in the control flow.
> 
> Suggested-by: Julia Lawall <julia.lawall@xxxxxxxx>
> Signed-off-by: Abdulrasaq Lawani <abdulrasaqolawani@xxxxxxxxx>
> Signed-off-by: Helge Deller <deller@xxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> ---
>  drivers/video/fbdev/offb.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
> index 91001990e351c..6f0a9851b0924 100644
> --- a/drivers/video/fbdev/offb.c
> +++ b/drivers/video/fbdev/offb.c
> @@ -355,7 +355,7 @@ static void offb_init_palette_hacks(struct fb_info *info, struct device_node *dp
>  			par->cmap_type = cmap_gxt2000;
>  	} else if (of_node_name_prefix(dp, "vga,Display-")) {
>  		/* Look for AVIVO initialized by SLOF */
> -		struct device_node *pciparent = of_get_parent(dp);
> +		struct device_node *pciparent __free(device_node) = of_get_parent(dp);
>  		const u32 *vid, *did;
>  		vid = of_get_property(pciparent, "vendor-id", NULL);
>  		did = of_get_property(pciparent, "device-id", NULL);
> @@ -367,7 +367,6 @@ static void offb_init_palette_hacks(struct fb_info *info, struct device_node *dp
>  			if (par->cmap_adr)
>  				par->cmap_type = cmap_avivo;
>  		}
> -		of_node_put(pciparent);
>  	} else if (dp && of_device_is_compatible(dp, "qemu,std-vga")) {
>  #ifdef __BIG_ENDIAN
>  		const __be32 io_of_addr[3] = { 0x01000000, 0x0, 0x0 };
> -- 
> 2.43.0
> 
> 
> 




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux