Re: [PATCH v5 7/8] execmem: add support for cache of large ROX pages
Christoph Hellwig <[email protected]>
| Newsgroups | gmane.linux.ports.riscv,gmane.linux.kernel.bpf,gmane.linux.ports.alpha,gmane.linux.kernel.cross-arch,gmane.linux.ports.arm.kernel,gmane.linux.ports.hexagon,gmane.linux.kernel,gmane.linux.ports.mips,gmane.linux.kernel.mm,gmane.linux.kernel.modules,gmane.linux.ports.parisc,gmane.linux.ports.sh.devel,gmane.linux.kernel.arc,gmane.linux.uml.devel,gmane.linux.ports.ppc64.devel,gmane.linux.ports.sparc |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Oct 10, 2024 at 03:57:33PM +0300, Mike Rapoport wrote:
> On Wed, Oct 09, 2024 at 11:58:33PM -0700, Christoph Hellwig wrote:
> > On Wed, Oct 09, 2024 at 09:08:15PM +0300, Mike Rapoport wrote:
> > > /**
> > > * struct execmem_info - architecture parameters for code allocations
> > > + * @fill_trapping_insns: set memory to contain instructions that will trap
> > > * @ranges: array of parameter sets defining architecture specific
> > > * parameters for executable memory allocations. The ranges that are not
> > > * explicitly initialized by an architecture use parameters defined for
> > > * @EXECMEM_DEFAULT.
> > > */
> > > struct execmem_info {
> > > + void (*fill_trapping_insns)(void *ptr, size_t size, bool writable);
> > > struct execmem_range ranges[EXECMEM_TYPE_MAX];
> >
> > Why is the filler an indirect function call and not an architecture
> > hook?
>
> The idea is to keep everything together and have execmem_info describe all
> that architecture needs.
But why? That's pretty different from our normal style of arch hooks,
and introduces an indirect call in a security sensitive area.