> 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