From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Benno Lossin <benno.lossin@proton.me>,
Gary Guo <gary@garyguo.net>, Danilo Krummrich <dakr@kernel.org>,
Miguel Ojeda <ojeda@kernel.org>
Subject: [PATCH 6.12 041/269] rust: alloc: implement kernel `Box`
Date: Mon, 10 Mar 2025 18:03:14 +0100 [thread overview]
Message-ID: <20250310170459.358709113@linuxfoundation.org> (raw)
In-Reply-To: <20250310170457.700086763@linuxfoundation.org>
6.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Danilo Krummrich <dakr@kernel.org>
commit c8cfa8d0c0b10be216861fe904ea68978b1dcc97 upstream.
`Box` provides the simplest way to allocate memory for a generic type
with one of the kernel's allocators, e.g. `Kmalloc`, `Vmalloc` or
`KVmalloc`.
In contrast to Rust's `Box` type, the kernel `Box` type considers the
kernel's GFP flags for all appropriate functions, always reports
allocation failures through `Result<_, AllocError>` and remains
independent from unstable features.
Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Link: https://lore.kernel.org/r/20241004154149.93856-12-dakr@kernel.org
[ Added backticks, fixed typos. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
rust/kernel/alloc.rs | 6
rust/kernel/alloc/kbox.rs | 456 ++++++++++++++++++++++++++++++++++++++++++++++
rust/kernel/prelude.rs | 2
3 files changed, 463 insertions(+), 1 deletion(-)
create mode 100644 rust/kernel/alloc/kbox.rs
--- a/rust/kernel/alloc.rs
+++ b/rust/kernel/alloc.rs
@@ -5,6 +5,7 @@
#[cfg(not(any(test, testlib)))]
pub mod allocator;
pub mod box_ext;
+pub mod kbox;
pub mod vec_ext;
#[cfg(any(test, testlib))]
@@ -13,6 +14,11 @@ pub mod allocator_test;
#[cfg(any(test, testlib))]
pub use self::allocator_test as allocator;
+pub use self::kbox::Box;
+pub use self::kbox::KBox;
+pub use self::kbox::KVBox;
+pub use self::kbox::VBox;
+
/// Indicates an allocation error.
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
pub struct AllocError;
--- /dev/null
+++ b/rust/kernel/alloc/kbox.rs
@@ -0,0 +1,456 @@
+// SPDX-License-Identifier: GPL-2.0
+
+//! Implementation of [`Box`].
+
+#[allow(unused_imports)] // Used in doc comments.
+use super::allocator::{KVmalloc, Kmalloc, Vmalloc};
+use super::{AllocError, Allocator, Flags};
+use core::alloc::Layout;
+use core::fmt;
+use core::marker::PhantomData;
+use core::mem::ManuallyDrop;
+use core::mem::MaybeUninit;
+use core::ops::{Deref, DerefMut};
+use core::pin::Pin;
+use core::ptr::NonNull;
+use core::result::Result;
+
+use crate::init::{InPlaceInit, InPlaceWrite, Init, PinInit};
+use crate::types::ForeignOwnable;
+
+/// The kernel's [`Box`] type -- a heap allocation for a single value of type `T`.
+///
+/// This is the kernel's version of the Rust stdlib's `Box`. There are several differences,
+/// for example no `noalias` attribute is emitted and partially moving out of a `Box` is not
+/// supported. There are also several API differences, e.g. `Box` always requires an [`Allocator`]
+/// implementation to be passed as generic, page [`Flags`] when allocating memory and all functions
+/// that may allocate memory are fallible.
+///
+/// `Box` works with any of the kernel's allocators, e.g. [`Kmalloc`], [`Vmalloc`] or [`KVmalloc`].
+/// There are aliases for `Box` with these allocators ([`KBox`], [`VBox`], [`KVBox`]).
+///
+/// When dropping a [`Box`], the value is also dropped and the heap memory is automatically freed.
+///
+/// # Examples
+///
+/// ```
+/// let b = KBox::<u64>::new(24_u64, GFP_KERNEL)?;
+///
+/// assert_eq!(*b, 24_u64);
+/// # Ok::<(), Error>(())
+/// ```
+///
+/// ```
+/// # use kernel::bindings;
+/// const SIZE: usize = bindings::KMALLOC_MAX_SIZE as usize + 1;
+/// struct Huge([u8; SIZE]);
+///
+/// assert!(KBox::<Huge>::new_uninit(GFP_KERNEL | __GFP_NOWARN).is_err());
+/// ```
+///
+/// ```
+/// # use kernel::bindings;
+/// const SIZE: usize = bindings::KMALLOC_MAX_SIZE as usize + 1;
+/// struct Huge([u8; SIZE]);
+///
+/// assert!(KVBox::<Huge>::new_uninit(GFP_KERNEL).is_ok());
+/// ```
+///
+/// # Invariants
+///
+/// `self.0` is always properly aligned and either points to memory allocated with `A` or, for
+/// zero-sized types, is a dangling, well aligned pointer.
+#[repr(transparent)]
+pub struct Box<T: ?Sized, A: Allocator>(NonNull<T>, PhantomData<A>);
+
+/// Type alias for [`Box`] with a [`Kmalloc`] allocator.
+///
+/// # Examples
+///
+/// ```
+/// let b = KBox::new(24_u64, GFP_KERNEL)?;
+///
+/// assert_eq!(*b, 24_u64);
+/// # Ok::<(), Error>(())
+/// ```
+pub type KBox<T> = Box<T, super::allocator::Kmalloc>;
+
+/// Type alias for [`Box`] with a [`Vmalloc`] allocator.
+///
+/// # Examples
+///
+/// ```
+/// let b = VBox::new(24_u64, GFP_KERNEL)?;
+///
+/// assert_eq!(*b, 24_u64);
+/// # Ok::<(), Error>(())
+/// ```
+pub type VBox<T> = Box<T, super::allocator::Vmalloc>;
+
+/// Type alias for [`Box`] with a [`KVmalloc`] allocator.
+///
+/// # Examples
+///
+/// ```
+/// let b = KVBox::new(24_u64, GFP_KERNEL)?;
+///
+/// assert_eq!(*b, 24_u64);
+/// # Ok::<(), Error>(())
+/// ```
+pub type KVBox<T> = Box<T, super::allocator::KVmalloc>;
+
+// SAFETY: `Box` is `Send` if `T` is `Send` because the `Box` owns a `T`.
+unsafe impl<T, A> Send for Box<T, A>
+where
+ T: Send + ?Sized,
+ A: Allocator,
+{
+}
+
+// SAFETY: `Box` is `Sync` if `T` is `Sync` because the `Box` owns a `T`.
+unsafe impl<T, A> Sync for Box<T, A>
+where
+ T: Sync + ?Sized,
+ A: Allocator,
+{
+}
+
+impl<T, A> Box<T, A>
+where
+ T: ?Sized,
+ A: Allocator,
+{
+ /// Creates a new `Box<T, A>` from a raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// For non-ZSTs, `raw` must point at an allocation allocated with `A` that is sufficiently
+ /// aligned for and holds a valid `T`. The caller passes ownership of the allocation to the
+ /// `Box`.
+ ///
+ /// For ZSTs, `raw` must be a dangling, well aligned pointer.
+ #[inline]
+ pub const unsafe fn from_raw(raw: *mut T) -> Self {
+ // INVARIANT: Validity of `raw` is guaranteed by the safety preconditions of this function.
+ // SAFETY: By the safety preconditions of this function, `raw` is not a NULL pointer.
+ Self(unsafe { NonNull::new_unchecked(raw) }, PhantomData)
+ }
+
+ /// Consumes the `Box<T, A>` and returns a raw pointer.
+ ///
+ /// This will not run the destructor of `T` and for non-ZSTs the allocation will stay alive
+ /// indefinitely. Use [`Box::from_raw`] to recover the [`Box`], drop the value and free the
+ /// allocation, if any.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// let x = KBox::new(24, GFP_KERNEL)?;
+ /// let ptr = KBox::into_raw(x);
+ /// // SAFETY: `ptr` comes from a previous call to `KBox::into_raw`.
+ /// let x = unsafe { KBox::from_raw(ptr) };
+ ///
+ /// assert_eq!(*x, 24);
+ /// # Ok::<(), Error>(())
+ /// ```
+ #[inline]
+ pub fn into_raw(b: Self) -> *mut T {
+ ManuallyDrop::new(b).0.as_ptr()
+ }
+
+ /// Consumes and leaks the `Box<T, A>` and returns a mutable reference.
+ ///
+ /// See [`Box::into_raw`] for more details.
+ #[inline]
+ pub fn leak<'a>(b: Self) -> &'a mut T {
+ // SAFETY: `Box::into_raw` always returns a properly aligned and dereferenceable pointer
+ // which points to an initialized instance of `T`.
+ unsafe { &mut *Box::into_raw(b) }
+ }
+}
+
+impl<T, A> Box<MaybeUninit<T>, A>
+where
+ A: Allocator,
+{
+ /// Converts a `Box<MaybeUninit<T>, A>` to a `Box<T, A>`.
+ ///
+ /// It is undefined behavior to call this function while the value inside of `b` is not yet
+ /// fully initialized.
+ ///
+ /// # Safety
+ ///
+ /// Callers must ensure that the value inside of `b` is in an initialized state.
+ pub unsafe fn assume_init(self) -> Box<T, A> {
+ let raw = Self::into_raw(self);
+
+ // SAFETY: `raw` comes from a previous call to `Box::into_raw`. By the safety requirements
+ // of this function, the value inside the `Box` is in an initialized state. Hence, it is
+ // safe to reconstruct the `Box` as `Box<T, A>`.
+ unsafe { Box::from_raw(raw.cast()) }
+ }
+
+ /// Writes the value and converts to `Box<T, A>`.
+ pub fn write(mut self, value: T) -> Box<T, A> {
+ (*self).write(value);
+
+ // SAFETY: We've just initialized `b`'s value.
+ unsafe { self.assume_init() }
+ }
+}
+
+impl<T, A> Box<T, A>
+where
+ A: Allocator,
+{
+ /// Creates a new `Box<T, A>` and initializes its contents with `x`.
+ ///
+ /// New memory is allocated with `A`. The allocation may fail, in which case an error is
+ /// returned. For ZSTs no memory is allocated.
+ pub fn new(x: T, flags: Flags) -> Result<Self, AllocError> {
+ let b = Self::new_uninit(flags)?;
+ Ok(Box::write(b, x))
+ }
+
+ /// Creates a new `Box<T, A>` with uninitialized contents.
+ ///
+ /// New memory is allocated with `A`. The allocation may fail, in which case an error is
+ /// returned. For ZSTs no memory is allocated.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// let b = KBox::<u64>::new_uninit(GFP_KERNEL)?;
+ /// let b = KBox::write(b, 24);
+ ///
+ /// assert_eq!(*b, 24_u64);
+ /// # Ok::<(), Error>(())
+ /// ```
+ pub fn new_uninit(flags: Flags) -> Result<Box<MaybeUninit<T>, A>, AllocError> {
+ let layout = Layout::new::<MaybeUninit<T>>();
+ let ptr = A::alloc(layout, flags)?;
+
+ // INVARIANT: `ptr` is either a dangling pointer or points to memory allocated with `A`,
+ // which is sufficient in size and alignment for storing a `T`.
+ Ok(Box(ptr.cast(), PhantomData))
+ }
+
+ /// Constructs a new `Pin<Box<T, A>>`. If `T` does not implement [`Unpin`], then `x` will be
+ /// pinned in memory and can't be moved.
+ #[inline]
+ pub fn pin(x: T, flags: Flags) -> Result<Pin<Box<T, A>>, AllocError>
+ where
+ A: 'static,
+ {
+ Ok(Self::new(x, flags)?.into())
+ }
+
+ /// Forgets the contents (does not run the destructor), but keeps the allocation.
+ fn forget_contents(this: Self) -> Box<MaybeUninit<T>, A> {
+ let ptr = Self::into_raw(this);
+
+ // SAFETY: `ptr` is valid, because it came from `Box::into_raw`.
+ unsafe { Box::from_raw(ptr.cast()) }
+ }
+
+ /// Drops the contents, but keeps the allocation.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// let value = KBox::new([0; 32], GFP_KERNEL)?;
+ /// assert_eq!(*value, [0; 32]);
+ /// let value = KBox::drop_contents(value);
+ /// // Now we can re-use `value`:
+ /// let value = KBox::write(value, [1; 32]);
+ /// assert_eq!(*value, [1; 32]);
+ /// # Ok::<(), Error>(())
+ /// ```
+ pub fn drop_contents(this: Self) -> Box<MaybeUninit<T>, A> {
+ let ptr = this.0.as_ptr();
+
+ // SAFETY: `ptr` is valid, because it came from `this`. After this call we never access the
+ // value stored in `this` again.
+ unsafe { core::ptr::drop_in_place(ptr) };
+
+ Self::forget_contents(this)
+ }
+
+ /// Moves the `Box`'s value out of the `Box` and consumes the `Box`.
+ pub fn into_inner(b: Self) -> T {
+ // SAFETY: By the type invariant `&*b` is valid for `read`.
+ let value = unsafe { core::ptr::read(&*b) };
+ let _ = Self::forget_contents(b);
+ value
+ }
+}
+
+impl<T, A> From<Box<T, A>> for Pin<Box<T, A>>
+where
+ T: ?Sized,
+ A: Allocator,
+{
+ /// Converts a `Box<T, A>` into a `Pin<Box<T, A>>`. If `T` does not implement [`Unpin`], then
+ /// `*b` will be pinned in memory and can't be moved.
+ ///
+ /// This moves `b` into `Pin` without moving `*b` or allocating and copying any memory.
+ fn from(b: Box<T, A>) -> Self {
+ // SAFETY: The value wrapped inside a `Pin<Box<T, A>>` cannot be moved or replaced as long
+ // as `T` does not implement `Unpin`.
+ unsafe { Pin::new_unchecked(b) }
+ }
+}
+
+impl<T, A> InPlaceWrite<T> for Box<MaybeUninit<T>, A>
+where
+ A: Allocator + 'static,
+{
+ type Initialized = Box<T, A>;
+
+ fn write_init<E>(mut self, init: impl Init<T, E>) -> Result<Self::Initialized, E> {
+ let slot = self.as_mut_ptr();
+ // SAFETY: When init errors/panics, slot will get deallocated but not dropped,
+ // slot is valid.
+ unsafe { init.__init(slot)? };
+ // SAFETY: All fields have been initialized.
+ Ok(unsafe { Box::assume_init(self) })
+ }
+
+ fn write_pin_init<E>(mut self, init: impl PinInit<T, E>) -> Result<Pin<Self::Initialized>, E> {
+ let slot = self.as_mut_ptr();
+ // SAFETY: When init errors/panics, slot will get deallocated but not dropped,
+ // slot is valid and will not be moved, because we pin it later.
+ unsafe { init.__pinned_init(slot)? };
+ // SAFETY: All fields have been initialized.
+ Ok(unsafe { Box::assume_init(self) }.into())
+ }
+}
+
+impl<T, A> InPlaceInit<T> for Box<T, A>
+where
+ A: Allocator + 'static,
+{
+ type PinnedSelf = Pin<Self>;
+
+ #[inline]
+ fn try_pin_init<E>(init: impl PinInit<T, E>, flags: Flags) -> Result<Pin<Self>, E>
+ where
+ E: From<AllocError>,
+ {
+ Box::<_, A>::new_uninit(flags)?.write_pin_init(init)
+ }
+
+ #[inline]
+ fn try_init<E>(init: impl Init<T, E>, flags: Flags) -> Result<Self, E>
+ where
+ E: From<AllocError>,
+ {
+ Box::<_, A>::new_uninit(flags)?.write_init(init)
+ }
+}
+
+impl<T: 'static, A> ForeignOwnable for Box<T, A>
+where
+ A: Allocator,
+{
+ type Borrowed<'a> = &'a T;
+
+ fn into_foreign(self) -> *const core::ffi::c_void {
+ Box::into_raw(self) as _
+ }
+
+ unsafe fn from_foreign(ptr: *const core::ffi::c_void) -> Self {
+ // SAFETY: The safety requirements of this function ensure that `ptr` comes from a previous
+ // call to `Self::into_foreign`.
+ unsafe { Box::from_raw(ptr as _) }
+ }
+
+ unsafe fn borrow<'a>(ptr: *const core::ffi::c_void) -> &'a T {
+ // SAFETY: The safety requirements of this method ensure that the object remains alive and
+ // immutable for the duration of 'a.
+ unsafe { &*ptr.cast() }
+ }
+}
+
+impl<T: 'static, A> ForeignOwnable for Pin<Box<T, A>>
+where
+ A: Allocator,
+{
+ type Borrowed<'a> = Pin<&'a T>;
+
+ fn into_foreign(self) -> *const core::ffi::c_void {
+ // SAFETY: We are still treating the box as pinned.
+ Box::into_raw(unsafe { Pin::into_inner_unchecked(self) }) as _
+ }
+
+ unsafe fn from_foreign(ptr: *const core::ffi::c_void) -> Self {
+ // SAFETY: The safety requirements of this function ensure that `ptr` comes from a previous
+ // call to `Self::into_foreign`.
+ unsafe { Pin::new_unchecked(Box::from_raw(ptr as _)) }
+ }
+
+ unsafe fn borrow<'a>(ptr: *const core::ffi::c_void) -> Pin<&'a T> {
+ // SAFETY: The safety requirements for this function ensure that the object is still alive,
+ // so it is safe to dereference the raw pointer.
+ // The safety requirements of `from_foreign` also ensure that the object remains alive for
+ // the lifetime of the returned value.
+ let r = unsafe { &*ptr.cast() };
+
+ // SAFETY: This pointer originates from a `Pin<Box<T>>`.
+ unsafe { Pin::new_unchecked(r) }
+ }
+}
+
+impl<T, A> Deref for Box<T, A>
+where
+ T: ?Sized,
+ A: Allocator,
+{
+ type Target = T;
+
+ fn deref(&self) -> &T {
+ // SAFETY: `self.0` is always properly aligned, dereferenceable and points to an initialized
+ // instance of `T`.
+ unsafe { self.0.as_ref() }
+ }
+}
+
+impl<T, A> DerefMut for Box<T, A>
+where
+ T: ?Sized,
+ A: Allocator,
+{
+ fn deref_mut(&mut self) -> &mut T {
+ // SAFETY: `self.0` is always properly aligned, dereferenceable and points to an initialized
+ // instance of `T`.
+ unsafe { self.0.as_mut() }
+ }
+}
+
+impl<T, A> fmt::Debug for Box<T, A>
+where
+ T: ?Sized + fmt::Debug,
+ A: Allocator,
+{
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ fmt::Debug::fmt(&**self, f)
+ }
+}
+
+impl<T, A> Drop for Box<T, A>
+where
+ T: ?Sized,
+ A: Allocator,
+{
+ fn drop(&mut self) {
+ let layout = Layout::for_value::<T>(self);
+
+ // SAFETY: The pointer in `self.0` is guaranteed to be valid by the type invariant.
+ unsafe { core::ptr::drop_in_place::<T>(self.deref_mut()) };
+
+ // SAFETY:
+ // - `self.0` was previously allocated with `A`.
+ // - `layout` is equal to the `Layout´ `self.0` was allocated with.
+ unsafe { A::free(self.0.cast(), layout) };
+ }
+}
--- a/rust/kernel/prelude.rs
+++ b/rust/kernel/prelude.rs
@@ -14,7 +14,7 @@
#[doc(no_inline)]
pub use core::pin::Pin;
-pub use crate::alloc::{box_ext::BoxExt, flags::*, vec_ext::VecExt};
+pub use crate::alloc::{box_ext::BoxExt, flags::*, vec_ext::VecExt, KBox, KVBox, VBox};
#[doc(no_inline)]
pub use alloc::{boxed::Box, vec::Vec};
next prev parent reply other threads:[~2025-03-10 17:21 UTC|newest]
Thread overview: 282+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 17:02 [PATCH 6.12 000/269] 6.12.19-rc1 review Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 001/269] x86/amd_nb: Use rdmsr_safe() in amd_get_mmconfig_range() Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 002/269] rust: block: fix formatting in GenDisk doc Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 003/269] drm/i915/dsi: convert to struct intel_display Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 004/269] drm/i915/dsi: Use TRANS_DDI_FUNC_CTLs own port width macro Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 005/269] gpio: vf610: use generic device_get_match_data() Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 006/269] gpio: vf610: add locking to gpio direction functions Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 007/269] cifs: Remove symlink member from cifs_open_info_data union Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 008/269] smb311: failure to open files of length 1040 when mounting with SMB3.1.1 POSIX extensions Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 009/269] btrfs: fix data overwriting bug during buffered write when block size < page size Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 010/269] x86/microcode/AMD: Add some forgotten models to the SHA check Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 011/269] loongarch: Use ASM_REACHABLE Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 012/269] rust: workqueue: remove unneeded ``#[allow(clippy::new_ret_no_self)]` Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 013/269] rust: sort global Rust flags Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 014/269] rust: types: avoid repetition in `{As,From}Bytes` impls Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 015/269] rust: enable `clippy::undocumented_unsafe_blocks` lint Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 016/269] rust: enable `clippy::unnecessary_safety_comment` lint Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 017/269] rust: enable `clippy::unnecessary_safety_doc` lint Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 018/269] rust: enable `clippy::ignored_unit_patterns` lint Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 019/269] rust: enable `rustdoc::unescaped_backticks` lint Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 020/269] rust: init: remove unneeded `#[allow(clippy::disallowed_names)]` Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 021/269] rust: sync: remove unneeded `#[allow(clippy::non_send_fields_in_send_ty)]` Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 022/269] rust: introduce `.clippy.toml` Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 023/269] rust: replace `clippy::dbg_macro` with `disallowed_macros` Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 024/269] rust: provide proper code documentation titles Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 025/269] rust: enable Clippys `check-private-items` Greg Kroah-Hartman
2025-03-10 17:02 ` [PATCH 6.12 026/269] Documentation: rust: add coding guidelines on lints Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 027/269] rust: start using the `#[expect(...)]` attribute Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 028/269] Documentation: rust: discuss `#[expect(...)]` in the guidelines Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 029/269] rust: error: make conversion functions public Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 030/269] rust: error: optimize error type to use nonzero Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 031/269] rust: alloc: add `Allocator` trait Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 032/269] rust: alloc: separate `aligned_size` from `krealloc_aligned` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 033/269] rust: alloc: rename `KernelAllocator` to `Kmalloc` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 034/269] rust: alloc: implement `ReallocFunc` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 035/269] rust: alloc: make `allocator` module public Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 036/269] rust: alloc: implement `Allocator` for `Kmalloc` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 037/269] rust: alloc: add module `allocator_test` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 038/269] rust: alloc: implement `Vmalloc` allocator Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 039/269] rust: alloc: implement `KVmalloc` allocator Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 040/269] rust: alloc: add __GFP_NOWARN to `Flags` Greg Kroah-Hartman
2025-03-10 17:03 ` Greg Kroah-Hartman [this message]
2025-03-10 17:03 ` [PATCH 6.12 042/269] rust: treewide: switch to our kernel `Box` type Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 043/269] rust: alloc: remove extension of stds `Box` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 044/269] rust: alloc: add `Box` to prelude Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 045/269] rust: alloc: introduce `ArrayLayout` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 046/269] rust: alloc: implement kernel `Vec` type Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 047/269] rust: alloc: implement `IntoIterator` for `Vec` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 048/269] rust: alloc: implement `collect` for `IntoIter` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 049/269] rust: treewide: switch to the kernel `Vec` type Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 050/269] rust: alloc: remove `VecExt` extension Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 051/269] rust: alloc: add `Vec` to prelude Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 052/269] rust: error: use `core::alloc::LayoutError` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 053/269] rust: error: check for config `test` in `Error::name` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 054/269] rust: alloc: implement `contains` for `Flags` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 055/269] rust: alloc: implement `Cmalloc` in module allocator_test Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 056/269] rust: str: test: replace `alloc::format` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 057/269] rust: alloc: update module comment of alloc.rs Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 058/269] kbuild: rust: remove the `alloc` crate and `GlobalAlloc` Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 059/269] MAINTAINERS: add entry for the Rust `alloc` module Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 060/269] drm/panic: avoid reimplementing Iterator::find Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 061/269] drm/panic: remove unnecessary borrow in alignment_pattern Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 062/269] drm/panic: prefer eliding lifetimes Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 063/269] drm/panic: remove redundant field when assigning value Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 064/269] drm/panic: correctly indent continuation of line in list item Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 065/269] drm/panic: allow verbose boolean for clarity Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 066/269] drm/panic: allow verbose version check Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 067/269] rust: kbuild: expand rusttest target for macros Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 068/269] rust: fix size_t in bindgen prototypes of C builtins Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 069/269] rust: map `__kernel_size_t` and friends also to usize/isize Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 070/269] rust: use custom FFI integer types Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 071/269] rust: alloc: Fix `ArrayLayout` allocations Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 072/269] Revert "of: reserved-memory: Fix using wrong number of cells to get property alignment" Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 073/269] tracing: tprobe-events: Fix a memory leak when tprobe with $retval Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 074/269] tracing: tprobe-events: Reject invalid tracepoint name Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 075/269] stmmac: loongson: Pass correct arg to PCI function Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 076/269] LoongArch: Convert unreachable() to BUG() Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 077/269] LoongArch: Use polling play_dead() when resuming from hibernation Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 078/269] LoongArch: Set max_pfn with the PFN of the last page Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 079/269] LoongArch: KVM: Add interrupt checking for AVEC Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 080/269] LoongArch: KVM: Reload guest CSR registers after sleep Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 081/269] LoongArch: KVM: Fix GPA size issue about VM Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 082/269] HID: appleir: Fix potential NULL dereference at raw event handle Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 083/269] ksmbd: fix type confusion via race condition when using ipc_msg_send_request Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 084/269] ksmbd: fix out-of-bounds in parse_sec_desc() Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 085/269] ksmbd: fix use-after-free in smb2_lock Greg Kroah-Hartman
2025-03-10 17:03 ` [PATCH 6.12 086/269] ksmbd: fix bug on trap " Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 087/269] gpio: rcar: Use raw_spinlock to protect register access Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 088/269] gpio: aggregator: protect driver attr handlers against module unload Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 089/269] ALSA: seq: Avoid module auto-load handling at event delivery Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 090/269] ALSA: hda: intel: Add Dell ALC3271 to power_save denylist Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 091/269] ALSA: hda/realtek - add supported Mic Mute LED for Lenovo platform Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 092/269] ALSA: hda/realtek: update ALC222 depop optimize Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 093/269] btrfs: fix a leaked chunk map issue in read_one_chunk() Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 094/269] hwmon: (peci/dimmtemp) Do not provide fake thresholds data Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 095/269] drm/amd/display: Fix null check for pipe_ctx->plane_state in resource_build_scaling_params Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 096/269] drm/amdkfd: Fix NULL Pointer Dereference in KFD queue Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 097/269] drm/amd/pm: always allow ih interrupt from fw Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 098/269] drm/imagination: avoid deadlock on fence release Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 099/269] drm/imagination: Hold drm_gem_gpuva lock for unmap Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 100/269] drm/imagination: only init job done fences once Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 101/269] drm/radeon: Fix rs400_gpu_init for ATI mobility radeon Xpress 200M Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 102/269] Revert "mm/page_alloc.c: dont show protection in zones ->lowmem_reserve[] for empty zone" Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 103/269] Revert "selftests/mm: remove local __NR_* definitions" Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 104/269] platform/x86: thinkpad_acpi: Add battery quirk for ThinkPad X131e Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 105/269] x86/boot: Sanitize boot params before parsing command line Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 106/269] x86/cacheinfo: Validate CPUID leaf 0x2 EDX output Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 107/269] x86/cpu: " Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 108/269] x86/cpu: Properly parse CPUID leaf 0x2 TLB descriptor 0x63 Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 109/269] drm/xe: Add staging tree for VM binds Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 110/269] drm/xe/hmm: Style- and include fixes Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 111/269] drm/xe/hmm: Dont dereference struct page pointers without notifier lock Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 112/269] drm/xe/vm: Fix a misplaced #endif Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 113/269] drm/xe/vm: Validate userptr during gpu vma prefetching Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 114/269] mptcp: fix scheduling while atomic in mptcp_pm_nl_append_new_local_addr Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 115/269] drm/xe: Fix GT "for each engine" workarounds Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 116/269] drm/xe: Fix fault mode invalidation with unbind Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 117/269] drm/xe/userptr: properly setup pfn_flags_mask Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 118/269] drm/xe/userptr: Unmap userptrs in the mmu notifier Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 119/269] Bluetooth: Add check for mgmt_alloc_skb() in mgmt_remote_name() Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 120/269] Bluetooth: Add check for mgmt_alloc_skb() in mgmt_device_connected() Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 121/269] wifi: cfg80211: regulatory: improve invalid hints checking Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 122/269] wifi: nl80211: reject cooked mode if it is set along with other flags Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 123/269] selftests/damon/damos_quota_goal: handle minimum quota that cannot be further reduced Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 124/269] selftests/damon/damos_quota: make real expectation of quota exceeds Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 125/269] selftests/damon/damon_nr_regions: set ops update for merge results check to 100ms Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 126/269] selftests/damon/damon_nr_regions: sort collected regiosn before checking with min/max boundaries Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 127/269] rapidio: add check for rio_add_net() in rio_scan_alloc_net() Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 128/269] rapidio: fix an API misues when rio_add_net() fails Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 129/269] dma: kmsan: export kmsan_handle_dma() for modules Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 130/269] s390/traps: Fix test_monitor_call() inline assembly Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 131/269] NFS: fix nfs_release_folio() to not deadlock via kcompactd writeback Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 132/269] userfaultfd: do not block on locking a large folio with raised refcount Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 133/269] block: fix conversion of GPT partition name to 7-bit Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 134/269] mm/page_alloc: fix uninitialized variable Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 135/269] mm: abort vma_modify() on merge out of memory failure Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 136/269] mm: memory-failure: update ttu flag inside unmap_poisoned_folio Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 137/269] mm: dont skip arch_sync_kernel_mappings() in error paths Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 138/269] mm: fix finish_fault() handling for large folios Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 139/269] hwpoison, memory_hotplug: lock folio before unmap hwpoisoned folio Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 140/269] mm: memory-hotplug: check folio ref count first in do_migrate_range Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 141/269] wifi: iwlwifi: mvm: clean up ROC on failure Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 142/269] wifi: iwlwifi: mvm: dont try to talk to a dead firmware Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 143/269] wifi: iwlwifi: limit printed string from FW file Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 144/269] wifi: iwlwifi: Free pages allocated when failing to build A-MSDU Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 145/269] wifi: iwlwifi: Fix A-MSDU TSO preparation Greg Kroah-Hartman
2025-03-10 17:04 ` [PATCH 6.12 146/269] HID: google: fix unused variable warning under !CONFIG_ACPI Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 147/269] HID: intel-ish-hid: Fix use-after-free issue in hid_ishtp_cl_remove() Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 148/269] HID: intel-ish-hid: Fix use-after-free issue in ishtp_hid_remove() Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 149/269] coredump: Only sort VMAs when core_sort_vma sysctl is set Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 150/269] nvme-pci: add support for sgl metadata Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 151/269] nvme-pci: use sgls for all user requests if possible Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 152/269] nvme-ioctl: fix leaked requests on mapping error Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 153/269] wifi: mac80211: Support parsing EPCS ML element Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 154/269] wifi: mac80211: fix MLE non-inheritance parsing Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 155/269] wifi: mac80211: fix vendor-specific inheritance Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 156/269] drm/fbdev-helper: Move color-mode lookup into 4CC format helper Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 157/269] drm/fbdev: Add memory-agnostic fbdev client Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 158/269] drm: Add client-agnostic setup helper Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 159/269] drm/fbdev-ttm: Support struct drm_driver.fbdev_probe Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 160/269] drm/nouveau: Run DRM default client setup Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 161/269] drm/nouveau: select FW caching Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 162/269] bluetooth: btusb: Initialize .owner field of force_poll_sync_fops Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 163/269] nvme-tcp: add basic support for the C2HTermReq PDU Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 164/269] nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu() Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 165/269] nvmet-tcp: Fix a possible sporadic response drops in weakly ordered arch Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 166/269] ALSA: hda/realtek: Remove (revert) duplicate Ally X config Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 167/269] net: gso: fix ownership in __udp_gso_segment Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 168/269] caif_virtio: fix wrong pointer check in cfv_probe() Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 169/269] perf/core: Fix pmus_lock vs. pmus_srcu ordering Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 170/269] hwmon: (pmbus) Initialise page count in pmbus_identify() Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 171/269] hwmon: (ntc_thermistor) Fix the ncpXXxh103 sensor table Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 172/269] hwmon: (ad7314) Validate leading zero bits and return error Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 173/269] tracing: probe-events: Remove unused MAX_ARG_BUF_LEN macro Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 174/269] drm/imagination: Fix timestamps in firmware traces Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 175/269] ALSA: usx2y: validate nrpacks module parameter on probe Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 176/269] llc: do not use skb_get() before dev_queue_xmit() Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 177/269] hwmon: fix a NULL vs IS_ERR_OR_NULL() check in xgene_hwmon_probe() Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 178/269] drm/sched: Fix preprocessor guard Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 179/269] be2net: fix sleeping while atomic bugs in be_ndo_bridge_getlink Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 180/269] net: hns3: make sure ptp clock is unregister and freed if hclge_ptp_get_cycle returns an error Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 181/269] drm/i915/color: Extract intel_color_modeset() Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 182/269] drm/i915: Plumb dsb all way to the plane hooks Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 183/269] drm/xe: Remove double pageflip Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 184/269] HID: hid-steam: Fix use-after-free when detaching device Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 185/269] net: ipa: Fix v4.7 resource group names Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 186/269] net: ipa: Fix QSB data for v4.7 Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 187/269] net: ipa: Enable checksum for IPA_ENDPOINT_AP_MODEM_{RX,TX} " Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 188/269] ppp: Fix KMSAN uninit-value warning with bpf Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 189/269] ethtool: linkstate: migrate linkstate functions to support multi-PHY setups Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 190/269] net: ethtool: plumb PHY stats to PHY drivers Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 191/269] net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 192/269] vlan: enforce underlying device type Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 193/269] x86/sgx: Fix size overflows in sgx_encl_create() Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 194/269] exfat: fix just enough dentries but allocate a new cluster to dir Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 195/269] exfat: fix soft lockup in exfat_clear_bitmap Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 196/269] exfat: short-circuit zero-byte writes in exfat_file_write_iter Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 197/269] net-timestamp: support TCP GSO case for a few missing flags Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 198/269] ublk: set_params: properly check if parameters can be applied Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 199/269] sched/fair: Fix potential memory corruption in child_cfs_rq_on_list Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 200/269] nvme-tcp: fix signedness bug in nvme_tcp_init_connection() Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 201/269] net: dsa: mt7530: Fix traffic flooding for MMIO devices Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 202/269] mctp i3c: handle NULL header address Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 203/269] net: ipv6: fix dst ref loop in ila lwtunnel Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 204/269] net: ipv6: fix missing dst ref drop " Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 205/269] gpio: rcar: Fix missing of_node_put() call Greg Kroah-Hartman
2025-03-10 17:05 ` [PATCH 6.12 206/269] Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection" Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 207/269] usb: renesas_usbhs: Call clk_put() Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 208/269] xhci: Restrict USB4 tunnel detection for USB3 devices to Intel hosts Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 209/269] usb: renesas_usbhs: Use devm_usb_get_phy() Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 210/269] usb: hub: lack of clearing xHC resources Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 211/269] usb: quirks: Add DELAY_INIT and NO_LPM for Prolific Mass Storage Card Reader Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 212/269] usb: typec: ucsi: Fix NULL pointer access Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 213/269] usb: renesas_usbhs: Flush the notify_hotplug_work Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 214/269] usb: gadget: u_ether: Set is_suspend flag if remote wakeup fails Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 215/269] usb: atm: cxacru: fix a flaw in existing endpoint checks Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 216/269] usb: dwc3: Set SUSPENDENABLE soon after phy init Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 217/269] usb: dwc3: gadget: Prevent irq storm when TH re-executes Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 218/269] usb: typec: ucsi: increase timeout for PPM reset operations Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 219/269] usb: typec: tcpci_rt1711h: Unmask alert interrupts to fix functionality Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 220/269] usb: gadget: Set self-powered based on MaxPower and bmAttributes Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 221/269] usb: gadget: Fix setting self-powered state on suspend Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 222/269] usb: gadget: Check bmAttributes only if configuration is valid Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 223/269] kbuild: userprogs: use correct lld when linking through clang Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 224/269] acpi: typec: ucsi: Introduce a ->poll_cci method Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 225/269] rust: finish using custom FFI integer types Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 226/269] rust: map `long` to `isize` and `char` to `u8` Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 227/269] xhci: pci: Fix indentation in the PCI device ID definitions Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 228/269] usb: xhci: Enable the TRB overfetch quirk on VIA VL805 Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 229/269] KVM: SVM: Set RFLAGS.IF=1 in C code, to get VMRUN out of the STI shadow Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 230/269] KVM: SVM: Save host DR masks on CPUs with DebugSwap Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 231/269] KVM: SVM: Drop DEBUGCTL[5:2] from guests effective value Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 232/269] KVM: SVM: Suppress DEBUGCTL.BTF on AMD Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 233/269] KVM: x86: Snapshot the hosts DEBUGCTL in common x86 Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 234/269] KVM: SVM: Manually context switch DEBUGCTL if LBR virtualization is disabled Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 235/269] KVM: x86: Snapshot the hosts DEBUGCTL after disabling IRQs Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 236/269] KVM: x86: Explicitly zero EAX and EBX when PERFMON_V2 isnt supported by KVM Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 237/269] cdx: Fix possible UAF error in driver_override_show() Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 238/269] mei: me: add panther lake P DID Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 239/269] mei: vsc: Use "wakeuphostint" when getting the host wakeup GPIO Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 240/269] intel_th: pci: Add Arrow Lake support Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 241/269] intel_th: pci: Add Panther Lake-H support Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 242/269] intel_th: pci: Add Panther Lake-P/U support Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 243/269] char: misc: deallocate static minor in error path Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 244/269] drivers: core: fix device leak in __fw_devlink_relax_cycles() Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 245/269] slimbus: messaging: Free transaction ID in delayed interrupt scenario Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 246/269] bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 247/269] eeprom: digsy_mtc: Make GPIO lookup table match the device Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 248/269] drivers: virt: acrn: hsm: Use kzalloc to avoid info leak in pmcmd_ioctl Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 249/269] iio: filter: admv8818: Force initialization of SDO Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 250/269] iio: light: apds9306: fix max_scale_nano values Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 251/269] iio: dac: ad3552r: clear reset status flag Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 252/269] iio: adc: ad7192: fix channel select Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 253/269] iio: adc: at91-sama5d2_adc: fix sama7g5 realbits value Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 254/269] mm: hugetlb: Add huge page size param to huge_ptep_get_and_clear() Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 255/269] arm64: hugetlb: Fix huge_ptep_get_and_clear() for non-present ptes Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 256/269] fs/netfs/read_pgpriv2: skip folio queues without `marks3` Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 257/269] fs/netfs/read_collect: fix crash due to uninitialized `prev` variable Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 258/269] kbuild: hdrcheck: fix cross build with clang Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 259/269] ALSA: hda: realtek: fix incorrect IS_REACHABLE() usage Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 260/269] nvme-tcp: Fix a C2HTermReq error message Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 261/269] docs: rust: remove spurious item in `expect` list Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 262/269] Revert "KVM: e500: always restore irqs" Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 263/269] Revert "KVM: PPC: e500: Use __kvm_faultin_pfn() to handle page faults" Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 264/269] Revert "KVM: PPC: e500: Mark "struct page" pfn accessed before dropping mmu_lock" Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 265/269] Revert "KVM: PPC: e500: Mark "struct page" dirty in kvmppc_e500_shadow_map()" Greg Kroah-Hartman
2025-03-10 17:06 ` [PATCH 6.12 266/269] KVM: e500: always restore irqs Greg Kroah-Hartman
2025-03-10 17:07 ` [PATCH 6.12 267/269] uprobes: Fix race in uprobe_free_utask Greg Kroah-Hartman
2025-03-10 17:07 ` [PATCH 6.12 268/269] selftests/bpf: Clean up open-coded gettid syscall invocations Greg Kroah-Hartman
2025-03-10 17:07 ` [PATCH 6.12 269/269] x86/mm: Dont disable PCID when INVLPG has been fixed by microcode Greg Kroah-Hartman
2025-03-10 19:04 ` [PATCH 6.12 000/269] 6.12.19-rc1 review SeongJae Park
2025-03-10 19:58 ` Florian Fainelli
2025-03-11 7:04 ` Harshit Mogalapalli
2025-03-11 9:58 ` Jon Hunter
2025-03-11 10:05 ` Ron Economos
2025-03-11 12:18 ` Naresh Kamboju
2025-03-11 13:24 ` Mark Brown
2025-03-11 16:45 ` Shuah Khan
2025-03-11 17:03 ` Markus Reichelt
2025-03-11 18:04 ` Miguel Ojeda
2025-03-11 23:39 ` Peter Schneider
2025-03-12 17:17 ` Hardik Garg
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=20250310170459.358709113@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=benno.lossin@proton.me \
--cc=dakr@kernel.org \
--cc=gary@garyguo.net \
--cc=ojeda@kernel.org \
--cc=patches@lists.linux.dev \
--cc=stable@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox