Messages in this thread | | | Subject | Re: [PATCH 2/2] Coccinelle: extend memdup_user rule with vmemdup_user() | From | Markus Elfring <> | Date | Sun, 31 May 2020 20:43:44 +0200 |
| |
> Add vmemdup_user() transformations to the memdup_user.cocci rule. > Commit 50fd2f298bef ("new primitive: vmemdup_user()") introduced > vmemdup_user(). The function uses kvmalloc with GPF_USER flag.
Such a software evolution is also interesting.
> +@depends on patch@
> +- to = \(kvmalloc\|kvzalloc\)(size,\(GFP_KERNEL\|GFP_USER\)); > ++ to = vmemdup_user(from,size);
How do you think about to achieve the desired data processing by the application of a SmPL disjunction like the following?
to = ( - \( kmalloc \| kzalloc \) (size, \( GFP_KERNEL \| GFP_USER \)) + memdup_user(from, size) | - \( kvmalloc \| kvzalloc \) (size, \( GFP_KERNEL \| GFP_USER \)) + vmemdup_user(from, size) ) ;
Unfortunately, the Coccinelle software does not like the following SmPL code variant so far.
to = ( - \( kmalloc \| kzalloc \) + memdup_user | - \( kvmalloc \| kvzalloc \) + vmemdup_user ) ( - size, \( GFP_KERNEL \| GFP_USER \) + from, size );
Message: 25: no available token to attach to
Regards, Markus
| |