On Mon, Apr 12, 2021 at 10:00:16AM +0200, Peter Zijlstra wrote: > +struct vpr_data { > + int (*fn)(pte_t pte, unsigned long addr, void *data); > + void *data; > +}; Eeerg. This is likely to become an attack target itself. Stored function pointer with stored (3rd) argument. This doesn't seem needed: only DRM uses it, and that's for error reporting. I'd rather plumb back errors in a way to not have to add another place in the kernel where we do func+arg stored calling. -- Kees Cook