On Wed, Oct 20, 2021 at 6:37 AM Catalin Marinas <catalin.marinas@xxxxxxx> wrote: > > The atomic "add zero" trick isn't that simple for MTE since the arm64 > atomic or exclusive instructions run with kernel privileges and > therefore with the kernel tag checking mode. Are there any instructions that are useful for "probe_user_write()" kind of thing? We could always just add that as an arch function, with a fallback to using the futex "add zero" if the architecture doesn't need anything special. Although at least for MTE, I think the solution was to do a regular read, and that checks the tag, and then we could use the gup machinery for the writability checks. Linus