All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gary Guo <gary@garyguo.net>
To: Alice Ryhl <aliceryhl@google.com>
Cc: "Miguel Ojeda" <ojeda@kernel.org>,
	"Wedson Almeida Filho" <wedsonaf@gmail.com>,
	"Alex Gaynor" <alex.gaynor@gmail.com>,
	"Boqun Feng" <boqun.feng@gmail.com>,
	"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
	"Benno Lossin" <benno.lossin@proton.me>,
	rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
	patches@lists.linux.dev
Subject: Re: [PATCH v2] rust: error: add missing error codes
Date: Mon, 8 May 2023 12:47:01 +0100	[thread overview]
Message-ID: <20230508124701.443ba331.gary@garyguo.net> (raw)
In-Reply-To: <20230504064854.774820-1-aliceryhl@google.com>

On Thu,  4 May 2023 06:48:54 +0000
Alice Ryhl <aliceryhl@google.com> wrote:

> This adds the error codes from `include/linux/errno.h` to the list of
> Rust error constants. These errors were not included originally, because
> they are not supposed to be visible from userspace. However, they are
> still a perfectly valid error to use when writing a kernel driver. For
> example, you might want to return ERESTARTSYS if you receive a signal
> during a call to `schedule`.

`include/linux/errno.h` also includes all of `asm/errno.h`,
which defines EDEADLK - EHWPOISON, which is not included in this patch.
I feel like these error codes should be added first?

> 
> This patch inserts an annotation to skip rustfmt on the list of error
> codes. Without it, three of the error codes are split over several
> lines, which looks terribly inconsistent.
> 
> Signed-off-by: Alice Ryhl <aliceryhl@google.com>
> ---
>  rust/kernel/error.rs | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/rust/kernel/error.rs b/rust/kernel/error.rs
> index 5f4114b30b94..de4fa8640f29 100644
> --- a/rust/kernel/error.rs
> +++ b/rust/kernel/error.rs
> @@ -14,6 +14,7 @@ use core::num::TryFromIntError;
>  use core::str::Utf8Error;
>  
>  /// Contains the C-compatible error codes.
> +#[rustfmt::skip]
>  pub mod code {
>      macro_rules! declare_err {
>          ($err:tt $(,)? $($doc:expr),+) => {
> @@ -58,6 +59,25 @@ pub mod code {
>      declare_err!(EPIPE, "Broken pipe.");
>      declare_err!(EDOM, "Math argument out of domain of func.");
>      declare_err!(ERANGE, "Math result not representable.");
> +    declare_err!(ERESTARTSYS, "Restart the system call.");
> +    declare_err!(ERESTARTNOINTR, "System call was interrupted by a signal and will be restarted.");
> +    declare_err!(ERESTARTNOHAND, "Restart if no handler.");
> +    declare_err!(ENOIOCTLCMD, "No ioctl command.");
> +    declare_err!(ERESTART_RESTARTBLOCK, "Restart by calling sys_restart_syscall.");
> +    declare_err!(EPROBE_DEFER, "Driver requests probe retry.");
> +    declare_err!(EOPENSTALE, "Open found a stale dentry.");
> +    declare_err!(ENOPARAM, "Parameter not supported.");
> +    declare_err!(EBADHANDLE, "Illegal NFS file handle.");
> +    declare_err!(ENOTSYNC, "Update synchronization mismatch.");
> +    declare_err!(EBADCOOKIE, "Cookie is stale.");
> +    declare_err!(ENOTSUPP, "Operation is not supported.");
> +    declare_err!(ETOOSMALL, "Buffer or request is too small.");
> +    declare_err!(ESERVERFAULT, "An untranslatable error occurred.");
> +    declare_err!(EBADTYPE, "Type not supported by server.");
> +    declare_err!(EJUKEBOX, "Request initiated, but will not complete before timeout.");
> +    declare_err!(EIOCBQUEUED, "iocb queued, will get completion event.");
> +    declare_err!(ERECALLCONFLICT, "Conflict with recalled state.");
> +    declare_err!(ENOGRACE, "NFS file lock reclaim refused.");
>  }
>  
>  /// Generic integer kernel error.
> 
> base-commit: ea76e08f4d901a450619831a255e9e0a4c0ed162


  parent reply	other threads:[~2023-05-08 11:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-04  6:48 [PATCH v2] rust: error: add missing error codes Alice Ryhl
2023-05-04 12:40 ` Martin Rodriguez Reboredo
2023-05-08 11:47 ` Gary Guo [this message]
2023-05-09  8:07   ` Alice Ryhl
2023-05-09  8:46     ` Greg KH
2023-05-09 11:10       ` Miguel Ojeda
2023-05-15 18:07         ` Andreas Hindborg
2023-05-31 17:11 ` Miguel Ojeda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230508124701.443ba331.gary@garyguo.net \
    --to=gary@garyguo.net \
    --cc=alex.gaynor@gmail.com \
    --cc=aliceryhl@google.com \
    --cc=benno.lossin@proton.me \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ojeda@kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=wedsonaf@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.