Subject: Re: linux-next: build failure after merge of the workqueues tree

From: Tejun Heo <[email-masked]>
Date: Tue, 15 Apr 2025 04:59:13 -1000

On Tue, Apr 15, 2025 at 09:24:32AM -0400, Tamir Duberstein wrote:
> On Tue, Apr 15, 2025 at 12:01 AM Stephen Rothwell <[email-masked]> wrote:
> >
> > Hi all,
> >
> > After merging the workqueues tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
> >
> > error[E0308]: mismatched types
> >    --> rust/kernel/lib.rs:204:9
> >     |
> > 204 |           ptr.sub(offset) as *const $type
> >     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability
> >     |
> >    ::: rust/kernel/workqueue.rs:495:18
> >     |
> > 495 |               ) -> *mut Self {
> >     |                    --------- expected `*mut ClosureWork<T>` because of return type
> > ...
> > 505 | / impl_has_work! {
> > 506 | |     impl{T} HasWork<Self> for ClosureWork<T> { self.work }
> > 507 | | }
> >     | |_- in this macro invocation
> >     |
> >     = note: expected raw pointer `*mut ClosureWork<T>`
> >                found raw pointer `*const ClosureWork<T>`
> >     = note: this error originates in the macro `$crate::container_of` which comes from the expansion of the macro `impl_has_work` (in Nightly builds, run with -Z macro-backtrace for more info)
> >
> > error: aborting due to 1 previous error
> >
> > For more information about this error, try `rustc --explain E0308`.
> >
> > Caused by commit
> >
> >   345e029b561e ("rust: workqueue: remove HasWork::OFFSET")
> >
> > I have used the workqueues tree from next-20250414 for today.
> 
> HI Stephen, I believe Tejun plans to back this out. See
> https://lore.kernel.org/all/CAJ-ks9k2FEfL4SWw3ThhhozAeHB=[email-masked]/.

Yeah, sorry about that. It was in the tree only for a couple hours and then
got rewound, but we got a bit unfortunate with linux-next pulling. Should be
okay today.

Thanks.

-- 
tejun