[igt-dev] [PATCH i-g-t v2 08/11] lib/kunit: Provide all results cleanup helper
Kamil Konieczny
kamil.konieczny at linux.intel.com
Mon Oct 9 17:33:40 UTC 2023
Hi Janusz,
On 2023-10-09 at 14:27:59 +0200, Janusz Krzysztofik wrote:
> Planned changes require a couple of loops around kunit_result_free().
> Since we already have such loop, move it into a helper in preparation for
> future uses.
>
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> lib/igt_kmod.c | 20 ++++++++++++++------
> 1 file changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 387efbb59f..fed0855c84 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -885,13 +885,25 @@ static void kunit_result_free(struct igt_ktap_result **r,
> *r = NULL;
> }
>
> +static void kunit_results_free(struct igt_list_head *results,
> + char **suite_name, char **case_name)
> +{
> + struct igt_ktap_result *r, *rn;
> +
> + igt_list_for_each_entry_safe(r, rn, results, link)
> + kunit_result_free(&r, suite_name, case_name);
> +
> + free(*case_name);
> + free(*suite_name);
> +}
> +
> static void
> __igt_kunit(struct igt_ktest *tst, const char *name, const char *opts)
> {
> struct modprobe_data modprobe = { pthread_self(), tst->kmod, opts, 0, };
> char *suite_name = NULL, *case_name = NULL;
> - struct igt_ktap_result *r, *rn;
> struct igt_ktap_results *ktap;
> + struct igt_ktap_result *r;
> pthread_mutexattr_t attr;
> IGT_LIST_HEAD(results);
> unsigned long taints;
> @@ -997,11 +1009,7 @@ __igt_kunit(struct igt_ktest *tst, const char *name, const char *opts)
>
> } while (ret == -EINPROGRESS);
>
> - igt_list_for_each_entry_safe(r, rn, &results, link)
> - kunit_result_free(&r, &suite_name, &case_name);
> -
> - free(case_name);
> - free(suite_name);
> + kunit_results_free(&results, &suite_name, &case_name);
>
> switch (pthread_mutex_lock(&modprobe.lock)) {
> case 0:
> --
> 2.42.0
>
More information about the igt-dev
mailing list