2018-07-05 21:51:53

by Prakruthi Deepak Heragu

[permalink] [raw]
Subject: [PATCH] checkpatch: forbid filesystem accesses from within the kernel

As use of sys_open/close/read/write system calls from within the kernel
code is inappropriate, an error is triggered if used.

Signed-off-by: Prakruthi Deepak Heragu <[email protected]>
---
scripts/checkpatch.pl | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index a9c0550..e6e7e09 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -5372,6 +5372,13 @@ sub process {
"Avoid line continuations in quoted strings\n" . $herecurr);
}

+# sys_open/read/write/close are not allowed in the kernel
+ if ($line =~ /\b(sys_(?:open|read|write|close))\b/) {
+ ERROR("FILE_OPS",
+ "$1 is inappropriate in kernel code.\n" .
+ $herecurr);
+ }
+
# warn about #if 0
if ($line =~ /^.\s*\#\s*if\s+0\b/) {
CHK("REDUNDANT_CODE",
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project



2018-07-05 21:59:10

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] checkpatch: forbid filesystem accesses from within the kernel

On Thu, 2018-07-05 at 14:47 -0700, Prakruthi Deepak Heragu wrote:
> As use of sys_open/close/read/write system calls from within the kernel
> code is inappropriate, an error is triggered if used.
[]
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -5372,6 +5372,13 @@ sub process {
> "Avoid line continuations in quoted strings\n" . $herecurr);
> }
>
> +# sys_open/read/write/close are not allowed in the kernel
> + if ($line =~ /\b(sys_(?:open|read|write|close))\b/) {
> + ERROR("FILE_OPS",
> + "$1 is inappropriate in kernel code.\n" .
> + $herecurr);
> + }
> +

Is this really useful?

As far as I can tell, this would only give
false positives on all existing kernel code.