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; 6+ 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] 6+ messages in thread

* Re: [PATCH 2/2] Coccinelle: extend memdup_user rule with vmemdup_user()
@ 2020-05-31 18:43 ` Markus Elfring
  0 siblings, 0 replies; 6+ 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: Joe Perches, kernel-janitors, linux-kernel

> 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] 6+ messages in thread

* Re: [Cocci] [PATCH 2/2] Coccinelle: extend memdup_user rule with vmemdup_user()
@ 2020-05-31 18:43 ` Markus Elfring
  0 siblings, 0 replies; 6+ 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: Joe Perches, kernel-janitors, linux-kernel

> 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
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

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

* Re: [2/2] Coccinelle: memdup_user: Extending data processing for special tokens
  2020-05-31 18:43 ` Markus Elfring
  (?)
@ 2020-06-01  5:47   ` Markus Elfring
  -1 siblings, 0 replies; 6+ messages in thread
From: Markus Elfring @ 2020-06-01  5:47 UTC (permalink / raw)
  To: Denis Efremov, Gilles Muller, Julia Lawall, Masahiro Yamada,
	Michal Marek, Nicolas Palix, Coccinelle
  Cc: kernel-janitors, linux-kernel, Joe Perches

> 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

I have adjusted a bit of OCaml source code.
Thus I could see where such information was provided.
https://github.com/coccinelle/coccinelle/blob/7cf2c23e64066d5249a64a316cc5347831f7a63f/parsing_cocci/insert_plus.ml#L1041

…
  | (((infop,count,pcode) as p) :: ps) as all ->
      (* …
	 modifications.  for the moment, we thus give an error, asking the
	 user to rewrite the semantic patch. *)
      if greater_than_end infop infom1 || is_minus m1 || !empty_isos
…


Will the referenced comment get any more software development attention?

Regards,
Markus

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

* Re: [2/2] Coccinelle: memdup_user: Extending data processing for special tokens
@ 2020-06-01  5:47   ` Markus Elfring
  0 siblings, 0 replies; 6+ messages in thread
From: Markus Elfring @ 2020-06-01  5:47 UTC (permalink / raw)
  To: Denis Efremov, Gilles Muller, Julia Lawall, Masahiro Yamada,
	Michal Marek, Nicolas Palix, Coccinelle
  Cc: Joe Perches, kernel-janitors, linux-kernel

> 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

I have adjusted a bit of OCaml source code.
Thus I could see where such information was provided.
https://github.com/coccinelle/coccinelle/blob/7cf2c23e64066d5249a64a316cc5347831f7a63f/parsing_cocci/insert_plus.ml#L1041

…
  | (((infop,count,pcode) as p) :: ps) as all ->
      (* …
	 modifications.  for the moment, we thus give an error, asking the
	 user to rewrite the semantic patch. *)
      if greater_than_end infop infom1 || is_minus m1 || !empty_isos
…


Will the referenced comment get any more software development attention?

Regards,
Markus

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

* Re: [Cocci] [2/2] Coccinelle: memdup_user: Extending data processing for special tokens
@ 2020-06-01  5:47   ` Markus Elfring
  0 siblings, 0 replies; 6+ messages in thread
From: Markus Elfring @ 2020-06-01  5:47 UTC (permalink / raw)
  To: Denis Efremov, Gilles Muller, Julia Lawall, Masahiro Yamada,
	Michal Marek, Nicolas Palix, Coccinelle
  Cc: Joe Perches, kernel-janitors, linux-kernel

> 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

I have adjusted a bit of OCaml source code.
Thus I could see where such information was provided.
https://github.com/coccinelle/coccinelle/blob/7cf2c23e64066d5249a64a316cc5347831f7a63f/parsing_cocci/insert_plus.ml#L1041

…
  | (((infop,count,pcode) as p) :: ps) as all ->
      (* …
	 modifications.  for the moment, we thus give an error, asking the
	 user to rewrite the semantic patch. *)
      if greater_than_end infop infom1 || is_minus m1 || !empty_isos
…


Will the referenced comment get any more software development attention?

Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

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

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

Thread overview: 6+ 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

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.