> 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