Thread (62 messages) 62 messages, 8 authors, 2016-03-08

Re: [PATCH v2] sparc64: Add support for Application Data Integrity (ADI)

From: Andy Lutomirski <hidden>
Date: 2016-03-07 18:08:55
Also in: linux-arch, linux-mm, lkml, sparclinux

On Mon, Mar 7, 2016 at 10:04 AM, Khalid Aziz [off-list ref] wrote:
On 03/07/2016 09:56 AM, David Miller wrote:
quoted
From: Khalid Aziz <redacted>
Date: Mon, 7 Mar 2016 08:07:53 -0700
quoted
PR_GET_SPARC_ADICAPS

Put this into a new ELF auxiliary vector entry via ARCH_DLINFO.

So now all that's left is supposedly the TAG stuff, please explain
that to me so I can direct you to the correct existing interface to
provide that as well.

Really, try to avoid prtctl, it's poorly typed and almost worse than
ioctl().
The two remaining operations I am looking at are:

1. Is PSTATE.mcde bit set for the process? PR_SET_SPARC_ADI provides this in
its return value in the patch I sent.

2. Is TTE.mcd set for a given virtual address? PR_GET_SPARC_ADI_STATUS
provides this function in the patch I sent.

Setting and clearing version tags can be done entirely from userspace:

        while (addr < end) {
                asm volatile(
                        "stxa %1, [%0]ASI_MCD_PRIMARY\n\t"
                        :
                        : "r" (addr), "r" (version));
                addr += adicap.blksz;
        }
so I do not have to add any kernel code for tags.
Is the effect of that to change the tag associated with a page to
which the caller has write access?

I sense DoS issues in your future.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help