On 2023-01-15, Barry Grumbine <barry.grumb...@gmail.com> wrote:
> In case someone else runs in to this, and bothers to check misc@
>
> In this commit:
> https://marc.info/?l=openbsd-cvs&m=167283731726983&w=2
>
> --execute-only (aka NX bit, aka XD bit, aka Data Execution Prevention)
> was turned on

NX ("no execute") is used with kernel protections that can prevent
memory which is mapped as being _writable_ from being executed. That afaik
didn't change recently (at least not on purpose?).

execute-only is something else, it relates to mappings which are
protected such that they _can_ be executed but not _read_. It's now used
on aarch64 and riscv64 in snapshots (not everything in ports has been
fixed to work with it yet). There's work towards using it on amd64 but
the necessary cpu feature is only available on fairly new AMD machines
and very (for my version of 'very') new Intel machines.

> On my ancient T520 I had to go in to BIOS and set:
> -> Security
> --> Memory Protection
> ---> Execution Prevention [Enable]
>
> Everything works just peachy now.

It would be interesting to figure out what is happening with your
system (e.g. which change actually broke things) - there's no way it can
be the commit you point out. That's "restore previous behaviour when
compiling the EFI boot loader on aarch64/riscv64 which had got changed
in a different diff".

Any idea whether the problem is just in ramdisk kernels or did it affect
normal boot e.g. GENERIC.MP as well?


Reply via email to