Most kernel memory that is allocated after boot does not need to be executable. Make UMA and kernel malloc() return non-executable memory.
(Note that a side effect of r316767 caused this behavior to be true for allocations on amd64 that followed the "small allocation" path in UMA.)
Allocations that do need executable memory have various choices. They can map the memory themselves. Or, they can call kmem_malloc() with the new M_EXEC flag.