"Benno Lossin" <lossin@xxxxxxxxxx> writes: > On Mon Jun 30, 2025 at 3:15 PM CEST, Andreas Hindborg wrote: >> "Benno Lossin" <lossin@xxxxxxxxxx> writes: >>> On Mon Jun 30, 2025 at 1:18 PM CEST, Andreas Hindborg wrote: >>>> "Benno Lossin" <lossin@xxxxxxxxxx> writes: >>>>> (no idea if the orderings are correct, I always have to think way to >>>>> much about that... especially since our atomics seem to only take one >>>>> ordering in compare_exchange?) >>>>> >>>>>> As far as I can tell, atomics may not land in v6.17, so this series >>>>>> will probably not be ready for merge until v6.18 at the earliest. >>>>> >>>>> Yeah, sorry about that :( >>>> >>>> Actually, perhaps we could aim at merging this code without this >>>> synchronization? >>> >>> I won't remember this issue in a few weeks and I fear that it will just >>> get buried. In fact, I already had to re-read now what the actual issue >>> was... >>> >>>> The lack of synchronization is only a problem if we >>>> support custom parsing. This patch set does not allow custom parsing >>>> code, so it does not suffer this issue. >>> >>> ... In doing that, I saw my original example of UB: >>> >>> module! { >>> // ... >>> params: { >>> my_param: i64 { >>> default: 0, >>> description: "", >>> }, >>> }, >>> } >>> >>> static BAD: &'static i64 = module_parameters::my_param.get(); >>> >>> That can happen without custom parsing, so it's still a problem... >> >> Ah, got it. Thanks. > > On second thought, we *could* just make the accessor function `unsafe`. > Of course with a pinky promise to make the implementation safe once > atomics land. But I think if it helps you get your driver faster along, > then we should do it. No, I am OK for now with configfs. But, progress is still great. How about if we add a copy accessor instead for now, I think you proposed that a few million emails ago: pub fn get(&self) -> T; or maybe rename: pub fn copy(&self) -> T; Then we are fine safety wise for now, right? It is even sensible for these `T: Copy` types. Best regards, Andreas Hindborg