Re: [PATCH v2 3/4] rust: pci: impl TryFrom<&Device> for &pci::Device

From: Benno Lossin
Date: Sat Mar 22 2025 - 06:10:12 EST


On Fri Mar 21, 2025 at 5:56 PM CET, kernel test robot wrote:
> Hi Danilo,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on 51d0de7596a458096756c895cfed6bc4a7ecac10]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Danilo-Krummrich/rust-device-implement-Device-parent/20250321-063101
> base: 51d0de7596a458096756c895cfed6bc4a7ecac10
> patch link: https://lore.kernel.org/r/20250320222823.16509-4-dakr%40kernel.org
> patch subject: [PATCH v2 3/4] rust: pci: impl TryFrom<&Device> for &pci::Device
> config: x86_64-buildonly-randconfig-005-20250321 (https://download.01.org/0day-ci/archive/20250322/202503220040.TDePlxma-lkp@xxxxxxxxx/config)
> compiler: clang version 20.1.1 (https://github.com/llvm/llvm-project 424c2d9b7e4de40d0804dd374721e6411c27d1d1)
> rustc: rustc 1.78.0 (9b00956e5 2024-04-29)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250322/202503220040.TDePlxma-lkp@xxxxxxxxx/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202503220040.TDePlxma-lkp@xxxxxxxxx/
>
> All errors (new ones prefixed by >>):
>
> ***
> *** Rust bindings generator 'bindgen' < 0.69.5 together with libclang >= 19.1
> *** may not work due to a bug (https://github.com/rust-lang/rust-bindgen/pull/2824),
> *** unless patched (like Debian's).
> *** Your bindgen version: 0.65.1
> *** Your libclang version: 20.1.1
> ***
> ***
> *** Please see Documentation/rust/quick-start.rst for details
> *** on how to set up the Rust support.
> ***
>>> error[E0133]: use of extern static is unsafe and requires unsafe block
> --> rust/kernel/pci.rs:473:43
> |
> 473 | if dev.bus_type_raw() != addr_of!(bindings::pci_bus_type) {
> | ^^^^^^^^^^^^^^^^^^^^^^ use of extern static
> |
> = note: extern statics are not controlled by the Rust type system: invalid data, aliasing violations or data races will cause undefined behavior

This is just a minor annoyance with these error reports, but I would
very much like the error to have the correct indentation:

>> error[E0133]: use of extern static is unsafe and requires unsafe block
--> rust/kernel/pci.rs:473:43
|
473 | if dev.bus_type_raw() != addr_of!(bindings::pci_bus_type) {
| ^^^^^^^^^^^^^^^^^^^^^^ use of extern static
|

Would that be possible to fix? That way the `^^^^` align with the item
they are referencing.

Otherwise they are very helpful!

---
Cheers,
Benno