Re: [PATCH v2] fs: use acquire ordering in __fget_light()

From: Al Viro
Date: Mon Oct 31 2022 - 14:48:41 EST


On Mon, Oct 31, 2022 at 07:13:30PM +0100, Jann Horn wrote:
> On Mon, Oct 31, 2022 at 7:08 PM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> [...]
> > No arch-specific instances, so...
> > static __always_inline int
> > arch_atomic_read_acquire(const atomic_t *v)
> > {
> > int ret;
> >
> > if (__native_word(atomic_t)) {
> > ret = smp_load_acquire(&(v)->counter);
> > } else {
> > ret = arch_atomic_read(v);
> > __atomic_acquire_fence();
> > }
> >
> > return ret;
> > }
> [...]
> > Do we really have any architectures where a structure with one
> > int field does *not* have a size that would satisfy that check?
> >
> > Is it future-proofing for masturbation sake, or am I missing something
> > real here?
>
> include/linux/atomic/atomic-arch-fallback.h has a comment at the top that says:
>
> // Generated by scripts/atomic/gen-atomic-fallback.sh
> // DO NOT MODIFY THIS FILE DIRECTLY

Hmm... Apparently, the source is shared for atomic and atomic64, and the
check is intended for atomic64 counterpart of that thing on 32bit boxen.
Might make sense to put a comment in there...

The question about architectures with non-default implementations still
stands, though.

Anyway, it's unrelated to the patch itself. I'm fine with it in the current
form. Will apply for the next merge window, unless Linus wants it in right
now.