Re: [Cocci] [v3 05/10] mmap locking API: Checking the Coccinelle software

Julia Lawall
2020-03-28T14:00:04Z

[-- Attachment #1: Type: text/plain, Size: 1189 bytes --]

> // deleted part
> retry:
> down_read(&mm->mmap_sem);
> vma = find_vma(mm, address);
> if (!vma)
> goto bad_area;
> // deleted part
> }
> // deleted part
>
>
> Application of the software “Coccinelle 1.0.8-00029-ga549b9f0” (OCaml 4.10.0)
>
> elfring@Sonne:~/Projekte/Coccinelle/Probe> spatch --parse-c do_page_fault-excerpt3.c
> …
> NB total files = 1; perfect = 1; pbs = 0; timeout = 0; =========> 100%
> nb good = 15, nb passed = 1 =========> 6.25% passed
> nb good = 15, nb bad = 0 =========> 100.00% good or passed
>
>
> The discussed transformation approach can also be reduced for a test
> to the following script for the semantic patch language.
>
> @replacement@
> expression x;
> @@
> -down_read
> +mmap_read_lock
> (
> - &
> x
> - ->mmap_sem
> )
>
>
> elfring@Sonne:~/Projekte/Coccinelle/Probe> spatch use_mmap_locking_API_3.cocci do_page_fault-excerpt3.c
>
>
> The desired diff is not generated so far.
> How would you like to fix this situation?

The problem can be seen with the --debug option:

FLOW: can't jump to VMALLOC_FAULT_TARGET: because we can't find this label

It's not apparent with the --parse-c option because it's not a parsing
problem.

julia