[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YzL/9mlOHemaey2n@yadro.com>
Date: Tue, 27 Sep 2022 16:51:50 +0300
From: Konstantin Shelekhin <k.shelekhin@...ro.com>
To: Miguel Ojeda <ojeda@...nel.org>
CC: Linus Torvalds <torvalds@...ux-foundation.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
<rust-for-linux@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-fsdevel@...r.kernel.org>, <patches@...ts.linux.dev>,
Jarkko Sakkinen <jarkko@...nel.org>,
Alex Gaynor <alex.gaynor@...il.com>,
Wedson Almeida Filho <wedsonaf@...gle.com>,
Gary Guo <gary@...yguo.net>, Matthew Bakhtiari <dev@...k.me>,
Boqun Feng <boqun.feng@...il.com>,
Björn Roy Baron <bjorn3_gh@...tonmail.com>
Subject: Re: [PATCH v10 08/27] rust: adapt `alloc` crate to the kernel
On Tue, Sep 27, 2022 at 03:14:39PM +0200, Miguel Ojeda wrote:
[...]
> + /// Tries to append an element to the back of a collection.
> + ///
> + /// # Examples
> + ///
> + /// ```
> + /// let mut vec = vec![1, 2];
> + /// vec.try_push(3).unwrap();
> + /// assert_eq!(vec, [1, 2, 3]);
> + /// ```
> + #[inline]
> + #[stable(feature = "kernel", since = "1.0.0")]
> + pub fn try_push(&mut self, value: T) -> Result<(), TryReserveError> {
> + if self.len == self.buf.capacity() {
> + self.buf.try_reserve_for_push(self.len)?;
> + }
> + unsafe {
> + let end = self.as_mut_ptr().add(self.len);
> + ptr::write(end, value);
> + self.len += 1;
> + }
> + Ok(())
> + }
[...]
Not being able to pass GFP flags here kinda limits the scope of Rust in
kernel. I think that it must be supported in the final version that gets
in.
Powered by blists - more mailing lists