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.