Re: [PATCH] coccinelle: api: add kvfree script
From: Markus Elfring
Date: Sat Jun 06 2020 - 03:30:57 EST
> Check that alloc and free types of functions match each other.
Further software development challenges are interesting also for such an use case.
> +/// Check that kvmalloc'ed memory is freed by kfree functions,
> +/// vmalloc'ed by vfree functions and kvmalloc'ed by kvfree
> +/// functions.
* How do you think about to offer a wording suggestion for subjects of
generated patches?
* Will the presented case distinction trigger further improvements for
the desired matching?
* Would you like to generalise the safe handling of allocations
and corresponding release of system resources?
> +// Confidence: High
I suggest to reconsider this information once more.
> +virtual patch
> +virtual report
> +virtual org
> +virtual context
+virtual patch, report, org, context
Is such a SmPL code variant more succinct?
> +@choice@
* Can it be that this SmPL rule is not relevant for all operation modes?
* Will additional dependencies matter?
> + E = \(kmalloc@kok\|kzalloc@kok\|krealloc@kok\|kcalloc@kok\|kmalloc_node@kok\|kzalloc_node@kok\|kmalloc_array@kok\|kmalloc_array_node@kok\|kcalloc_node@kok\)(...)
I would prefer an other coding style here.
* Items for such SmPL disjunctions can be specified also on multiple lines.
* The semantic patch language supports further means to handle function name lists
in more convenient ways.
Would you like to work with customised constraints?
> +msg = "WARNING: kmalloc is used to allocate this memory at line %s" % (k[0].line)
> +coccilib.report.print_report(p[0], msg)
* I propose once more omit the extra variable âmsgâ at similar places.
The desired message object can be directly passed as a function parameter.
* I find the diagnostic text insufficient.
* Can the corresponding function category be dynamically determined?
Are you looking for opportunities to avoid unwanted code duplication?
Regards,
Markus