All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: FUJITA Tomonori <fujita.tomonori@gmail.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	Boqun Feng <boqun.feng@gmail.com>
Subject: [boqun:rust-sync.20260105a 18/22] error[E0277]: the trait bound `i8: AtomicImpl` is not satisfied
Date: Tue, 06 Jan 2026 00:25:24 +0800	[thread overview]
Message-ID: <202601060041.k0JkAkUD-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/boqun/linux.git rust-sync.20260105a
head:   243aa6a057d46d3a4de9297422e480d469eddaf7
commit: 06ed7e7e7aa656f7054af7d3d3387a07244d85b1 [18/22] rust: sync: atomic: Add i8/i16 xchg and cmpxchg support
config: um-randconfig-001-20260105 (https://download.01.org/0day-ci/archive/20260106/202601060041.k0JkAkUD-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710)
rustc: rustc 1.88.0 (6b00bc388 2025-06-23)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260106/202601060041.k0JkAkUD-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601060041.k0JkAkUD-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from kernel/sched/rq-offsets.c:5:
   In file included from kernel/sched/sched.h:28:
   In file included from include/linux/cgroup_api.h:1:
   In file included from include/linux/cgroup.h:27:
   In file included from include/linux/kernel_stat.h:8:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:24:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:12:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:1209:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   1209 |         return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port;
   |                                                   ~~~~~~~~~~ ^
   1 warning generated.
   llvm-nm: error: rust/helpers/helpers.o: No such file or directory
   clang diag: include/asm-generic/io.h:1209:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   clang diag: include/asm-generic/io.h:1209:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   clang diag: include/asm-generic/io.h:1209:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>> error[E0277]: the trait bound `i8: AtomicImpl` is not satisfied
   --> rust/kernel/sync/atomic/internal.rs:265:7
   |
   265 |     [ i8 => atomic_i8, i16 => atomic_i16, i32 => atomic, i64 => atomic64 ]
   |       ^^ the trait `AtomicImpl` is not implemented for `i8`
   |
   = help: the following other types implement trait `AtomicImpl`:
   i32
   i64
   note: required by a bound in `AtomicBasicOps`
   --> rust/kernel/sync/atomic/internal.rs:190:26
   |
   190 |           $pub trait $ops: AtomicImpl {
   |                            ^^^^^^^^^^ required by this bound in `AtomicBasicOps`
   ...
   264 | / declare_and_impl_atomic_methods!(
   265 | |     [ i8 => atomic_i8, i16 => atomic_i16, i32 => atomic, i64 => atomic64 ]
   266 | |     /// Basic atomic operations
   267 | |     pub trait AtomicBasicOps {
   | |               -------------- required by a bound in this trait
   ...   |
   280 | | );
   | |_- in this macro invocation
   = note: this error originates in the macro `declare_atomic_ops_trait` which comes from the expansion of the macro `declare_and_impl_atomic_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
--
>> error[E0277]: the trait bound `i16: AtomicImpl` is not satisfied
   --> rust/kernel/sync/atomic/internal.rs:265:24
   |
   265 |     [ i8 => atomic_i8, i16 => atomic_i16, i32 => atomic, i64 => atomic64 ]
   |                        ^^^ the trait `AtomicImpl` is not implemented for `i16`
   |
   = help: the following other types implement trait `AtomicImpl`:
   i32
   i64
   note: required by a bound in `AtomicBasicOps`
   --> rust/kernel/sync/atomic/internal.rs:190:26
   |
   190 |           $pub trait $ops: AtomicImpl {
   |                            ^^^^^^^^^^ required by this bound in `AtomicBasicOps`
   ...
   264 | / declare_and_impl_atomic_methods!(
   265 | |     [ i8 => atomic_i8, i16 => atomic_i16, i32 => atomic, i64 => atomic64 ]
   266 | |     /// Basic atomic operations
   267 | |     pub trait AtomicBasicOps {
   | |               -------------- required by a bound in this trait
   ...   |
   280 | | );
   | |_- in this macro invocation
   = note: this error originates in the macro `declare_atomic_ops_trait` which comes from the expansion of the macro `declare_and_impl_atomic_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
--
>> error[E0277]: the trait bound `i16: AtomicImpl` is not satisfied
   --> rust/kernel/sync/atomic/internal.rs:289:48
   |
   289 |         fn xchg[acquire, release, relaxed](a: &AtomicRepr<Self>, v: Self) -> Self {
   |                                                ^^^^^^^^^^^^^^^^ the trait `AtomicImpl` is not implemented for `i16`
   |
   = help: the following other types implement trait `AtomicImpl`:
   i32
   i64
   note: required by a bound in `AtomicRepr`
   --> rust/kernel/sync/atomic/internal.rs:66:26
   |
   66  | pub struct AtomicRepr<T: AtomicImpl>(UnsafeCell<T>);
   |                          ^^^^^^^^^^ required by this bound in `AtomicRepr`
--
>> error[E0277]: the trait bound `i16: AtomicImpl` is not satisfied
   --> rust/kernel/sync/atomic/internal.rs:301:17
   |
   301 |             a: &AtomicRepr<Self>, old: &mut Self, new: Self
   |                 ^^^^^^^^^^^^^^^^ the trait `AtomicImpl` is not implemented for `i16`
   |
   = help: the following other types implement trait `AtomicImpl`:
   i32
   i64
   note: required by a bound in `AtomicRepr`
   --> rust/kernel/sync/atomic/internal.rs:66:26
   |
   66  | pub struct AtomicRepr<T: AtomicImpl>(UnsafeCell<T>);
   |                          ^^^^^^^^^^ required by this bound in `AtomicRepr`
--
>> error[E0277]: the trait bound `i8: AtomicImpl` is not satisfied
   --> rust/kernel/sync/atomic/predefine.rs:11:17
   |
   11  |     type Repr = i8;
   |                 ^^ the trait `AtomicImpl` is not implemented for `i8`
   |
   = help: the following other types implement trait `AtomicImpl`:
   i32
   i64
   note: required by a bound in `AtomicType::Repr`
   --> rust/kernel/sync/atomic.rs:113:16
   |
   113 |     type Repr: AtomicImpl;
   |                ^^^^^^^^^^ required by this bound in `AtomicType::Repr`
--
>> error[E0277]: the trait bound `i16: AtomicImpl` is not satisfied
   --> rust/kernel/sync/atomic/predefine.rs:17:17
   |
   17  |     type Repr = i16;
   |                 ^^^ the trait `AtomicImpl` is not implemented for `i16`
   |
   = help: the following other types implement trait `AtomicImpl`:
   i32
   i64
   note: required by a bound in `AtomicType::Repr`
   --> rust/kernel/sync/atomic.rs:113:16
   |
   113 |     type Repr: AtomicImpl;
   |                ^^^^^^^^^^ required by this bound in `AtomicType::Repr`
--
>> error[E0599]: the method `as_ptr` exists for reference `&AtomicRepr<i8>`, but its trait bounds were not satisfied
   --> rust/kernel/sync/atomic/internal.rs:271:40
   |
   271 |             unsafe { bindings::#call(a.as_ptr().cast()) }
   |                                        ^^^^^^ method cannot be called on `&AtomicRepr<i8>` due to unsatisfied trait bounds
   |
   note: trait bound `i8: AtomicImpl` was not satisfied
   --> rust/kernel/sync/atomic/internal.rs:68:9
   |
   68  | impl<T: AtomicImpl> AtomicRepr<T> {
   |         ^^^^^^^^^^  -------------
   |         |
   |         unsatisfied trait bound introduced here
   = help: items from traits can only be used if the trait is implemented and in scope
   note: `device_id::IdTable` defines an item `as_ptr`, perhaps you need to implement it
   --> rust/kernel/device_id.rs:165:1
   |
   165 | pub trait IdTable<T: RawDeviceId, U> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--
>> error[E0599]: the method `as_ptr` exists for reference `&AtomicRepr<i8>`, but its trait bounds were not satisfied
   --> rust/kernel/sync/atomic/internal.rs:277:40
   |
   277 |             unsafe { bindings::#call(a.as_ptr().cast(), v) }
   |                                        ^^^^^^ method cannot be called on `&AtomicRepr<i8>` due to unsatisfied trait bounds
   |
   note: trait bound `i8: AtomicImpl` was not satisfied
   --> rust/kernel/sync/atomic/internal.rs:68:9
   |
   68  | impl<T: AtomicImpl> AtomicRepr<T> {
   |         ^^^^^^^^^^  -------------
   |         |
   |         unsatisfied trait bound introduced here
   = help: items from traits can only be used if the trait is implemented and in scope
   note: `device_id::IdTable` defines an item `as_ptr`, perhaps you need to implement it
   --> rust/kernel/device_id.rs:165:1
   |
   165 | pub trait IdTable<T: RawDeviceId, U> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--
>> error[E0599]: the method `as_ptr` exists for reference `&AtomicRepr<i16>`, but its trait bounds were not satisfied
   --> rust/kernel/sync/atomic/internal.rs:271:40
   |
   271 |             unsafe { bindings::#call(a.as_ptr().cast()) }
   |                                        ^^^^^^ method cannot be called on `&AtomicRepr<i16>` due to unsatisfied trait bounds
   |
   note: trait bound `i16: AtomicImpl` was not satisfied
   --> rust/kernel/sync/atomic/internal.rs:68:9
   |
   68  | impl<T: AtomicImpl> AtomicRepr<T> {
   |         ^^^^^^^^^^  -------------
   |         |
   |         unsatisfied trait bound introduced here
   = help: items from traits can only be used if the trait is implemented and in scope
   note: `device_id::IdTable` defines an item `as_ptr`, perhaps you need to implement it
   --> rust/kernel/device_id.rs:165:1
   |
   165 | pub trait IdTable<T: RawDeviceId, U> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--
>> error[E0599]: the method `as_ptr` exists for reference `&AtomicRepr<i16>`, but its trait bounds were not satisfied
   --> rust/kernel/sync/atomic/internal.rs:277:40
   |
   277 |             unsafe { bindings::#call(a.as_ptr().cast(), v) }
   |                                        ^^^^^^ method cannot be called on `&AtomicRepr<i16>` due to unsatisfied trait bounds
   |
   note: trait bound `i16: AtomicImpl` was not satisfied
   --> rust/kernel/sync/atomic/internal.rs:68:9
   |
   68  | impl<T: AtomicImpl> AtomicRepr<T> {
   |         ^^^^^^^^^^  -------------
   |         |
   |         unsatisfied trait bound introduced here
   = help: items from traits can only be used if the trait is implemented and in scope
   note: `device_id::IdTable` defines an item `as_ptr`, perhaps you need to implement it
   --> rust/kernel/device_id.rs:165:1
   |
   165 | pub trait IdTable<T: RawDeviceId, U> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--
>> error[E0599]: the method `as_ptr` exists for reference `&AtomicRepr<i8>`, but its trait bounds were not satisfied
   --> rust/kernel/sync/atomic/internal.rs:291:40
   |
   291 |             unsafe { bindings::#call(a.as_ptr().cast(), v) }
   |                                        ^^^^^^ method cannot be called on `&AtomicRepr<i8>` due to unsatisfied trait bounds
   |
   note: trait bound `i8: AtomicImpl` was not satisfied
   --> rust/kernel/sync/atomic/internal.rs:68:9
   |
   68  | impl<T: AtomicImpl> AtomicRepr<T> {
   |         ^^^^^^^^^^  -------------
   |         |
   |         unsatisfied trait bound introduced here
   = help: items from traits can only be used if the trait is implemented and in scope
   note: `device_id::IdTable` defines an item `as_ptr`, perhaps you need to implement it
   --> rust/kernel/device_id.rs:165:1
   |
   165 | pub trait IdTable<T: RawDeviceId, U> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
..

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

             reply	other threads:[~2026-01-05 16:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-05 16:25 kernel test robot [this message]
2026-01-06  0:49 ` [boqun:rust-sync.20260105a 18/22] error[E0277]: the trait bound `i8: AtomicImpl` is not satisfied Boqun Feng
2026-01-06  3:40   ` [PATCH] arch: um/x86: Select ARCH_SUPPORTS_ATOMIC_RMW for UML_X86 Boqun Feng
2026-01-06 13:30     ` FUJITA Tomonori
2026-01-06 14:20     ` Richard Weinberger
2026-01-07  3:26       ` Boqun Feng
2026-01-13 10:49     ` [tip: locking/core] " tip-bot2 for Boqun Feng

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=202601060041.k0JkAkUD-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=boqun.feng@gmail.com \
    --cc=fujita.tomonori@gmail.com \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

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

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.