imer_setup() is not compatible with PaX's RAP

Jason A. Donenfeld Jason at
Mon Nov 13 20:34:58 CET 2017

Hey Pipacs,

On Mon, Nov 13, 2017 at 2:39 AM, PaX Team <pageexec at> wrote:
> at fptr dereference time RAP will still see the type hash mismatch.
> another approach could be to depend on TIMER_DATA_TYPE instead and use
> it in your callback prototypes. as a sidenote, if you want to depend
> on plugin related features, it's better to depend on RAP_PLUGIN

I've fixed this all up here:

I think it _should_ work now. Thanks for the suggestions. I just
monkey patched the signatures of each of those functions. Ugly, but it

> speaking of PaX support, you recently added some __ro_after_init wrapper
> to wireguard which breaks under KERNEXEC when it's used on ops structs
> (my __read_only has different semantics) so i have to revert it here but
> it'd be nicer if you didn't define it when KERNEXEC is active.

I've attempted to fix this in the same commit. Does that look like it will work?

By the way, if you ever find yourself having to revert things to run
WireGuard, don't hesitate to send a patch or just poke me, and I'll
fix things. I'd definitely like to support PaX for as long as I can
manage to do so.


More information about the WireGuard mailing list