[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <02c75f13-ec79-f4c0-f28a-8a354ea1f6f0@web.de>
Date: Sun, 31 May 2020 20:43:44 +0200
From: Markus Elfring <Markus.Elfring@....de>
To: Denis Efremov <efremov@...ux.com>,
Gilles Muller <Gilles.Muller@...6.fr>,
Julia Lawall <Julia.Lawall@...6.fr>,
Masahiro Yamada <yamada.masahiro@...ionext.com>,
Michal Marek <michal.lkml@...kovi.net>,
Nicolas Palix <nicolas.palix@...g.fr>,
Coccinelle <cocci@...teme.lip6.fr>
Cc: kernel-janitors@...r.kernel.org, linux-kernel@...r.kernel.org,
Joe Perches <joe@...ches.com>
Subject: Re: [PATCH 2/2] Coccinelle: extend memdup_user rule with
vmemdup_user()
> 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.
> +@...ends 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
Powered by blists - more mailing lists