All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 2/2] Coccinelle: extend memdup_user rule with vmemdup_user()
@ 2020-05-31 18:43 ` Markus Elfring
  0 siblings, 0 replies; 9+ messages in thread
From: Markus Elfring @ 2020-05-31 18:43 UTC (permalink / raw)
  To: Denis Efremov, Gilles Muller, Julia Lawall, Masahiro Yamada,
	Michal Marek, Nicolas Palix, Coccinelle
  Cc: kernel-janitors, linux-kernel, Joe Perches

> 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

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] Coccinelle: extend memdup_user rule with vmemdup_user()
@ 2020-06-01  6:24 ` Markus Elfring
  0 siblings, 0 replies; 9+ messages in thread
From: Markus Elfring @ 2020-06-01  6:24 UTC (permalink / raw)
  To: Denis Efremov, Gilles Muller, Julia Lawall, Masahiro Yamada,
	Michal Marek, Nicolas Palix, Coccinelle
  Cc: kernel-janitors, linux-kernel, Joe Perches

> +@rv depends on !patch@
> +expression from,to,size;
> +position p;
> +statement S1,S2;
> +@@
> +
> +*  to = \(kvmalloc@p\|kvzalloc@p\)(size,\(GFP_KERNEL\|GFP_USER\));
> +   if (to==NULL || ...) S1
> +   if (copy_from_user(to, from, size) != 0)
> +   S2

How does the SmPL asterisk functionality fit to the operation
modes “org” and “report”?


> +@script:python depends on org && r@

I find the modification of SmPL rule dependencies also interesting.
Are these specifications really required?

Regards,
Markus

^ permalink raw reply	[flat|nested] 9+ messages in thread
* [PATCH 0/2] Update memdup_user.cocci
@ 2020-05-30 20:53 Denis Efremov
  2020-05-30 20:53 ` [PATCH 2/2] Coccinelle: extend memdup_user rule with vmemdup_user() Denis Efremov
  0 siblings, 1 reply; 9+ messages in thread
From: Denis Efremov @ 2020-05-30 20:53 UTC (permalink / raw)
  To: Julia Lawall, Joe Perches; +Cc: Denis Efremov, cocci, linux-kernel

Add GFP_USER to the allocation flags and handle vmemdup_user().

Denis Efremov (2):
  Coccinelle: extend memdup_user transformation with GFP_USER
  Coccinelle: extend memdup_user rule with vmemdup_user()

 scripts/coccinelle/api/memdup_user.cocci | 53 ++++++++++++++++++++++--
 1 file changed, 49 insertions(+), 4 deletions(-)

-- 
2.26.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-06-01  6:24 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-31 18:43 [PATCH 2/2] Coccinelle: extend memdup_user rule with vmemdup_user() Markus Elfring
2020-05-31 18:43 ` [Cocci] " Markus Elfring
2020-05-31 18:43 ` Markus Elfring
2020-06-01  5:47 ` [2/2] Coccinelle: memdup_user: Extending data processing for special tokens Markus Elfring
2020-06-01  5:47   ` [Cocci] " Markus Elfring
2020-06-01  5:47   ` Markus Elfring
  -- strict thread matches above, loose matches on Subject: below --
2020-06-01  6:24 [PATCH 2/2] Coccinelle: extend memdup_user rule with vmemdup_user() Markus Elfring
2020-06-01  6:24 ` Markus Elfring
2020-05-30 20:53 [PATCH 0/2] Update memdup_user.cocci Denis Efremov
2020-05-30 20:53 ` [PATCH 2/2] Coccinelle: extend memdup_user rule with vmemdup_user() Denis Efremov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.