[igt-dev] [PATCH i-g-t v3 1/1] lib/igt_device_scan: clear igt_devs.devs_scanned in igt_devices_free

Kamil Konieczny kamil.konieczny at linux.intel.com
Wed Oct 12 12:54:04 UTC 2022


Hi Riana,

I have few nits for this patch. First is subject, it should be
avoided to write your code in C, so better title for patch is:

lib/igt_device_scan: fix igt_devices_free

On 2022-10-11 at 11:04:18 +0530, Riana Tauro wrote:
> 1) igt_devices_scan returns with empty list if devs_scanned
- ^
No need for numbering your changes, it is better to send two
patches.

>    is true and function is called after igt_devices_free
>    clear igt_devs.devs_scanned in igt_devices_free.

This is hard to read at first, maybe some re-wording like:

igt_devices_scan returns with empty list if it is called after
anyone calls igt_devices_free. Fixed this with clearing
igt_devs.devs_scanned inside igt_devices_free.

btw you did second fix inside that function, e.g. free list
so imho it should be described:

Also while at this, fix memory leak in it.

> 
> 2) remove redudant code from igt_devices_scan and replace it with
>    igt_devices_free
> 

As Janusz pointed out, it will be better to send second patch
with refactoring so please in future split fixes and other
changes.

I will merge this patch with these fixups to subject and commit
message.

Please also read CONTRIBUTING.md from igt project and see
some other helpfull notes:

https://www.ozlabs.org/~akpm/stuff/tpp.txt

https://kernelnewbies.org/PatchPhilosophy

https://elixir.bootlin.com/linux/latest/source/Documentation/process/submitting-patches.rst

Regards,
Kamil

> v2: optimize code in igt_devices_scan (Zbigniew)
> v3: update commit message (Janusz)
> 
> Signed-off-by: Riana Tauro <riana.tauro at intel.com>
> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> ---
>  lib/igt_device_scan.c | 20 ++++----------------
>  1 file changed, 4 insertions(+), 16 deletions(-)
> 
> diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
> index eb6b45b8..8b70e375 100644
> --- a/lib/igt_device_scan.c
> +++ b/lib/igt_device_scan.c
> @@ -1027,9 +1027,11 @@ void igt_devices_free(void)
>  	}
>  
>  	igt_list_for_each_entry_safe(dev, tmp, &igt_devs.all, link) {
> +		igt_list_del(&dev->link);
>  		igt_device_free(dev);
>  		free(dev);
>  	}
> +	igt_devs.devs_scanned = false;
>  }
>  
>  /**
> @@ -1043,22 +1045,8 @@ void igt_devices_free(void)
>   */
>  void igt_devices_scan(bool force)
>  {
> -	if (force && igt_devs.devs_scanned) {
> -		struct igt_device *dev, *tmp;
> -
> -		igt_list_for_each_entry_safe(dev, tmp, &igt_devs.filtered,
> -					     link) {
> -			igt_list_del(&dev->link);
> -			free(dev);
> -		}
> -		igt_list_for_each_entry_safe(dev, tmp, &igt_devs.all, link) {
> -			igt_list_del(&dev->link);
> -			igt_device_free(dev);
> -			free(dev);
> -		}
> -
> -		igt_devs.devs_scanned = false;
> -	}
> +	if (force && igt_devs.devs_scanned)
> +		igt_devices_free();
>  
>  	if (igt_devs.devs_scanned)
>  		return;
> -- 
> 2.25.1
> 


More information about the igt-dev mailing list