Re: [PATCH -next] rust: fwctl: replace `__pinned_init` with `raw_try_init`
"Gary Guo" <[email protected]>
| Newsgroups | org.kernel.vger.linux-next,org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
On Tue Aug 18, 2026 at 1:55 PM BST, Jason Gunthorpe wrote:
> On Tue, Aug 18, 2026 at 12:53:50PM +0200, Miguel Ojeda wrote:
>> Commit
>>
>> ea7da3116015 ("rust: treewide: replace `__pinned_init` with `raw_[try_]init`")
>>
>> from the pin-init tree replaced the method before removing it, but commit
>>
>> e052daab94ee ("rust: introduce abstractions for fwctl")
>>
>> from the fwctl tree added a new use.
>>
>> Thus replace that one as well to fix this error in next-20260817:
>>
>> error[E0599]: no method named `__pinned_init` found for associated type `impl pin_init::PinInit<T, error::Error>` in the current scope
>> --> rust/kernel/fwctl.rs:465:49
>> |
>> 465 | match T::open(device, reg_data).__pinned_init(uctx_ptr) {
>> | ^^^^^^^^^^^^^ method not found in `impl pin_init::PinInit<T, error::Error>`
>
> If you delete functions like this then you break everyone elses branches :|
I'm not sure how this break everyone elses' branches? It only breaks linux-next
but that's why it exists in the first place, to catch tree conflicts.
>
> I can't use this patch:
>
> 465 | match pin_init::raw_try_init(uctx_ptr, T::open(device, reg_data)) {
> | ^^^^^^^^^^^^ not found in `pin_init`
>
>
> Linus will have to fix this as a merge conflict.
This patch is sent as a semantic conflict resolution so yes it should be applied
by Linus.
For the removal of the function: Initially I plan to do this removal for
multiple cycles. However when I apply this near rc6 there wasn't any new users
introducing the usage of it so I proceed to remove it the same cycle.
If we want to do a cycle's grace period then reverting commit 1f7fa1374d3b
("rust: pin-init: remove `__pinned_init` method for `cfg(kernel)`") should be
sufficient. That said, I am not sure it's worth doing.
Best,
Gary