History log of /linux/rust/ (Results 326 – 350 of 480)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
2e704f1814-Aug-2023 Benno Lossin <benno.lossin@proton.me>

rust: init: implement `Zeroable` for `UnsafeCell<T>` and `Opaque<T>`

`UnsafeCell<T>` and `T` have the same layout so if `T` is `Zeroable`
then so should `UnsafeCell<T>` be. This allows using the der

rust: init: implement `Zeroable` for `UnsafeCell<T>` and `Opaque<T>`

`UnsafeCell<T>` and `T` have the same layout so if `T` is `Zeroable`
then so should `UnsafeCell<T>` be. This allows using the derive macro
for `Zeroable` on types that contain an `UnsafeCell<T>`.
Since `Opaque<T>` contains a `MaybeUninit<T>`, all bytes zero is a valid
bit pattern for that type.

Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20230814084602.25699-11-benno.lossin@proton.me
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

674b1c7a14-Aug-2023 Benno Lossin <benno.lossin@proton.me>

rust: init: add support for arbitrary paths in init macros

Previously only `ident` and generic types were supported in the
`{try_}{pin_}init!` macros. This patch allows arbitrary path fragments,
so

rust: init: add support for arbitrary paths in init macros

Previously only `ident` and generic types were supported in the
`{try_}{pin_}init!` macros. This patch allows arbitrary path fragments,
so for example `Foo::Bar` but also very complex paths such as
`<Foo as Baz>::Bar::<0, i32>`.

Internally this is accomplished by using `path` fragments. Due to some
peculiar declarative macro limitations, we have to "forget" certain
additional parsing information in the token trees. This is achieved by
using the `paste!` proc macro. It does not actually modify the input,
since no `[< >]` will be present in the input, so it just strips the
information held by declarative macros. For example, if a declarative
macro takes `$t:path` as its input, it cannot sensibly propagate this to
a macro that takes `$($p:tt)*` as its input, since the `$t` token will
only be considered one `tt` token for the second macro. If we first pipe
the tokens through `paste!`, then it parses as expected.

Suggested-by: Asahi Lina <lina@asahilina.net>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20230814084602.25699-10-benno.lossin@proton.me
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

9e49439014-Aug-2023 Benno Lossin <benno.lossin@proton.me>

rust: init: add functions to create array initializers

Add two functions `pin_init_array_from_fn` and `init_array_from_fn` that
take a function that generates initializers for `T` from `usize`, the

rust: init: add functions to create array initializers

Add two functions `pin_init_array_from_fn` and `init_array_from_fn` that
take a function that generates initializers for `T` from `usize`, the added
functions then return an initializer for `[T; N]` where every element is
initialized by an element returned from the generator function.

Suggested-by: Asahi Lina <lina@asahilina.net>
Reviewed-by: Björn Roy Baron <bjorn3_gh@protonmail.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20230814084602.25699-9-benno.lossin@proton.me
[ Cleaned a couple trivial nits. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

35e7fca214-Aug-2023 Benno Lossin <benno.lossin@proton.me>

rust: init: add `..Zeroable::zeroed()` syntax for zeroing all missing fields

Add the struct update syntax to the init macros, but only for
`..Zeroable::zeroed()`. Adding this at the end of the struc

rust: init: add `..Zeroable::zeroed()` syntax for zeroing all missing fields

Add the struct update syntax to the init macros, but only for
`..Zeroable::zeroed()`. Adding this at the end of the struct initializer
allows one to omit fields from the initializer, these fields will be
initialized with 0x00 set to every byte. Only types that implement the
`Zeroable` trait can utilize this.

Suggested-by: Asahi Lina <lina@asahilina.net>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20230814084602.25699-8-benno.lossin@proton.me
[ Rebased on `rust-next` and cleaned a few trivial nits. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

92fd540d14-Aug-2023 Benno Lossin <benno.lossin@proton.me>

rust: init: make initializer values inaccessible after initializing

Previously the init macros would create a local variable with the name
and hygiene of the field that is being initialized to store

rust: init: make initializer values inaccessible after initializing

Previously the init macros would create a local variable with the name
and hygiene of the field that is being initialized to store the value of
the field. This would override any user defined variables. For example:
```
struct Foo {
a: usize,
b: usize,
}
let a = 10;
let foo = init!(Foo{
a: a + 1, // This creates a local variable named `a`.
b: a, // This refers to that variable!
});
let foo = Box::init!(foo)?;
assert_eq!(foo.a, 11);
assert_eq!(foo.b, 11);
```

This patch changes this behavior, so the above code would panic at the
last assertion, since `b` would have value 10.

Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20230814084602.25699-7-benno.lossin@proton.me
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

b9b88be014-Aug-2023 Benno Lossin <benno.lossin@proton.me>

rust: init: wrap type checking struct initializers in a closure

In the implementation of the init macros there is a `if false` statement
that type checks the initializer to ensure every field is ini

rust: init: wrap type checking struct initializers in a closure

In the implementation of the init macros there is a `if false` statement
that type checks the initializer to ensure every field is initialized.
Since the next patch has a stack variable to store the struct, the
function might allocate too much memory on debug builds. Putting the
struct into a closure that is never executed ensures that even in debug
builds no stack overflow error is caused. In release builds this was not
a problem since the code was optimized away due to the `if false`.

Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20230814084602.25699-6-benno.lossin@proton.me
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

97de919d14-Aug-2023 Benno Lossin <benno.lossin@proton.me>

rust: init: make guards in the init macros hygienic

Use hygienic identifiers for the guards instead of the field names. This
makes the init macros feel more like normal struct initializers, since
as

rust: init: make guards in the init macros hygienic

Use hygienic identifiers for the guards instead of the field names. This
makes the init macros feel more like normal struct initializers, since
assigning identifiers with the name of a field does not create
conflicts.

Also change the internals of the guards, no need to make the `forget`
function `unsafe`, since users cannot access the guards anyways. Now the
guards are carried directly on the stack and have no extra `Cell<bool>`
field that marks if they have been forgotten or not, instead they are
just forgotten via `mem::forget`.

Suggested-by: Asahi Lina <lina@asahilina.net>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20230814084602.25699-5-benno.lossin@proton.me
[ Cleaned a few trivial nits. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

071cedc814-Aug-2023 Benno Lossin <benno.lossin@proton.me>

rust: add derive macro for `Zeroable`

Add a derive proc-macro for the `Zeroable` trait. The macro supports
structs where every field implements the `Zeroable` trait. This way
`unsafe` implementation

rust: add derive macro for `Zeroable`

Add a derive proc-macro for the `Zeroable` trait. The macro supports
structs where every field implements the `Zeroable` trait. This way
`unsafe` implementations can be avoided.

The macro is split into two parts:
- a proc-macro to parse generics into impl and ty generics,
- a declarative macro that expands to the impl block.

Suggested-by: Asahi Lina <lina@asahilina.net>
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Link: https://lore.kernel.org/r/20230814084602.25699-4-benno.lossin@proton.me
[ Added `ignore` to the `lib.rs` example and cleaned trivial nit. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

f8badd1514-Aug-2023 Benno Lossin <benno.lossin@proton.me>

rust: init: make `#[pin_data]` compatible with conditional compilation of fields

This patch allows one to write
```
#[pin_data]
pub struct Foo {
#[cfg(CONFIG_BAR)]
a: Bar,
#[cfg(not(CONF

rust: init: make `#[pin_data]` compatible with conditional compilation of fields

This patch allows one to write
```
#[pin_data]
pub struct Foo {
#[cfg(CONFIG_BAR)]
a: Bar,
#[cfg(not(CONFIG_BAR))]
a: Baz,
}
```
Before, this would result in a compile error, because `#[pin_data]`
would generate two functions named `a` for both fields unconditionally.

Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20230814084602.25699-3-benno.lossin@proton.me
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

b3068ac314-Aug-2023 Benno Lossin <benno.lossin@proton.me>

rust: init: consolidate init macros

Merges the implementations of `try_init!` and `try_pin_init!`. These two
macros are very similar, but use different traits. The new macro
`__init_internal!` that

rust: init: consolidate init macros

Merges the implementations of `try_init!` and `try_pin_init!`. These two
macros are very similar, but use different traits. The new macro
`__init_internal!` that is now the implementation for both takes these
traits as parameters.

This change does not affect any users, as no public API has been
changed, but it should simplify maintaining the init macros.

Reviewed-by: Björn Roy Baron <bjorn3_gh@protonmail.com>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20230814084602.25699-2-benno.lossin@proton.me
[ Cleaned a couple trivial nits. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

4f353e0d04-Aug-2023 Martin Rodriguez Reboredo <yakoyoku@gmail.com>

scripts: generate_rust_analyzer: provide `cfg`s for `core` and `alloc`

Both `core` and `alloc` have their `cfgs` (such as `no_rc`) missing
in `rust-project.json`.

To remedy this, pass the flags to

scripts: generate_rust_analyzer: provide `cfg`s for `core` and `alloc`

Both `core` and `alloc` have their `cfgs` (such as `no_rc`) missing
in `rust-project.json`.

To remedy this, pass the flags to `generate_rust_analyzer.py` for
them to be added to a dictionary where each key corresponds to
a crate and each value to a list of `cfg`s. The dictionary is then
used to pass the `cfg`s to each crate in the generated file (for
`core` and `alloc` only).

Signed-off-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Link: https://lore.kernel.org/r/20230804171448.54976-1-yakoyoku@gmail.com
[ Removed `Suggested-by` as discussed in mailing list. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

08ab786512-Jun-2023 Aakash Sen Sharma <aakashsensharma@gmail.com>

rust: bindgen: upgrade to 0.65.1

In LLVM 16, anonymous items may return names like `(unnamed union at ..)`
rather than empty names [1], which breaks Rust-enabled builds because
bindgen assumed an em

rust: bindgen: upgrade to 0.65.1

In LLVM 16, anonymous items may return names like `(unnamed union at ..)`
rather than empty names [1], which breaks Rust-enabled builds because
bindgen assumed an empty name instead of detecting them via
`clang_Cursor_isAnonymous` [2]:

$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...

This was fixed in bindgen 0.62.0. Therefore, upgrade bindgen to
a more recent version, 0.65.1, to support LLVM 16.

Since bindgen 0.58.0 changed the `--{white,black}list-*` flags to
`--{allow,block}list-*` [3], update them on our side too.

In addition, bindgen 0.61.0 moved its CLI utility into a binary crate
called `bindgen-cli` [4]. Thus update the installation command in the
Quick Start guide.

Moreover, bindgen 0.61.0 changed the default functionality to bind
`size_t` to `usize` [5] and added the `--no-size_t-is-usize` flag
to not bind `size_t` as `usize`. Then bindgen 0.65.0 removed
the `--size_t-is-usize` flag [6]. Thus stop passing the flag to bindgen.

Finally, bindgen 0.61.0 added support for the `noreturn` attribute (in
its different forms) [7]. Thus remove the infinite loop in our Rust
panic handler after calling `BUG()`, since bindgen now correctly
generates a `BUG()` binding that returns `!` instead of `()`.

Link: https://github.com/llvm/llvm-project/commit/19e984ef8f49bc3ccced15621989fa9703b2cd5b [1]
Link: https://github.com/rust-lang/rust-bindgen/pull/2319 [2]
Link: https://github.com/rust-lang/rust-bindgen/pull/1990 [3]
Link: https://github.com/rust-lang/rust-bindgen/pull/2284 [4]
Link: https://github.com/rust-lang/rust-bindgen/commit/cc78b6fdb6e829e5fb8fa1639f2182cb49333569 [5]
Link: https://github.com/rust-lang/rust-bindgen/pull/2408 [6]
Link: https://github.com/rust-lang/rust-bindgen/issues/2094 [7]
Signed-off-by: Aakash Sen Sharma <aakashsensharma@gmail.com>
Closes: https://github.com/Rust-for-Linux/linux/issues/1013
Tested-by: Ariel Miculas <amiculas@cisco.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com
[ Reworded commit message. Mentioned the `bindgen-cli` binary crate
change, linked to it and updated the Quick Start guide. Re-added a
deleted "as" word in a code comment and reflowed comment to respect
the maximum length. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

89eed1ab30-Jul-2023 Miguel Ojeda <ojeda@kernel.org>

rust: upgrade to Rust 1.71.1

This is the second upgrade to the Rust toolchain, from 1.68.2 to 1.71.1
(i.e. the latest).

See the upgrade policy [1] and the comments on the first upgrade in
commit 3e

rust: upgrade to Rust 1.71.1

This is the second upgrade to the Rust toolchain, from 1.68.2 to 1.71.1
(i.e. the latest).

See the upgrade policy [1] and the comments on the first upgrade in
commit 3ed03f4da06e ("rust: upgrade to Rust 1.68.2").

# Unstable features

No unstable features (that we use) were stabilized.

Therefore, the only unstable feature allowed to be used outside
the `kernel` crate is still `new_uninit`, though other code to be
upstreamed may increase the list.

Please see [2] for details.

# Required changes

For the upgrade, this patch requires the following changes:

- Removal of the `__rust_*` allocator functions, together with
the addition of the `__rust_no_alloc_shim_is_unstable` static.
See [3] for details.

- Some more compiler builtins added due to `<f{32,64}>::midpoint()`
that got added in Rust 1.71 [4].

# `alloc` upgrade and reviewing

The vast majority of changes are due to our `alloc` fork being upgraded
at once.

There are two kinds of changes to be aware of: the ones coming from
upstream, which we should follow as closely as possible, and the updates
needed in our added fallible APIs to keep them matching the newer
infallible APIs coming from upstream.

Instead of taking a look at the diff of this patch, an alternative
approach is reviewing a diff of the changes between upstream `alloc` and
the kernel's. This allows to easily inspect the kernel additions only,
especially to check if the fallible methods we already have still match
the infallible ones in the new version coming from upstream.

Another approach is reviewing the changes introduced in the additions in
the kernel fork between the two versions. This is useful to spot
potentially unintended changes to our additions.

To apply these approaches, one may follow steps similar to the following
to generate a pair of patches that show the differences between upstream
Rust and the kernel (for the subset of `alloc` we use) before and after
applying this patch:

# Get the difference with respect to the old version.
git -C rust checkout $(linux/scripts/min-tool-version.sh rustc)
git -C linux ls-tree -r --name-only HEAD -- rust/alloc |
cut -d/ -f3- |
grep -Fv README.md |
xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH
git -C linux diff --patch-with-stat --summary -R > old.patch
git -C linux restore rust/alloc

# Apply this patch.
git -C linux am rust-upgrade.patch

# Get the difference with respect to the new version.
git -C rust checkout $(linux/scripts/min-tool-version.sh rustc)
git -C linux ls-tree -r --name-only HEAD -- rust/alloc |
cut -d/ -f3- |
grep -Fv README.md |
xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH
git -C linux diff --patch-with-stat --summary -R > new.patch
git -C linux restore rust/alloc

Now one may check the `new.patch` to take a look at the additions (first
approach) or at the difference between those two patches (second
approach). For the latter, a side-by-side tool is recommended.

Link: https://rust-for-linux.com/rust-version-policy [1]
Link: https://github.com/Rust-for-Linux/linux/issues/2 [2]
Link: https://github.com/rust-lang/rust/pull/86844 [3]
Link: https://github.com/rust-lang/rust/pull/92048 [4]
Closes: https://github.com/Rust-for-Linux/linux/issues/68
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Trevor Gross <tmgross@umich.edu>
Link: https://lore.kernel.org/r/20230729220317.416771-1-ojeda@kernel.org
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

41bdc6de04-Jul-2023 Andrea Righi <andrea.righi@canonical.com>

btf, scripts: rust: drop is_rust_module.sh

With commit c1177979af9c ("btf, scripts: Exclude Rust CUs with pahole")
we are now able to use pahole directly to identify Rust compilation
units (CUs) and

btf, scripts: rust: drop is_rust_module.sh

With commit c1177979af9c ("btf, scripts: Exclude Rust CUs with pahole")
we are now able to use pahole directly to identify Rust compilation
units (CUs) and exclude them from generating BTF debugging information
(when DEBUG_INFO_BTF is enabled).

And if pahole doesn't support the --lang-exclude flag, we can't enable
both RUST and DEBUG_INFO_BTF at the same time.

So, in any case, the script is_rust_module.sh is just redundant and we
can drop it.

NOTE: we may also be able to drop the "Rust loadable module" mark
inside Rust modules, but it seems safer to keep it for now to make sure
we are not breaking any external tool that may potentially rely on it.

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Tested-by: Eric Curtin <ecurtin@redhat.com>
Reviewed-by: Eric Curtin <ecurtin@redhat.com>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Reviewed-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Acked-by: Daniel Xu <dxu@dxuuu.xyz>
Link: https://lore.kernel.org/r/20230704052136.155445-1-andrea.righi@canonical.com
[ Picked the `Reviewed-by`s from the old patch too. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

823d473728-Jun-2023 Gary Guo <gary@garyguo.net>

rust: macros: add `paste!` proc macro

This macro provides a flexible way to concatenated identifiers together
and it allows the resulting identifier to be used to declare new items,
which `concat_id

rust: macros: add `paste!` proc macro

This macro provides a flexible way to concatenated identifiers together
and it allows the resulting identifier to be used to declare new items,
which `concat_idents!` does not allow. It also allows identifiers to be
transformed before concatenated.

The `concat_idents!` example

let x_1 = 42;
let x_2 = concat_idents!(x, _1);
assert!(x_1 == x_2);

can be written with `paste!` macro like this:

let x_1 = 42;
let x_2 = paste!([<x _1>]);
assert!(x_1 == x_2);

However `paste!` macro is more flexible because it can be used to create
a new variable:

let x_1 = 42;
paste!(let [<x _2>] = [<x _1>];);
assert!(x_1 == x_2);

While this is not possible with `concat_idents!`.

This macro is similar to the `paste!` crate [1], but this is a fresh
implementation to avoid vendoring large amount of code directly. Also, I
have augmented it to provide a way to specify span of the resulting
token, allowing precise control.

For example, this code is broken because the variable is declared inside
the macro, so Rust macro hygiene rules prevents access from the outside:

macro_rules! m {
($id: ident) => {
// The resulting token has hygiene of the macro.
paste!(let [<$id>] = 1;)
}
}

m!(a);
let _ = a;

In this version of `paste!` macro I added a `span` modifier to allow
this:

macro_rules! m {
($id: ident) => {
// The resulting token has hygiene of `$id`.
paste!(let [<$id:span>] = 1;)
}
}

m!(a);
let _ = a;

Link: http://docs.rs/paste/ [1]
Signed-off-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Björn Roy Baron <bjorn3_gh@protonmail.com>
Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Link: https://lore.kernel.org/r/20230628171108.1150742-1-gary@garyguo.net
[ Added SPDX license identifier as discussed in the list and fixed typo. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

0b4e3b6f30-Jun-2023 Benno Lossin <benno.lossin@proton.me>

rust: types: make `Opaque` be `!Unpin`

Adds a `PhantomPinned` field to `Opaque<T>`. This removes the last Rust
guarantee: the assumption that the type `T` can be freely moved. This is
not the case f

rust: types: make `Opaque` be `!Unpin`

Adds a `PhantomPinned` field to `Opaque<T>`. This removes the last Rust
guarantee: the assumption that the type `T` can be freely moved. This is
not the case for many types from the C side (e.g. if they contain a
`struct list_head`). This change removes the need to add a
`PhantomPinned` field manually to Rust structs that contain C structs
which must not be moved.

Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Andreas Hindborg <a.hindborg@samsung.com>
Link: https://lore.kernel.org/r/20230630150216.109789-1-benno.lossin@proton.me
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

35cad61714-Jun-2023 Alice Ryhl <aliceryhl@google.com>

rust: make `UnsafeCell` the outer type in `Opaque`

When combining `UnsafeCell` with `MaybeUninit`, it is idiomatic to use
`UnsafeCell` as the outer type. Intuitively, this is because a
`MaybeUninit<

rust: make `UnsafeCell` the outer type in `Opaque`

When combining `UnsafeCell` with `MaybeUninit`, it is idiomatic to use
`UnsafeCell` as the outer type. Intuitively, this is because a
`MaybeUninit<T>` might not contain a `T`, but we always want the effect
of the `UnsafeCell`, even if the inner value is uninitialized.

Now, strictly speaking, this doesn't really make a difference. The
compiler will always apply the `UnsafeCell` effect even if the inner
value is uninitialized. But I think we should follow the convention
here.

Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Link: https://lore.kernel.org/r/20230614115328.2825961-1-aliceryhl@google.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

3fa7187e08-Aug-2023 Qingsong Chen <changxian.cqs@antgroup.com>

rust: macros: vtable: fix `HAS_*` redefinition (`gen_const_name`)

If we define the same function name twice in a trait (using `#[cfg]`),
the `vtable` macro will redefine its `gen_const_name`, e.g. t

rust: macros: vtable: fix `HAS_*` redefinition (`gen_const_name`)

If we define the same function name twice in a trait (using `#[cfg]`),
the `vtable` macro will redefine its `gen_const_name`, e.g. this will
define `HAS_BAR` twice:

#[vtable]
pub trait Foo {
#[cfg(CONFIG_X)]
fn bar();

#[cfg(not(CONFIG_X))]
fn bar(x: usize);
}

Fixes: b44becc5ee80 ("rust: macros: add `#[vtable]` proc macro")
Signed-off-by: Qingsong Chen <changxian.cqs@antgroup.com>
Reviewed-by: Andreas Hindborg <a.hindborg@samsung.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Sergio González Collado <sergio.collado@gmail.com>
Link: https://lore.kernel.org/r/20230808025404.2053471-1-changxian.cqs@antgroup.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...


/linux/.mailmap
/linux/Documentation/ABI/testing/sysfs-bus-cxl
/linux/Documentation/ABI/testing/sysfs-module
/linux/Documentation/admin-guide/devices.txt
/linux/Documentation/admin-guide/hw-vuln/spectre.rst
/linux/Documentation/admin-guide/kdump/vmcoreinfo.rst
/linux/Documentation/arch/arm64/silicon-errata.rst
/linux/Documentation/devicetree/bindings/net/mediatek,net.yaml
/linux/Documentation/devicetree/bindings/net/rockchip-dwmac.yaml
/linux/Documentation/devicetree/bindings/serial/atmel,at91-usart.yaml
/linux/Documentation/filesystems/locking.rst
/linux/Documentation/filesystems/porting.rst
/linux/Documentation/filesystems/tmpfs.rst
/linux/Documentation/networking/napi.rst
/linux/Documentation/process/embargoed-hardware-issues.rst
/linux/Documentation/process/security-bugs.rst
/linux/MAINTAINERS
/linux/Makefile
/linux/arch/arm/boot/dts/microchip/sam9x60.dtsi
/linux/arch/arm/boot/dts/nspire/nspire.dtsi
/linux/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53.dts
/linux/arch/arm/boot/dts/nxp/imx/imx6sll.dtsi
/linux/arch/arm/configs/axm55xx_defconfig
/linux/arch/arm/configs/davinci_all_defconfig
/linux/arch/arm/configs/exynos_defconfig
/linux/arch/arm/configs/footbridge_defconfig
/linux/arch/arm/configs/imx_v6_v7_defconfig
/linux/arch/arm/configs/keystone_defconfig
/linux/arch/arm/configs/lpc32xx_defconfig
/linux/arch/arm/configs/milbeaut_m10v_defconfig
/linux/arch/arm/configs/multi_v7_defconfig
/linux/arch/arm/configs/omap1_defconfig
/linux/arch/arm/configs/omap2plus_defconfig
/linux/arch/arm/configs/pxa_defconfig
/linux/arch/arm/configs/rpc_defconfig
/linux/arch/arm/configs/s5pv210_defconfig
/linux/arch/arm/configs/socfpga_defconfig
/linux/arch/arm/configs/spear13xx_defconfig
/linux/arch/arm/configs/spear3xx_defconfig
/linux/arch/arm/configs/spear6xx_defconfig
/linux/arch/arm/mach-pxa/sharpsl_pm.h
/linux/arch/arm/mach-pxa/spitz_pm.c
/linux/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
/linux/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts
/linux/arch/arm64/boot/dts/freescale/imx8mm-phyboard-polis-rdk.dts
/linux/arch/arm64/boot/dts/freescale/imx8mm-phycore-som.dtsi
/linux/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7903.dts
/linux/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7904.dts
/linux/arch/arm64/boot/dts/freescale/imx8mn-var-som.dtsi
/linux/arch/arm64/boot/dts/freescale/imx8mq.dtsi
/linux/arch/arm64/boot/dts/renesas/r9a07g044.dtsi
/linux/arch/arm64/boot/dts/renesas/r9a07g054.dtsi
/linux/arch/arm64/configs/defconfig
/linux/arch/arm64/kernel/fpsimd.c
/linux/arch/arm64/kernel/ptrace.c
/linux/arch/ia64/configs/bigsur_defconfig
/linux/arch/ia64/configs/generic_defconfig
/linux/arch/ia64/configs/gensparse_defconfig
/linux/arch/ia64/configs/tiger_defconfig
/linux/arch/loongarch/Kconfig
/linux/arch/loongarch/Makefile
/linux/arch/loongarch/configs/loongson3_defconfig
/linux/arch/loongarch/include/asm/fpu.h
/linux/arch/loongarch/kernel/setup.c
/linux/arch/loongarch/lib/clear_user.S
/linux/arch/loongarch/lib/copy_user.S
/linux/arch/loongarch/net/bpf_jit.h
/linux/arch/m68k/fpsp040/skeleton.S
/linux/arch/m68k/ifpsp060/os.S
/linux/arch/m68k/kernel/relocate_kernel.S
/linux/arch/mips/configs/bigsur_defconfig
/linux/arch/mips/configs/fuloong2e_defconfig
/linux/arch/mips/configs/ip22_defconfig
/linux/arch/mips/configs/ip32_defconfig
/linux/arch/mips/configs/jazz_defconfig
/linux/arch/mips/configs/lemote2f_defconfig
/linux/arch/mips/configs/loongson2k_defconfig
/linux/arch/mips/configs/loongson3_defconfig
/linux/arch/mips/configs/mtx1_defconfig
/linux/arch/mips/configs/pic32mzda_defconfig
/linux/arch/mips/configs/rm200_defconfig
/linux/arch/parisc/configs/generic-32bit_defconfig
/linux/arch/parisc/configs/generic-64bit_defconfig
/linux/arch/parisc/kernel/pci-dma.c
/linux/arch/parisc/kernel/unaligned.c
/linux/arch/parisc/mm/fixmap.c
/linux/arch/parisc/mm/init.c
/linux/arch/powerpc/configs/44x/sam440ep_defconfig
/linux/arch/powerpc/configs/85xx/stx_gp3_defconfig
/linux/arch/powerpc/configs/cell_defconfig
/linux/arch/powerpc/configs/ep8248e_defconfig
/linux/arch/powerpc/configs/mgcoge_defconfig
/linux/arch/powerpc/configs/pasemi_defconfig
/linux/arch/powerpc/configs/pmac32_defconfig
/linux/arch/powerpc/configs/powernv_defconfig
/linux/arch/powerpc/configs/ppc64_defconfig
/linux/arch/powerpc/configs/ppc64e_defconfig
/linux/arch/powerpc/configs/ppc6xx_defconfig
/linux/arch/powerpc/configs/ps3_defconfig
/linux/arch/powerpc/include/asm/word-at-a-time.h
/linux/arch/powerpc/kernel/head_64.S
/linux/arch/powerpc/kernel/trace/ftrace_mprofile.S
/linux/arch/powerpc/mm/init_64.c
/linux/arch/powerpc/platforms/85xx/smp.c
/linux/arch/powerpc/platforms/powermac/time.c
/linux/arch/riscv/configs/defconfig
/linux/arch/riscv/configs/rv32_defconfig
/linux/arch/riscv/include/asm/acpi.h
/linux/arch/riscv/kernel/acpi.c
/linux/arch/riscv/kernel/crash_core.c
/linux/arch/s390/configs/debug_defconfig
/linux/arch/s390/configs/defconfig
/linux/arch/s390/configs/zfcpdump_defconfig
/linux/arch/s390/include/uapi/asm/ptrace.h
/linux/arch/s390/kernel/sthyi.c
/linux/arch/s390/kvm/intercept.c
/linux/arch/s390/mm/vmem.c
/linux/arch/sh/configs/espt_defconfig
/linux/arch/sh/configs/sdk7780_defconfig
/linux/arch/sh/configs/sdk7786_defconfig
/linux/arch/sh/configs/sh03_defconfig
/linux/arch/sh/configs/sh7763rdp_defconfig
/linux/arch/sparc/configs/sparc32_defconfig
/linux/arch/um/configs/i386_defconfig
/linux/arch/um/configs/x86_64_defconfig
/linux/arch/um/os-Linux/sigio.c
/linux/arch/x86/configs/i386_defconfig
/linux/arch/x86/configs/x86_64_defconfig
/linux/arch/x86/entry/entry_64.S
/linux/arch/x86/hyperv/hv_apic.c
/linux/arch/x86/hyperv/hv_init.c
/linux/arch/x86/hyperv/hv_vtl.c
/linux/arch/x86/hyperv/ivm.c
/linux/arch/x86/hyperv/mmu.c
/linux/arch/x86/hyperv/nested.c
/linux/arch/x86/include/asm/kvm-x86-ops.h
/linux/arch/x86/include/asm/kvm_host.h
/linux/arch/x86/include/asm/microcode.h
/linux/arch/x86/include/asm/microcode_amd.h
/linux/arch/x86/include/asm/mshyperv.h
/linux/arch/x86/include/asm/msr-index.h
/linux/arch/x86/kernel/cpu/amd.c
/linux/arch/x86/kernel/cpu/bugs.c
/linux/arch/x86/kernel/cpu/common.c
/linux/arch/x86/kernel/cpu/mce/amd.c
/linux/arch/x86/kernel/traps.c
/linux/arch/x86/kvm/lapic.c
/linux/arch/x86/kvm/svm/svm.c
/linux/arch/x86/kvm/vmx/vmenter.S
/linux/arch/x86/kvm/vmx/vmx.c
/linux/arch/x86/kvm/vmx/vmx_ops.h
/linux/arch/x86/kvm/x86.c
/linux/drivers/acpi/arm64/iort.c
/linux/drivers/ata/libata-core.c
/linux/drivers/ata/libata-scsi.c
/linux/drivers/ata/pata_arasan_cf.c
/linux/drivers/ata/pata_ns87415.c
/linux/drivers/ata/pata_octeon_cf.c
/linux/drivers/base/power/power.h
/linux/drivers/base/power/wakeirq.c
/linux/drivers/block/rbd.c
/linux/drivers/block/ublk_drv.c
/linux/drivers/char/tpm/st33zp24/i2c.c
/linux/drivers/char/tpm/tpm_i2c_atmel.c
/linux/drivers/char/tpm/tpm_i2c_infineon.c
/linux/drivers/char/tpm/tpm_i2c_nuvoton.c
/linux/drivers/char/tpm/tpm_tis_core.c
/linux/drivers/char/tpm/tpm_tis_i2c.c
/linux/drivers/char/tpm/tpm_tis_i2c_cr50.c
/linux/drivers/clk/Kconfig
/linux/drivers/clk/imx/clk-imx93.c
/linux/drivers/clk/mediatek/clk-mt8183.c
/linux/drivers/clk/meson/clk-pll.c
/linux/drivers/cxl/Kconfig
/linux/drivers/cxl/acpi.c
/linux/drivers/cxl/core/mbox.c
/linux/drivers/cxl/core/memdev.c
/linux/drivers/cxl/cxlmem.h
/linux/drivers/firmware/arm_scmi/mailbox.c
/linux/drivers/firmware/arm_scmi/raw_mode.c
/linux/drivers/firmware/arm_scmi/smc.c
/linux/drivers/firmware/smccc/soc_id.c
/linux/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
/linux/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
/linux/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c
/linux/drivers/gpu/drm/amd/amdkfd/kfd_debug.c
/linux/drivers/gpu/drm/amd/amdkfd/kfd_debug.h
/linux/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
/linux/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
/linux/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
/linux/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c
/linux/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c
/linux/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
/linux/drivers/gpu/drm/i915/display/intel_dpt.c
/linux/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
/linux/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
/linux/drivers/gpu/drm/i915/gt/gen8_engine_cs.h
/linux/drivers/gpu/drm/i915/gt/intel_gpu_commands.h
/linux/drivers/gpu/drm/i915/gt/intel_gt_regs.h
/linux/drivers/gpu/drm/i915/gt/intel_lrc.c
/linux/drivers/gpu/drm/i915/gvt/edid.c
/linux/drivers/gpu/drm/i915/i915_active.c
/linux/drivers/gpu/drm/i915/i915_request.c
/linux/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
/linux/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
/linux/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h
/linux/drivers/gpu/drm/msm/adreno/adreno_device.c
/linux/drivers/gpu/drm/msm/adreno/adreno_gpu.h
/linux/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h
/linux/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
/linux/drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c
/linux/drivers/gpu/drm/msm/msm_fence.c
/linux/drivers/gpu/drm/msm/msm_gem_submit.c
/linux/drivers/gpu/drm/msm/msm_mdss.c
/linux/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
/linux/drivers/gpu/drm/ttm/ttm_bo.c
/linux/drivers/hv/connection.c
/linux/drivers/hv/hv_balloon.c
/linux/drivers/hv/hv_common.c
/linux/drivers/hwmon/aquacomputer_d5next.c
/linux/drivers/hwmon/k10temp.c
/linux/drivers/hwmon/nct6775-core.c
/linux/drivers/hwmon/nct6775-platform.c
/linux/drivers/hwmon/nct6775.h
/linux/drivers/hwmon/nct7802.c
/linux/drivers/hwmon/oxp-sensors.c
/linux/drivers/hwmon/pmbus/pmbus_core.c
/linux/drivers/infiniband/core/cma.c
/linux/drivers/infiniband/hw/bnxt_re/ib_verbs.c
/linux/drivers/infiniband/hw/bnxt_re/qplib_fp.c
/linux/drivers/infiniband/hw/bnxt_re/qplib_fp.h
/linux/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
/linux/drivers/infiniband/hw/irdma/ctrl.c
/linux/drivers/infiniband/hw/irdma/defs.h
/linux/drivers/infiniband/hw/irdma/hw.c
/linux/drivers/infiniband/hw/irdma/main.h
/linux/drivers/infiniband/hw/irdma/puda.c
/linux/drivers/infiniband/hw/irdma/type.h
/linux/drivers/infiniband/hw/irdma/uk.c
/linux/drivers/infiniband/hw/irdma/utils.c
/linux/drivers/infiniband/hw/mlx4/qp.c
/linux/drivers/infiniband/hw/mthca/mthca_qp.c
/linux/drivers/infiniband/sw/rxe/rxe_mw.c
/linux/drivers/iommu/iommufd/device.c
/linux/drivers/iommu/iommufd/iommufd_private.h
/linux/drivers/iommu/iommufd/main.c
/linux/drivers/iommu/iommufd/pages.c
/linux/drivers/irqchip/irq-bcm6345-l1.c
/linux/drivers/irqchip/irq-gic-v3-its.c
/linux/drivers/irqchip/irq-gic-v3.c
/linux/drivers/isdn/hardware/mISDN/hfcpci.c
/linux/drivers/md/dm-cache-policy-smq.c
/linux/drivers/md/dm-integrity.c
/linux/drivers/md/dm-raid.c
/linux/drivers/md/md.c
/linux/drivers/media/cec/usb/pulse8/pulse8-cec.c
/linux/drivers/media/i2c/tc358746.c
/linux/drivers/media/pci/cx23885/cx23885-dvb.c
/linux/drivers/media/platform/amphion/vpu_core.c
/linux/drivers/media/platform/amphion/vpu_mbox.c
/linux/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c
/linux/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c
/linux/drivers/media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.c
/linux/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c
/linux/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h
/linux/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
/linux/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h
/linux/drivers/media/platform/verisilicon/hantro.h
/linux/drivers/media/platform/verisilicon/hantro_postproc.c
/linux/drivers/memory/tegra/mc.c
/linux/drivers/memory/tegra/tegra194.c
/linux/drivers/memory/tegra/tegra234.c
/linux/drivers/misc/sram.c
/linux/drivers/mtd/nand/raw/fsl_upm.c
/linux/drivers/mtd/nand/raw/meson_nand.c
/linux/drivers/mtd/nand/raw/omap_elm.c
/linux/drivers/mtd/nand/raw/rockchip-nand-controller.c
/linux/drivers/mtd/nand/spi/toshiba.c
/linux/drivers/mtd/nand/spi/winbond.c
/linux/drivers/mtd/spi-nor/spansion.c
/linux/drivers/net/bonding/bond_main.c
/linux/drivers/net/can/usb/gs_usb.c
/linux/drivers/net/dsa/bcm_sf2.c
/linux/drivers/net/dsa/microchip/ksz_common.c
/linux/drivers/net/dsa/qca/qca8k-8xxx.c
/linux/drivers/net/dsa/qca/qca8k-common.c
/linux/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
/linux/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
/linux/drivers/net/ethernet/atheros/atlx/atl1.c
/linux/drivers/net/ethernet/broadcom/bnxt/bnxt.c
/linux/drivers/net/ethernet/broadcom/bnxt/bnxt.h
/linux/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
/linux/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h
/linux/drivers/net/ethernet/emulex/benet/be_main.c
/linux/drivers/net/ethernet/freescale/fec_main.c
/linux/drivers/net/ethernet/hisilicon/hns3/hnae3.h
/linux/drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_cmd.c
/linux/drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_cmd.h
/linux/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h
/linux/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
/linux/drivers/net/ethernet/intel/iavf/iavf_main.c
/linux/drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c
/linux/drivers/net/ethernet/intel/ice/ice_main.c
/linux/drivers/net/ethernet/intel/igc/igc_main.c
/linux/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
/linux/drivers/net/ethernet/korina.c
/linux/drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_mbox.c
/linux/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
/linux/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.h
/linux/drivers/net/ethernet/marvell/prestera/prestera_pci.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_debugfs.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h
/linux/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/fs_core.h
/linux/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/main.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_cmd.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste_v0.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste_v1.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/mlx5dr.h
/linux/drivers/net/ethernet/qlogic/qed/qed_dev_api.h
/linux/drivers/net/ethernet/qlogic/qed/qed_fcoe.c
/linux/drivers/net/ethernet/qlogic/qed/qed_fcoe.h
/linux/drivers/net/ethernet/qlogic/qed/qed_hw.c
/linux/drivers/net/ethernet/qlogic/qed/qed_iscsi.c
/linux/drivers/net/ethernet/qlogic/qed/qed_iscsi.h
/linux/drivers/net/ethernet/qlogic/qed/qed_l2.c
/linux/drivers/net/ethernet/qlogic/qed/qed_l2.h
/linux/drivers/net/ethernet/qlogic/qed/qed_main.c
/linux/drivers/net/ethernet/sfc/falcon/selftest.c
/linux/drivers/net/ethernet/sfc/selftest.c
/linux/drivers/net/ethernet/sfc/siena/selftest.c
/linux/drivers/net/ethernet/socionext/netsec.c
/linux/drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c
/linux/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
/linux/drivers/net/ethernet/xilinx/ll_temac_main.c
/linux/drivers/net/ipa/ipa_table.c
/linux/drivers/net/macvlan.c
/linux/drivers/net/phy/marvell10g.c
/linux/drivers/net/tap.c
/linux/drivers/net/team/team.c
/linux/drivers/net/tun.c
/linux/drivers/net/usb/cdc_ether.c
/linux/drivers/net/usb/lan78xx.c
/linux/drivers/net/usb/qmi_wwan.c
/linux/drivers/net/usb/zaurus.c
/linux/drivers/net/virtio_net.c
/linux/drivers/net/vxlan/vxlan_core.c
/linux/drivers/net/wireless/ath/ath11k/ahb.c
/linux/drivers/net/wireless/ath/ath11k/pcic.c
/linux/drivers/net/wireless/ath/ath6kl/Makefile
/linux/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
/linux/drivers/net/wireless/legacy/rayctl.h
/linux/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
/linux/drivers/parport/parport_gsc.c
/linux/drivers/parport/parport_gsc.h
/linux/drivers/phy/hisilicon/phy-hisi-inno-usb2.c
/linux/drivers/phy/mediatek/phy-mtk-dp.c
/linux/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c
/linux/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c
/linux/drivers/platform/x86/amd/pmc-quirks.c
/linux/drivers/platform/x86/amd/pmf/acpi.c
/linux/drivers/platform/x86/amd/pmf/core.c
/linux/drivers/platform/x86/amd/pmf/pmf.h
/linux/drivers/platform/x86/amd/pmf/sps.c
/linux/drivers/platform/x86/asus-wmi.c
/linux/drivers/platform/x86/huawei-wmi.c
/linux/drivers/platform/x86/intel/hid.c
/linux/drivers/platform/x86/msi-laptop.c
/linux/drivers/platform/x86/serial-multi-instantiate.c
/linux/drivers/platform/x86/think-lmi.c
/linux/drivers/platform/x86/touchscreen_dmi.c
/linux/drivers/powercap/intel_rapl_common.c
/linux/drivers/powercap/intel_rapl_msr.c
/linux/drivers/powercap/intel_rapl_tpmi.c
/linux/drivers/regulator/mt6358-regulator.c
/linux/drivers/s390/block/dasd.c
/linux/drivers/s390/block/dasd_3990_erp.c
/linux/drivers/s390/block/dasd_ioctl.c
/linux/drivers/s390/net/qeth_core.h
/linux/drivers/s390/net/qeth_core_main.c
/linux/drivers/s390/net/qeth_l2_main.c
/linux/drivers/s390/net/qeth_l3_main.c
/linux/drivers/s390/scsi/zfcp_fc.c
/linux/drivers/scsi/pm8001/pm8001_init.c
/linux/drivers/scsi/sd.c
/linux/drivers/scsi/sg.c
/linux/drivers/scsi/storvsc_drv.c
/linux/drivers/soc/imx/imx8mp-blk-ctrl.c
/linux/drivers/soundwire/amd_manager.c
/linux/drivers/soundwire/bus.c
/linux/drivers/soundwire/qcom.c
/linux/drivers/spi/spi-qcom-qspi.c
/linux/drivers/staging/fbtft/fb_ili9341.c
/linux/drivers/staging/ks7010/ks_wlan_net.c
/linux/drivers/staging/media/atomisp/Kconfig
/linux/drivers/staging/rtl8712/rtl871x_xmit.c
/linux/drivers/staging/rtl8712/xmit_linux.c
/linux/drivers/thermal/intel/int340x_thermal/processor_thermal_rapl.c
/linux/drivers/thermal/thermal_core.c
/linux/drivers/thermal/thermal_of.c
/linux/drivers/tty/n_gsm.c
/linux/drivers/tty/serial/8250/8250_dwlib.c
/linux/drivers/tty/serial/qcom_geni_serial.c
/linux/drivers/tty/serial/sh-sci.c
/linux/drivers/tty/serial/sifive.c
/linux/drivers/tty/serial/ucc_uart.c
/linux/drivers/tty/tty_io.c
/linux/drivers/usb/cdns3/cdns3-gadget.c
/linux/drivers/usb/core/quirks.c
/linux/drivers/usb/dwc3/core.c
/linux/drivers/usb/dwc3/core.h
/linux/drivers/usb/dwc3/dwc3-pci.c
/linux/drivers/usb/gadget/composite.c
/linux/drivers/usb/gadget/legacy/raw_gadget.c
/linux/drivers/usb/gadget/udc/core.c
/linux/drivers/usb/gadget/udc/tegra-xudc.c
/linux/drivers/usb/host/ohci-at91.c
/linux/drivers/usb/host/xhci-mtk.c
/linux/drivers/usb/host/xhci-pci.c
/linux/drivers/usb/host/xhci-ring.c
/linux/drivers/usb/host/xhci-tegra.c
/linux/drivers/usb/misc/ehset.c
/linux/drivers/usb/serial/option.c
/linux/drivers/usb/serial/usb-serial-simple.c
/linux/drivers/usb/typec/class.c
/linux/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c
/linux/drivers/usb/typec/ucsi/ucsi.c
/linux/drivers/xen/events/events_base.c
/linux/drivers/xen/evtchn.c
/linux/drivers/xen/grant-table.c
/linux/drivers/xen/xenbus/xenbus_probe.c
/linux/fs/9p/fid.h
/linux/fs/9p/v9fs.c
/linux/fs/9p/v9fs.h
/linux/fs/9p/vfs_dir.c
/linux/fs/9p/vfs_file.c
/linux/fs/9p/vfs_inode.c
/linux/fs/9p/vfs_inode_dotl.c
/linux/fs/autofs/Kconfig
/linux/fs/btrfs/block-group.c
/linux/fs/btrfs/block-group.h
/linux/fs/btrfs/block-rsv.c
/linux/fs/btrfs/disk-io.c
/linux/fs/btrfs/free-space-tree.c
/linux/fs/btrfs/transaction.c
/linux/fs/btrfs/zoned.c
/linux/fs/ceph/dir.c
/linux/fs/ceph/mds_client.c
/linux/fs/ceph/mds_client.h
/linux/fs/ceph/metric.c
/linux/fs/ceph/super.c
/linux/fs/coda/dir.c
/linux/fs/erofs/super.c
/linux/fs/erofs/zdata.c
/linux/fs/exfat/balloc.c
/linux/fs/exfat/dir.c
/linux/fs/exportfs/expfs.c
/linux/fs/file.c
/linux/fs/jfs/namei.c
/linux/fs/nfsd/nfs4state.c
/linux/fs/nfsd/vfs.c
/linux/fs/nls/nls_base.c
/linux/fs/ntfs/dir.c
/linux/fs/ocfs2/file.c
/linux/fs/open.c
/linux/fs/overlayfs/readdir.c
/linux/fs/overlayfs/super.c
/linux/fs/proc/base.c
/linux/fs/proc/vmcore.c
/linux/fs/readdir.c
/linux/fs/smb/client/cifsglob.h
/linux/fs/smb/client/cifssmb.c
/linux/fs/smb/client/connect.c
/linux/fs/smb/client/dfs.c
/linux/fs/smb/client/ioctl.c
/linux/fs/smb/client/misc.c
/linux/fs/smb/client/sess.c
/linux/fs/smb/client/smb2pdu.c
/linux/fs/smb/server/ksmbd_netlink.h
/linux/fs/smb/server/server.c
/linux/fs/smb/server/smb2pdu.c
/linux/fs/smb/server/smb_common.c
/linux/fs/smb/server/smb_common.h
/linux/fs/smb/server/vfs.c
/linux/fs/smb/server/vfs.h
/linux/fs/splice.c
/linux/fs/vboxsf/dir.c
/linux/include/asm-generic/mshyperv.h
/linux/include/asm-generic/word-at-a-time.h
/linux/include/drm/drm_fb_helper.h
/linux/include/linux/cpumask.h
/linux/include/linux/fs.h
/linux/include/linux/ftrace.h
/linux/include/linux/hyperv.h
/linux/include/linux/intel_rapl.h
/linux/include/linux/mm.h
/linux/include/linux/mm_types.h
/linux/include/linux/mmap_lock.h
/linux/include/linux/nls.h
/linux/include/linux/pm_wakeirq.h
/linux/include/linux/spi/corgi_lcd.h
/linux/include/linux/spi/spi-mem.h
/linux/include/linux/thermal.h
/linux/include/net/gro.h
/linux/include/net/inet_sock.h
/linux/include/net/ip.h
/linux/include/net/ipv6.h
/linux/include/net/route.h
/linux/include/net/vxlan.h
/linux/include/scsi/scsi_device.h
/linux/include/soc/tegra/mc.h
/linux/include/uapi/linux/blkzoned.h
/linux/include/uapi/linux/if_packet.h
/linux/include/uapi/linux/pkt_cls.h
/linux/include/uapi/xen/evtchn.h
/linux/include/xen/events.h
/linux/io_uring/io_uring.c
/linux/kernel/bpf/cpumap.c
/linux/kernel/kprobes.c
/linux/kernel/locking/rtmutex.c
/linux/kernel/locking/rtmutex_api.c
/linux/kernel/locking/rtmutex_common.h
/linux/kernel/locking/ww_mutex.h
/linux/kernel/signal.c
/linux/kernel/trace/bpf_trace.c
/linux/kernel/trace/ring_buffer.c
/linux/kernel/trace/trace_events.c
/linux/kernel/trace/trace_events_synth.c
/linux/kernel/trace/trace_events_trigger.c
/linux/kernel/trace/trace_probe.c
/linux/kernel/trace/trace_seq.c
/linux/lib/Makefile
/linux/lib/cpumask.c
/linux/lib/genalloc.c
/linux/lib/test_bitmap.c
/linux/mm/damon/core-test.h
/linux/mm/memory-failure.c
/linux/mm/memory.c
/linux/mm/mempolicy.c
/linux/mm/mmap.c
/linux/mm/pagewalk.c
/linux/mm/shmem.c
/linux/net/9p/client.c
/linux/net/9p/trans_virtio.c
/linux/net/can/raw.c
/linux/net/ceph/messenger.c
/linux/net/ceph/osd_client.c
/linux/net/core/bpf_sk_storage.c
/linux/net/core/rtnetlink.c
/linux/net/core/sock.c
/linux/net/core/sock_map.c
/linux/net/dcb/dcbnl.c
/linux/net/dccp/ipv6.c
/linux/net/dsa/port.c
/linux/net/ipv4/inet_diag.c
/linux/net/ipv4/ip_output.c
/linux/net/ipv4/ip_sockglue.c
/linux/net/ipv4/raw.c
/linux/net/ipv4/route.c
/linux/net/ipv4/tcp_ipv4.c
/linux/net/ipv4/tcp_metrics.c
/linux/net/ipv4/udp.c
/linux/net/ipv4/udp_offload.c
/linux/net/ipv6/addrconf.c
/linux/net/ipv6/ip6mr.c
/linux/net/ipv6/ping.c
/linux/net/ipv6/raw.c
/linux/net/ipv6/route.c
/linux/net/ipv6/tcp_ipv6.c
/linux/net/ipv6/udp.c
/linux/net/ipv6/udp_offload.c
/linux/net/l2tp/l2tp_ip6.c
/linux/net/mptcp/protocol.c
/linux/net/mptcp/sockopt.c
/linux/net/netfilter/nf_tables_api.c
/linux/net/netfilter/nft_immediate.c
/linux/net/netfilter/nft_set_rbtree.c
/linux/net/netfilter/nft_socket.c
/linux/net/netfilter/xt_socket.c
/linux/net/packet/af_packet.c
/linux/net/sched/cls_flower.c
/linux/net/sched/cls_fw.c
/linux/net/sched/cls_route.c
/linux/net/sched/cls_u32.c
/linux/net/sched/em_meta.c
/linux/net/sched/sch_mqprio.c
/linux/net/sched/sch_taprio.c
/linux/net/smc/af_smc.c
/linux/net/tipc/crypto.c
/linux/net/tipc/node.c
/linux/net/unix/af_unix.c
/linux/net/wireless/scan.c
/linux/net/xdp/xsk.c
/linux/net/xfrm/xfrm_policy.c
macros/vtable.rs
/linux/scripts/spelling.txt
/linux/security/keys/keyctl.c
/linux/sound/core/seq/seq_ump_client.c
/linux/sound/pci/hda/patch_realtek.c
/linux/sound/soc/atmel/atmel-i2s.c
/linux/sound/soc/codecs/da7219-aad.c
/linux/sound/soc/codecs/es8316.c
/linux/sound/soc/codecs/nau8821.c
/linux/sound/soc/codecs/rt5682-sdw.c
/linux/sound/soc/codecs/rt711-sdca-sdw.c
/linux/sound/soc/codecs/rt711-sdw.c
/linux/sound/soc/codecs/rt712-sdca-sdw.c
/linux/sound/soc/codecs/rt722-sdca-sdw.c
/linux/sound/soc/codecs/wm8904.c
/linux/sound/soc/fsl/fsl_spdif.c
/linux/sound/usb/mixer_maps.c
/linux/sound/usb/quirks.c
/linux/tools/hv/vmbus_testing
/linux/tools/net/ynl/lib/ynl.py
/linux/tools/perf/arch/arm64/util/pmu.c
/linux/tools/perf/arch/powerpc/util/skip-callchain-idx.c
/linux/tools/perf/tests/parse-events.c
/linux/tools/perf/tests/shell/test_uprobe_from_different_cu.sh
/linux/tools/perf/util/parse-events.c
/linux/tools/perf/util/pmu.c
/linux/tools/perf/util/pmu.h
/linux/tools/perf/util/pmus.c
/linux/tools/testing/cxl/test/cxl.c
/linux/tools/testing/selftests/ftrace/test.d/dynevent/add_remove_btfarg.tc
/linux/tools/testing/selftests/kvm/include/kvm_util_base.h
/linux/tools/testing/selftests/kvm/kvm_binary_stats_test.c
/linux/tools/testing/selftests/kvm/x86_64/set_sregs_test.c
/linux/tools/testing/selftests/net/mptcp/mptcp_join.sh
/linux/tools/testing/selftests/net/so_incoming_cpu.c
/linux/tools/testing/selftests/riscv/vector/vstate_exec_nolibc.c
/linux/tools/testing/selftests/rseq/rseq.c
/linux/tools/testing/selftests/tc-testing/tc-tests/qdiscs/taprio.json
/linux/tools/testing/vsock/Makefile
/linux/virt/kvm/kvm_main.c
49a9ef7611-Apr-2023 Vinay Varma <varmavinaym@gmail.com>

scripts: `make rust-analyzer` for out-of-tree modules

Adds support for out-of-tree rust modules to use the `rust-analyzer`
make target to generate the rust-project.json file.

The change involves ad

scripts: `make rust-analyzer` for out-of-tree modules

Adds support for out-of-tree rust modules to use the `rust-analyzer`
make target to generate the rust-project.json file.

The change involves adding an optional parameter `external_src` to the
`generate_rust_analyzer.py` which expects the path to the out-of-tree
module's source directory. When this parameter is passed, I have chosen
not to add the non-core modules (samples and drivers) into the result
since these are not expected to be used in third party modules. Related
changes are also made to the Makefile and rust/Makefile allowing the
`rust-analyzer` target to be used for out-of-tree modules as well.

Link: https://github.com/Rust-for-Linux/linux/pull/914
Link: https://github.com/Rust-for-Linux/rust-out-of-tree-module/pull/2
Signed-off-by: Vinay Varma <varmavinaym@gmail.com>
Link: https://lore.kernel.org/r/20230411091714.130525-1-varmavinaym@gmail.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

0beaf54630-Jul-2023 Björn Roy Baron <bjorn3_gh@protonmail.com>

rust: alloc: Add realloc and alloc_zeroed to the GlobalAlloc impl

While there are default impls for these methods, using the respective C
api's is faster. Currently neither the existing nor these ne

rust: alloc: Add realloc and alloc_zeroed to the GlobalAlloc impl

While there are default impls for these methods, using the respective C
api's is faster. Currently neither the existing nor these new
GlobalAlloc method implementations are actually called. Instead the
__rust_* function defined below the GlobalAlloc impl are used. With
rustc 1.71 these functions will be gone and all allocation calls will go
through the GlobalAlloc implementation.

Link: https://github.com/Rust-for-Linux/linux/issues/68
Signed-off-by: Björn Roy Baron <bjorn3_gh@protonmail.com>
[boqun: add size adjustment for alignment requirement]
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Andreas Hindborg <a.hindborg@samsung.com>
Link: https://lore.kernel.org/r/20230730012905.643822-4-boqun.feng@gmail.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

f39a97d030-Jul-2023 Boqun Feng <boqun.feng@gmail.com>

rust: allocator: Use krealloc_aligned() in KernelAllocator::alloc

This fixes the potential issue that when KernelAllocator is used, the
allocation may be mis-aligned due to SLAB's alignment guarante

rust: allocator: Use krealloc_aligned() in KernelAllocator::alloc

This fixes the potential issue that when KernelAllocator is used, the
allocation may be mis-aligned due to SLAB's alignment guarantee.

Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Andreas Hindborg <a.hindborg@samsung.com>
Link: https://lore.kernel.org/r/20230730012905.643822-3-boqun.feng@gmail.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

917b2e0026-Apr-2023 Ariel Miculas <amiculas@cisco.com>

rust: helpers: sort includes alphabetically in rust/helpers.c

Sort the #include directives of rust/helpers.c alphabetically and add a
comment specifying this. The reason for this is to improve reada

rust: helpers: sort includes alphabetically in rust/helpers.c

Sort the #include directives of rust/helpers.c alphabetically and add a
comment specifying this. The reason for this is to improve readability
and to be consistent with the other files with a similar approach within
'rust/'.

Suggested-by: Miguel Ojeda <ojeda@kernel.org>
Link: https://github.com/Rust-for-Linux/linux/issues/1003
Signed-off-by: Ariel Miculas <amiculas@cisco.com>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://lore.kernel.org/r/20230426204923.16195-1-amiculas@cisco.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

db7193a507-May-2023 Ben Gooding <ben.gooding.dev@gmail.com>

rust: lock: Add intra-doc links to the Backend trait

Add missing intra-doc links to the Backend trait to make navigating the
documentation easier.

Suggested-by: Benno Lossin <benno.lossin@proton.me

rust: lock: Add intra-doc links to the Backend trait

Add missing intra-doc links to the Backend trait to make navigating the
documentation easier.

Suggested-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/rust-for-linux/94625fe6-b87a-a8f0-5b2a-a8152d5f7436@proton.me/
Link: https://github.com/Rust-for-Linux/linux/issues/1001
Signed-off-by: Ben Gooding <ben.gooding.dev@gmail.com>
Link: https://lore.kernel.org/r/20230509202314.8248-1-ben.gooding.dev@gmail.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...


/linux/.mailmap
/linux/Documentation/ABI/testing/sysfs-bus-cxl
/linux/Documentation/ABI/testing/sysfs-module
/linux/Documentation/admin-guide/devices.txt
/linux/Documentation/admin-guide/hw-vuln/spectre.rst
/linux/Documentation/admin-guide/kdump/vmcoreinfo.rst
/linux/Documentation/arch/arm64/silicon-errata.rst
/linux/Documentation/devicetree/bindings/net/mediatek,net.yaml
/linux/Documentation/devicetree/bindings/net/rockchip-dwmac.yaml
/linux/Documentation/devicetree/bindings/serial/atmel,at91-usart.yaml
/linux/Documentation/filesystems/locking.rst
/linux/Documentation/filesystems/porting.rst
/linux/Documentation/filesystems/tmpfs.rst
/linux/Documentation/networking/napi.rst
/linux/Documentation/process/embargoed-hardware-issues.rst
/linux/Documentation/process/security-bugs.rst
/linux/MAINTAINERS
/linux/Makefile
/linux/arch/arm/boot/dts/microchip/sam9x60.dtsi
/linux/arch/arm/boot/dts/nspire/nspire.dtsi
/linux/arch/arm/boot/dts/nxp/imx/imx53-sk-imx53.dts
/linux/arch/arm/boot/dts/nxp/imx/imx6sll.dtsi
/linux/arch/arm/configs/axm55xx_defconfig
/linux/arch/arm/configs/davinci_all_defconfig
/linux/arch/arm/configs/exynos_defconfig
/linux/arch/arm/configs/footbridge_defconfig
/linux/arch/arm/configs/imx_v6_v7_defconfig
/linux/arch/arm/configs/keystone_defconfig
/linux/arch/arm/configs/lpc32xx_defconfig
/linux/arch/arm/configs/milbeaut_m10v_defconfig
/linux/arch/arm/configs/multi_v7_defconfig
/linux/arch/arm/configs/omap1_defconfig
/linux/arch/arm/configs/omap2plus_defconfig
/linux/arch/arm/configs/pxa_defconfig
/linux/arch/arm/configs/rpc_defconfig
/linux/arch/arm/configs/s5pv210_defconfig
/linux/arch/arm/configs/socfpga_defconfig
/linux/arch/arm/configs/spear13xx_defconfig
/linux/arch/arm/configs/spear3xx_defconfig
/linux/arch/arm/configs/spear6xx_defconfig
/linux/arch/arm/mach-pxa/sharpsl_pm.h
/linux/arch/arm/mach-pxa/spitz_pm.c
/linux/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
/linux/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts
/linux/arch/arm64/boot/dts/freescale/imx8mm-phyboard-polis-rdk.dts
/linux/arch/arm64/boot/dts/freescale/imx8mm-phycore-som.dtsi
/linux/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7903.dts
/linux/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7904.dts
/linux/arch/arm64/boot/dts/freescale/imx8mn-var-som.dtsi
/linux/arch/arm64/boot/dts/freescale/imx8mq.dtsi
/linux/arch/arm64/boot/dts/renesas/r9a07g044.dtsi
/linux/arch/arm64/boot/dts/renesas/r9a07g054.dtsi
/linux/arch/arm64/configs/defconfig
/linux/arch/arm64/kernel/fpsimd.c
/linux/arch/arm64/kernel/ptrace.c
/linux/arch/ia64/configs/bigsur_defconfig
/linux/arch/ia64/configs/generic_defconfig
/linux/arch/ia64/configs/gensparse_defconfig
/linux/arch/ia64/configs/tiger_defconfig
/linux/arch/loongarch/Kconfig
/linux/arch/loongarch/Makefile
/linux/arch/loongarch/configs/loongson3_defconfig
/linux/arch/loongarch/include/asm/fpu.h
/linux/arch/loongarch/kernel/setup.c
/linux/arch/loongarch/lib/clear_user.S
/linux/arch/loongarch/lib/copy_user.S
/linux/arch/loongarch/net/bpf_jit.h
/linux/arch/m68k/fpsp040/skeleton.S
/linux/arch/m68k/ifpsp060/os.S
/linux/arch/m68k/kernel/relocate_kernel.S
/linux/arch/mips/configs/bigsur_defconfig
/linux/arch/mips/configs/fuloong2e_defconfig
/linux/arch/mips/configs/ip22_defconfig
/linux/arch/mips/configs/ip32_defconfig
/linux/arch/mips/configs/jazz_defconfig
/linux/arch/mips/configs/lemote2f_defconfig
/linux/arch/mips/configs/loongson2k_defconfig
/linux/arch/mips/configs/loongson3_defconfig
/linux/arch/mips/configs/mtx1_defconfig
/linux/arch/mips/configs/pic32mzda_defconfig
/linux/arch/mips/configs/rm200_defconfig
/linux/arch/parisc/configs/generic-32bit_defconfig
/linux/arch/parisc/configs/generic-64bit_defconfig
/linux/arch/parisc/kernel/pci-dma.c
/linux/arch/parisc/kernel/unaligned.c
/linux/arch/parisc/mm/fixmap.c
/linux/arch/parisc/mm/init.c
/linux/arch/powerpc/configs/44x/sam440ep_defconfig
/linux/arch/powerpc/configs/85xx/stx_gp3_defconfig
/linux/arch/powerpc/configs/cell_defconfig
/linux/arch/powerpc/configs/ep8248e_defconfig
/linux/arch/powerpc/configs/mgcoge_defconfig
/linux/arch/powerpc/configs/pasemi_defconfig
/linux/arch/powerpc/configs/pmac32_defconfig
/linux/arch/powerpc/configs/powernv_defconfig
/linux/arch/powerpc/configs/ppc64_defconfig
/linux/arch/powerpc/configs/ppc64e_defconfig
/linux/arch/powerpc/configs/ppc6xx_defconfig
/linux/arch/powerpc/configs/ps3_defconfig
/linux/arch/powerpc/include/asm/word-at-a-time.h
/linux/arch/powerpc/kernel/head_64.S
/linux/arch/powerpc/kernel/trace/ftrace_mprofile.S
/linux/arch/powerpc/mm/init_64.c
/linux/arch/powerpc/platforms/85xx/smp.c
/linux/arch/powerpc/platforms/powermac/time.c
/linux/arch/riscv/configs/defconfig
/linux/arch/riscv/configs/rv32_defconfig
/linux/arch/riscv/include/asm/acpi.h
/linux/arch/riscv/kernel/acpi.c
/linux/arch/riscv/kernel/crash_core.c
/linux/arch/s390/configs/debug_defconfig
/linux/arch/s390/configs/defconfig
/linux/arch/s390/configs/zfcpdump_defconfig
/linux/arch/s390/include/uapi/asm/ptrace.h
/linux/arch/s390/kernel/sthyi.c
/linux/arch/s390/kvm/intercept.c
/linux/arch/s390/mm/vmem.c
/linux/arch/sh/configs/espt_defconfig
/linux/arch/sh/configs/sdk7780_defconfig
/linux/arch/sh/configs/sdk7786_defconfig
/linux/arch/sh/configs/sh03_defconfig
/linux/arch/sh/configs/sh7763rdp_defconfig
/linux/arch/sparc/configs/sparc32_defconfig
/linux/arch/um/configs/i386_defconfig
/linux/arch/um/configs/x86_64_defconfig
/linux/arch/um/os-Linux/sigio.c
/linux/arch/x86/configs/i386_defconfig
/linux/arch/x86/configs/x86_64_defconfig
/linux/arch/x86/entry/entry_64.S
/linux/arch/x86/hyperv/hv_apic.c
/linux/arch/x86/hyperv/hv_init.c
/linux/arch/x86/hyperv/hv_vtl.c
/linux/arch/x86/hyperv/ivm.c
/linux/arch/x86/hyperv/mmu.c
/linux/arch/x86/hyperv/nested.c
/linux/arch/x86/include/asm/kvm-x86-ops.h
/linux/arch/x86/include/asm/kvm_host.h
/linux/arch/x86/include/asm/microcode.h
/linux/arch/x86/include/asm/microcode_amd.h
/linux/arch/x86/include/asm/mshyperv.h
/linux/arch/x86/include/asm/msr-index.h
/linux/arch/x86/kernel/cpu/amd.c
/linux/arch/x86/kernel/cpu/bugs.c
/linux/arch/x86/kernel/cpu/common.c
/linux/arch/x86/kernel/cpu/mce/amd.c
/linux/arch/x86/kernel/traps.c
/linux/arch/x86/kvm/lapic.c
/linux/arch/x86/kvm/svm/svm.c
/linux/arch/x86/kvm/vmx/vmenter.S
/linux/arch/x86/kvm/vmx/vmx.c
/linux/arch/x86/kvm/vmx/vmx_ops.h
/linux/arch/x86/kvm/x86.c
/linux/drivers/acpi/arm64/iort.c
/linux/drivers/ata/libata-core.c
/linux/drivers/ata/libata-scsi.c
/linux/drivers/ata/pata_arasan_cf.c
/linux/drivers/ata/pata_ns87415.c
/linux/drivers/ata/pata_octeon_cf.c
/linux/drivers/base/power/power.h
/linux/drivers/base/power/wakeirq.c
/linux/drivers/block/rbd.c
/linux/drivers/block/ublk_drv.c
/linux/drivers/char/tpm/st33zp24/i2c.c
/linux/drivers/char/tpm/tpm_i2c_atmel.c
/linux/drivers/char/tpm/tpm_i2c_infineon.c
/linux/drivers/char/tpm/tpm_i2c_nuvoton.c
/linux/drivers/char/tpm/tpm_tis_core.c
/linux/drivers/char/tpm/tpm_tis_i2c.c
/linux/drivers/char/tpm/tpm_tis_i2c_cr50.c
/linux/drivers/clk/Kconfig
/linux/drivers/clk/imx/clk-imx93.c
/linux/drivers/clk/mediatek/clk-mt8183.c
/linux/drivers/clk/meson/clk-pll.c
/linux/drivers/cxl/Kconfig
/linux/drivers/cxl/acpi.c
/linux/drivers/cxl/core/mbox.c
/linux/drivers/cxl/core/memdev.c
/linux/drivers/cxl/cxlmem.h
/linux/drivers/firmware/arm_scmi/mailbox.c
/linux/drivers/firmware/arm_scmi/raw_mode.c
/linux/drivers/firmware/arm_scmi/smc.c
/linux/drivers/firmware/smccc/soc_id.c
/linux/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
/linux/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
/linux/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c
/linux/drivers/gpu/drm/amd/amdkfd/kfd_debug.c
/linux/drivers/gpu/drm/amd/amdkfd/kfd_debug.h
/linux/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
/linux/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
/linux/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
/linux/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c
/linux/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c
/linux/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
/linux/drivers/gpu/drm/i915/display/intel_dpt.c
/linux/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
/linux/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
/linux/drivers/gpu/drm/i915/gt/gen8_engine_cs.h
/linux/drivers/gpu/drm/i915/gt/intel_gpu_commands.h
/linux/drivers/gpu/drm/i915/gt/intel_gt_regs.h
/linux/drivers/gpu/drm/i915/gt/intel_lrc.c
/linux/drivers/gpu/drm/i915/gvt/edid.c
/linux/drivers/gpu/drm/i915/i915_active.c
/linux/drivers/gpu/drm/i915/i915_request.c
/linux/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
/linux/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
/linux/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h
/linux/drivers/gpu/drm/msm/adreno/adreno_device.c
/linux/drivers/gpu/drm/msm/adreno/adreno_gpu.h
/linux/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h
/linux/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
/linux/drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c
/linux/drivers/gpu/drm/msm/msm_fence.c
/linux/drivers/gpu/drm/msm/msm_gem_submit.c
/linux/drivers/gpu/drm/msm/msm_mdss.c
/linux/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
/linux/drivers/gpu/drm/ttm/ttm_bo.c
/linux/drivers/hv/connection.c
/linux/drivers/hv/hv_balloon.c
/linux/drivers/hv/hv_common.c
/linux/drivers/hwmon/aquacomputer_d5next.c
/linux/drivers/hwmon/k10temp.c
/linux/drivers/hwmon/nct6775-core.c
/linux/drivers/hwmon/nct6775-platform.c
/linux/drivers/hwmon/nct6775.h
/linux/drivers/hwmon/nct7802.c
/linux/drivers/hwmon/oxp-sensors.c
/linux/drivers/hwmon/pmbus/pmbus_core.c
/linux/drivers/infiniband/core/cma.c
/linux/drivers/infiniband/hw/bnxt_re/ib_verbs.c
/linux/drivers/infiniband/hw/bnxt_re/qplib_fp.c
/linux/drivers/infiniband/hw/bnxt_re/qplib_fp.h
/linux/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
/linux/drivers/infiniband/hw/irdma/ctrl.c
/linux/drivers/infiniband/hw/irdma/defs.h
/linux/drivers/infiniband/hw/irdma/hw.c
/linux/drivers/infiniband/hw/irdma/main.h
/linux/drivers/infiniband/hw/irdma/puda.c
/linux/drivers/infiniband/hw/irdma/type.h
/linux/drivers/infiniband/hw/irdma/uk.c
/linux/drivers/infiniband/hw/irdma/utils.c
/linux/drivers/infiniband/hw/mlx4/qp.c
/linux/drivers/infiniband/hw/mthca/mthca_qp.c
/linux/drivers/infiniband/sw/rxe/rxe_mw.c
/linux/drivers/iommu/iommufd/device.c
/linux/drivers/iommu/iommufd/iommufd_private.h
/linux/drivers/iommu/iommufd/main.c
/linux/drivers/iommu/iommufd/pages.c
/linux/drivers/irqchip/irq-bcm6345-l1.c
/linux/drivers/irqchip/irq-gic-v3-its.c
/linux/drivers/irqchip/irq-gic-v3.c
/linux/drivers/isdn/hardware/mISDN/hfcpci.c
/linux/drivers/md/dm-cache-policy-smq.c
/linux/drivers/md/dm-integrity.c
/linux/drivers/md/dm-raid.c
/linux/drivers/md/md.c
/linux/drivers/media/cec/usb/pulse8/pulse8-cec.c
/linux/drivers/media/i2c/tc358746.c
/linux/drivers/media/pci/cx23885/cx23885-dvb.c
/linux/drivers/media/platform/amphion/vpu_core.c
/linux/drivers/media/platform/amphion/vpu_mbox.c
/linux/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c
/linux/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c
/linux/drivers/media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.c
/linux/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c
/linux/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h
/linux/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
/linux/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h
/linux/drivers/media/platform/verisilicon/hantro.h
/linux/drivers/media/platform/verisilicon/hantro_postproc.c
/linux/drivers/memory/tegra/mc.c
/linux/drivers/memory/tegra/tegra194.c
/linux/drivers/memory/tegra/tegra234.c
/linux/drivers/misc/sram.c
/linux/drivers/mtd/nand/raw/fsl_upm.c
/linux/drivers/mtd/nand/raw/meson_nand.c
/linux/drivers/mtd/nand/raw/omap_elm.c
/linux/drivers/mtd/nand/raw/rockchip-nand-controller.c
/linux/drivers/mtd/nand/spi/toshiba.c
/linux/drivers/mtd/nand/spi/winbond.c
/linux/drivers/mtd/spi-nor/spansion.c
/linux/drivers/net/bonding/bond_main.c
/linux/drivers/net/can/usb/gs_usb.c
/linux/drivers/net/dsa/bcm_sf2.c
/linux/drivers/net/dsa/microchip/ksz_common.c
/linux/drivers/net/dsa/qca/qca8k-8xxx.c
/linux/drivers/net/dsa/qca/qca8k-common.c
/linux/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
/linux/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
/linux/drivers/net/ethernet/atheros/atlx/atl1.c
/linux/drivers/net/ethernet/broadcom/bnxt/bnxt.c
/linux/drivers/net/ethernet/broadcom/bnxt/bnxt.h
/linux/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
/linux/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h
/linux/drivers/net/ethernet/emulex/benet/be_main.c
/linux/drivers/net/ethernet/freescale/fec_main.c
/linux/drivers/net/ethernet/hisilicon/hns3/hnae3.h
/linux/drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_cmd.c
/linux/drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_cmd.h
/linux/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h
/linux/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
/linux/drivers/net/ethernet/intel/iavf/iavf_main.c
/linux/drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c
/linux/drivers/net/ethernet/intel/ice/ice_main.c
/linux/drivers/net/ethernet/intel/igc/igc_main.c
/linux/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
/linux/drivers/net/ethernet/korina.c
/linux/drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_mbox.c
/linux/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
/linux/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.h
/linux/drivers/net/ethernet/marvell/prestera/prestera_pci.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec_fs.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_debugfs.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h
/linux/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/fs_core.h
/linux/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/main.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_cmd.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste_v0.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste_v1.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c
/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/mlx5dr.h
/linux/drivers/net/ethernet/qlogic/qed/qed_dev_api.h
/linux/drivers/net/ethernet/qlogic/qed/qed_fcoe.c
/linux/drivers/net/ethernet/qlogic/qed/qed_fcoe.h
/linux/drivers/net/ethernet/qlogic/qed/qed_hw.c
/linux/drivers/net/ethernet/qlogic/qed/qed_iscsi.c
/linux/drivers/net/ethernet/qlogic/qed/qed_iscsi.h
/linux/drivers/net/ethernet/qlogic/qed/qed_l2.c
/linux/drivers/net/ethernet/qlogic/qed/qed_l2.h
/linux/drivers/net/ethernet/qlogic/qed/qed_main.c
/linux/drivers/net/ethernet/sfc/falcon/selftest.c
/linux/drivers/net/ethernet/sfc/selftest.c
/linux/drivers/net/ethernet/sfc/siena/selftest.c
/linux/drivers/net/ethernet/socionext/netsec.c
/linux/drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c
/linux/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
/linux/drivers/net/ethernet/xilinx/ll_temac_main.c
/linux/drivers/net/ipa/ipa_table.c
/linux/drivers/net/macvlan.c
/linux/drivers/net/phy/marvell10g.c
/linux/drivers/net/tap.c
/linux/drivers/net/team/team.c
/linux/drivers/net/tun.c
/linux/drivers/net/usb/cdc_ether.c
/linux/drivers/net/usb/lan78xx.c
/linux/drivers/net/usb/qmi_wwan.c
/linux/drivers/net/usb/zaurus.c
/linux/drivers/net/virtio_net.c
/linux/drivers/net/vxlan/vxlan_core.c
/linux/drivers/net/wireless/ath/ath11k/ahb.c
/linux/drivers/net/wireless/ath/ath11k/pcic.c
/linux/drivers/net/wireless/ath/ath6kl/Makefile
/linux/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
/linux/drivers/net/wireless/legacy/rayctl.h
/linux/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
/linux/drivers/parport/parport_gsc.c
/linux/drivers/parport/parport_gsc.h
/linux/drivers/phy/hisilicon/phy-hisi-inno-usb2.c
/linux/drivers/phy/mediatek/phy-mtk-dp.c
/linux/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c
/linux/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c
/linux/drivers/platform/x86/amd/pmc-quirks.c
/linux/drivers/platform/x86/amd/pmf/acpi.c
/linux/drivers/platform/x86/amd/pmf/core.c
/linux/drivers/platform/x86/amd/pmf/pmf.h
/linux/drivers/platform/x86/amd/pmf/sps.c
/linux/drivers/platform/x86/asus-wmi.c
/linux/drivers/platform/x86/huawei-wmi.c
/linux/drivers/platform/x86/intel/hid.c
/linux/drivers/platform/x86/msi-laptop.c
/linux/drivers/platform/x86/serial-multi-instantiate.c
/linux/drivers/platform/x86/think-lmi.c
/linux/drivers/platform/x86/touchscreen_dmi.c
/linux/drivers/powercap/intel_rapl_common.c
/linux/drivers/powercap/intel_rapl_msr.c
/linux/drivers/powercap/intel_rapl_tpmi.c
/linux/drivers/regulator/mt6358-regulator.c
/linux/drivers/s390/block/dasd.c
/linux/drivers/s390/block/dasd_3990_erp.c
/linux/drivers/s390/block/dasd_ioctl.c
/linux/drivers/s390/net/qeth_core.h
/linux/drivers/s390/net/qeth_core_main.c
/linux/drivers/s390/net/qeth_l2_main.c
/linux/drivers/s390/net/qeth_l3_main.c
/linux/drivers/s390/scsi/zfcp_fc.c
/linux/drivers/scsi/pm8001/pm8001_init.c
/linux/drivers/scsi/sd.c
/linux/drivers/scsi/sg.c
/linux/drivers/scsi/storvsc_drv.c
/linux/drivers/soc/imx/imx8mp-blk-ctrl.c
/linux/drivers/soundwire/amd_manager.c
/linux/drivers/soundwire/bus.c
/linux/drivers/soundwire/qcom.c
/linux/drivers/spi/spi-qcom-qspi.c
/linux/drivers/staging/fbtft/fb_ili9341.c
/linux/drivers/staging/ks7010/ks_wlan_net.c
/linux/drivers/staging/media/atomisp/Kconfig
/linux/drivers/staging/rtl8712/rtl871x_xmit.c
/linux/drivers/staging/rtl8712/xmit_linux.c
/linux/drivers/thermal/intel/int340x_thermal/processor_thermal_rapl.c
/linux/drivers/thermal/thermal_core.c
/linux/drivers/thermal/thermal_of.c
/linux/drivers/tty/n_gsm.c
/linux/drivers/tty/serial/8250/8250_dwlib.c
/linux/drivers/tty/serial/qcom_geni_serial.c
/linux/drivers/tty/serial/sh-sci.c
/linux/drivers/tty/serial/sifive.c
/linux/drivers/tty/serial/ucc_uart.c
/linux/drivers/tty/tty_io.c
/linux/drivers/usb/cdns3/cdns3-gadget.c
/linux/drivers/usb/core/quirks.c
/linux/drivers/usb/dwc3/core.c
/linux/drivers/usb/dwc3/core.h
/linux/drivers/usb/dwc3/dwc3-pci.c
/linux/drivers/usb/gadget/composite.c
/linux/drivers/usb/gadget/legacy/raw_gadget.c
/linux/drivers/usb/gadget/udc/core.c
/linux/drivers/usb/gadget/udc/tegra-xudc.c
/linux/drivers/usb/host/ohci-at91.c
/linux/drivers/usb/host/xhci-mtk.c
/linux/drivers/usb/host/xhci-pci.c
/linux/drivers/usb/host/xhci-ring.c
/linux/drivers/usb/host/xhci-tegra.c
/linux/drivers/usb/misc/ehset.c
/linux/drivers/usb/serial/option.c
/linux/drivers/usb/serial/usb-serial-simple.c
/linux/drivers/usb/typec/class.c
/linux/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c
/linux/drivers/usb/typec/ucsi/ucsi.c
/linux/drivers/xen/events/events_base.c
/linux/drivers/xen/evtchn.c
/linux/drivers/xen/grant-table.c
/linux/drivers/xen/xenbus/xenbus_probe.c
/linux/fs/9p/fid.h
/linux/fs/9p/v9fs.c
/linux/fs/9p/v9fs.h
/linux/fs/9p/vfs_dir.c
/linux/fs/9p/vfs_file.c
/linux/fs/9p/vfs_inode.c
/linux/fs/9p/vfs_inode_dotl.c
/linux/fs/autofs/Kconfig
/linux/fs/btrfs/block-group.c
/linux/fs/btrfs/block-group.h
/linux/fs/btrfs/block-rsv.c
/linux/fs/btrfs/disk-io.c
/linux/fs/btrfs/free-space-tree.c
/linux/fs/btrfs/transaction.c
/linux/fs/btrfs/zoned.c
/linux/fs/ceph/dir.c
/linux/fs/ceph/mds_client.c
/linux/fs/ceph/mds_client.h
/linux/fs/ceph/metric.c
/linux/fs/ceph/super.c
/linux/fs/coda/dir.c
/linux/fs/erofs/super.c
/linux/fs/erofs/zdata.c
/linux/fs/exfat/balloc.c
/linux/fs/exfat/dir.c
/linux/fs/exportfs/expfs.c
/linux/fs/file.c
/linux/fs/jfs/namei.c
/linux/fs/nfsd/nfs4state.c
/linux/fs/nfsd/vfs.c
/linux/fs/nls/nls_base.c
/linux/fs/ntfs/dir.c
/linux/fs/ocfs2/file.c
/linux/fs/open.c
/linux/fs/overlayfs/readdir.c
/linux/fs/overlayfs/super.c
/linux/fs/proc/base.c
/linux/fs/proc/vmcore.c
/linux/fs/readdir.c
/linux/fs/smb/client/cifsglob.h
/linux/fs/smb/client/cifssmb.c
/linux/fs/smb/client/connect.c
/linux/fs/smb/client/dfs.c
/linux/fs/smb/client/ioctl.c
/linux/fs/smb/client/misc.c
/linux/fs/smb/client/sess.c
/linux/fs/smb/client/smb2pdu.c
/linux/fs/smb/server/ksmbd_netlink.h
/linux/fs/smb/server/server.c
/linux/fs/smb/server/smb2pdu.c
/linux/fs/smb/server/smb_common.c
/linux/fs/smb/server/smb_common.h
/linux/fs/smb/server/vfs.c
/linux/fs/smb/server/vfs.h
/linux/fs/splice.c
/linux/fs/vboxsf/dir.c
/linux/include/asm-generic/mshyperv.h
/linux/include/asm-generic/word-at-a-time.h
/linux/include/drm/drm_fb_helper.h
/linux/include/linux/cpumask.h
/linux/include/linux/fs.h
/linux/include/linux/ftrace.h
/linux/include/linux/hyperv.h
/linux/include/linux/intel_rapl.h
/linux/include/linux/mm.h
/linux/include/linux/mm_types.h
/linux/include/linux/mmap_lock.h
/linux/include/linux/nls.h
/linux/include/linux/pm_wakeirq.h
/linux/include/linux/spi/corgi_lcd.h
/linux/include/linux/spi/spi-mem.h
/linux/include/linux/thermal.h
/linux/include/net/gro.h
/linux/include/net/inet_sock.h
/linux/include/net/ip.h
/linux/include/net/ipv6.h
/linux/include/net/route.h
/linux/include/net/vxlan.h
/linux/include/scsi/scsi_device.h
/linux/include/soc/tegra/mc.h
/linux/include/uapi/linux/blkzoned.h
/linux/include/uapi/linux/if_packet.h
/linux/include/uapi/linux/pkt_cls.h
/linux/include/uapi/xen/evtchn.h
/linux/include/xen/events.h
/linux/io_uring/io_uring.c
/linux/kernel/bpf/cpumap.c
/linux/kernel/kprobes.c
/linux/kernel/locking/rtmutex.c
/linux/kernel/locking/rtmutex_api.c
/linux/kernel/locking/rtmutex_common.h
/linux/kernel/locking/ww_mutex.h
/linux/kernel/signal.c
/linux/kernel/trace/bpf_trace.c
/linux/kernel/trace/ring_buffer.c
/linux/kernel/trace/trace_events.c
/linux/kernel/trace/trace_events_synth.c
/linux/kernel/trace/trace_events_trigger.c
/linux/kernel/trace/trace_probe.c
/linux/kernel/trace/trace_seq.c
/linux/lib/Makefile
/linux/lib/cpumask.c
/linux/lib/genalloc.c
/linux/lib/test_bitmap.c
/linux/mm/damon/core-test.h
/linux/mm/memory-failure.c
/linux/mm/memory.c
/linux/mm/mempolicy.c
/linux/mm/mmap.c
/linux/mm/pagewalk.c
/linux/mm/shmem.c
/linux/net/9p/client.c
/linux/net/9p/trans_virtio.c
/linux/net/can/raw.c
/linux/net/ceph/messenger.c
/linux/net/ceph/osd_client.c
/linux/net/core/bpf_sk_storage.c
/linux/net/core/rtnetlink.c
/linux/net/core/sock.c
/linux/net/core/sock_map.c
/linux/net/dcb/dcbnl.c
/linux/net/dccp/ipv6.c
/linux/net/dsa/port.c
/linux/net/ipv4/inet_diag.c
/linux/net/ipv4/ip_output.c
/linux/net/ipv4/ip_sockglue.c
/linux/net/ipv4/raw.c
/linux/net/ipv4/route.c
/linux/net/ipv4/tcp_ipv4.c
/linux/net/ipv4/tcp_metrics.c
/linux/net/ipv4/udp.c
/linux/net/ipv4/udp_offload.c
/linux/net/ipv6/addrconf.c
/linux/net/ipv6/ip6mr.c
/linux/net/ipv6/ping.c
/linux/net/ipv6/raw.c
/linux/net/ipv6/route.c
/linux/net/ipv6/tcp_ipv6.c
/linux/net/ipv6/udp.c
/linux/net/ipv6/udp_offload.c
/linux/net/l2tp/l2tp_ip6.c
/linux/net/mptcp/protocol.c
/linux/net/mptcp/sockopt.c
/linux/net/netfilter/nf_tables_api.c
/linux/net/netfilter/nft_immediate.c
/linux/net/netfilter/nft_set_rbtree.c
/linux/net/netfilter/nft_socket.c
/linux/net/netfilter/xt_socket.c
/linux/net/packet/af_packet.c
/linux/net/sched/cls_flower.c
/linux/net/sched/cls_fw.c
/linux/net/sched/cls_route.c
/linux/net/sched/cls_u32.c
/linux/net/sched/em_meta.c
/linux/net/sched/sch_mqprio.c
/linux/net/sched/sch_taprio.c
/linux/net/smc/af_smc.c
/linux/net/tipc/crypto.c
/linux/net/tipc/node.c
/linux/net/unix/af_unix.c
/linux/net/wireless/scan.c
/linux/net/xdp/xsk.c
/linux/net/xfrm/xfrm_policy.c
kernel/sync/lock.rs
/linux/scripts/spelling.txt
/linux/security/keys/keyctl.c
/linux/sound/core/seq/seq_ump_client.c
/linux/sound/pci/hda/patch_realtek.c
/linux/sound/soc/atmel/atmel-i2s.c
/linux/sound/soc/codecs/da7219-aad.c
/linux/sound/soc/codecs/es8316.c
/linux/sound/soc/codecs/nau8821.c
/linux/sound/soc/codecs/rt5682-sdw.c
/linux/sound/soc/codecs/rt711-sdca-sdw.c
/linux/sound/soc/codecs/rt711-sdw.c
/linux/sound/soc/codecs/rt712-sdca-sdw.c
/linux/sound/soc/codecs/rt722-sdca-sdw.c
/linux/sound/soc/codecs/wm8904.c
/linux/sound/soc/fsl/fsl_spdif.c
/linux/sound/usb/mixer_maps.c
/linux/sound/usb/quirks.c
/linux/tools/hv/vmbus_testing
/linux/tools/net/ynl/lib/ynl.py
/linux/tools/perf/arch/arm64/util/pmu.c
/linux/tools/perf/arch/powerpc/util/skip-callchain-idx.c
/linux/tools/perf/tests/parse-events.c
/linux/tools/perf/tests/shell/test_uprobe_from_different_cu.sh
/linux/tools/perf/util/parse-events.c
/linux/tools/perf/util/pmu.c
/linux/tools/perf/util/pmu.h
/linux/tools/perf/util/pmus.c
/linux/tools/testing/cxl/test/cxl.c
/linux/tools/testing/selftests/ftrace/test.d/dynevent/add_remove_btfarg.tc
/linux/tools/testing/selftests/kvm/include/kvm_util_base.h
/linux/tools/testing/selftests/kvm/kvm_binary_stats_test.c
/linux/tools/testing/selftests/kvm/x86_64/set_sregs_test.c
/linux/tools/testing/selftests/net/mptcp/mptcp_join.sh
/linux/tools/testing/selftests/net/so_incoming_cpu.c
/linux/tools/testing/selftests/riscv/vector/vstate_exec_nolibc.c
/linux/tools/testing/selftests/rseq/rseq.c
/linux/tools/testing/selftests/tc-testing/tc-tests/qdiscs/taprio.json
/linux/tools/testing/vsock/Makefile
/linux/virt/kvm/kvm_main.c
b055448811-Jul-2023 Andrea Righi <andrea.righi@canonical.com>

rust: fix bindgen build error with UBSAN_BOUNDS_STRICT

With commit 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC") if
CONFIG_UBSAN is enabled and gcc supports -fsanitize=bounds-strict, we
can tr

rust: fix bindgen build error with UBSAN_BOUNDS_STRICT

With commit 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC") if
CONFIG_UBSAN is enabled and gcc supports -fsanitize=bounds-strict, we
can trigger the following build error due to bindgen lacking support for
this additional build option:

BINDGEN rust/bindings/bindings_generated.rs
error: unsupported argument 'bounds-strict' to option '-fsanitize='

Fix by adding -fsanitize=bounds-strict to the list of skipped gcc flags
for bindgen.

Fixes: 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC")
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
Acked-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Link: https://lore.kernel.org/r/20230711071914.133946-1-andrea.righi@canonical.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

1d24eb2d06-Jul-2023 Alice Ryhl <aliceryhl@google.com>

rust: delete `ForeignOwnable::borrow_mut`

We discovered that the current design of `borrow_mut` is problematic.
This patch removes it until a better solution can be found.

Specifically, the current

rust: delete `ForeignOwnable::borrow_mut`

We discovered that the current design of `borrow_mut` is problematic.
This patch removes it until a better solution can be found.

Specifically, the current design gives you access to a `&mut T`, which
lets you change where the `ForeignOwnable` points (e.g., with
`core::mem::swap`). No upcoming user of this API intended to make that
possible, making all of them unsound.

Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Fixes: 0fc4424d24a2 ("rust: types: introduce `ForeignOwnable`")
Link: https://lore.kernel.org/r/20230706094615.3080784-1-aliceryhl@google.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

show more ...

1...<<11121314151617181920