From: Balbir Singh <bsingharora@gmail.com>
To: christophe leroy <christophe.leroy@c-s.fr>,
linuxppc-dev@lists.ozlabs.org, mpe@ellerman.id.au
Cc: naveen.n.rao@linux.vnet.ibm.com, ananth@linux.vnet.ibm.com,
paulus@samba.org, rashmica.g@gmail.com
Subject: Re: [PATCH v1 1/8] powerpc/lib/code-patching: Enhance code patching
Date: Mon, 29 May 2017 08:15:10 +1000 [thread overview]
Message-ID: <1496009710.21894.5.camel@gmail.com> (raw)
In-Reply-To: <d7801b1e-6cb9-1504-03d5-8b7a0a5d04db@c-s.fr>
On Sun, 2017-05-28 at 20:00 +0200, christophe leroy wrote:
>
> Le 25/05/2017 à 05:36, Balbir Singh a écrit :
> > Today our patching happens via direct copy and
> > patch_instruction. The patching code is well
> > contained in the sense that copying bits are limited.
> >
> > While considering implementation of CONFIG_STRICT_RWX,
> > the first requirement is to a create another mapping
> > that will allow for patching. We create the window using
> > text_poke_area, allocated via get_vm_area(), which might
> > be an overkill. We can do per-cpu stuff as well. The
> > downside of these patches that patch_instruction is
> > now synchornized using a lock. Other arches do similar
> > things, but use fixmaps. The reason for not using
> > fixmaps is to make use of any randomization in the
> > future. The code also relies on set_pte_at and pte_clear
> > to do the appropriate tlb flushing.
> >
> > Signed-off-by: Balbir Singh <bsingharora@gmail.com>
> > ---
> > arch/powerpc/lib/code-patching.c | 88 ++++++++++++++++++++++++++++++++++++++--
> > 1 file changed, 84 insertions(+), 4 deletions(-)
> >
>
> [...]
>
> > +static int kernel_map_addr(void *addr)
> > +{
> > + unsigned long pfn;
> > int err;
> >
> > - __put_user_size(instr, addr, 4, err);
> > + if (is_vmalloc_addr(addr))
> > + pfn = vmalloc_to_pfn(addr);
> > + else
> > + pfn = __pa_symbol(addr) >> PAGE_SHIFT;
> > +
> > + err = map_kernel_page((unsigned long)text_poke_area->addr,
> > + (pfn << PAGE_SHIFT), _PAGE_KERNEL_RW | _PAGE_PRESENT);
>
>
>
> Why not use PAGE_KERNEL instead of _PAGE_KERNEL_RW | _PAGE_PRESENT ?
>
Will do
> From asm/pte-common.h :
>
> #define PAGE_KERNEL __pgprot(_PAGE_BASE | _PAGE_KERNEL_RW)
> #define _PAGE_BASE (_PAGE_BASE_NC)
> #define _PAGE_BASE_NC (_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_PSIZE)
>
> Also, in pte-common.h, maybe the following defines could/should be
> reworked once you serie applied, shouldn't it ?
>
> /* Protection used for kernel text. We want the debuggers to be able to
> * set breakpoints anywhere, so don't write protect the kernel text
> * on platforms where such control is possible.
> */
> #if defined(CONFIG_KGDB) || defined(CONFIG_XMON) ||
> defined(CONFIG_BDI_SWITCH) ||\
> defined(CONFIG_KPROBES) || defined(CONFIG_DYNAMIC_FTRACE)
> #define PAGE_KERNEL_TEXT PAGE_KERNEL_X
> #else
> #define PAGE_KERNEL_TEXT PAGE_KERNEL_ROX
> #endif
Yes, I did see them and I want to rework them.
Thanks,
Balbir Singh.
next prev parent reply other threads:[~2017-05-28 22:15 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-25 3:36 [PATCH v1 0/8] Enable STRICT_KERNEL_RWX Balbir Singh
2017-05-25 3:36 ` [PATCH v1 1/8] powerpc/lib/code-patching: Enhance code patching Balbir Singh
2017-05-25 9:11 ` kbuild test robot
2017-05-28 14:29 ` christophe leroy
2017-05-28 22:58 ` Balbir Singh
2017-05-29 6:55 ` Christophe LEROY
2017-05-28 15:59 ` christophe leroy
2017-05-28 22:50 ` Balbir Singh
2017-05-29 5:50 ` Christophe LEROY
2017-05-28 18:00 ` christophe leroy
2017-05-28 22:15 ` Balbir Singh [this message]
2017-05-25 3:36 ` [PATCH v1 2/8] powerpc/kprobes: Move kprobes over to patch_instruction Balbir Singh
2017-05-29 8:50 ` Christophe LEROY
2017-05-29 22:11 ` Balbir Singh
2017-05-25 3:36 ` [PATCH v1 3/8] powerpc/xmon: Add patch_instruction supporf for xmon Balbir Singh
2017-05-25 3:36 ` [PATCH v1 4/8] powerpc/vmlinux.lds: Align __init_begin to 16M Balbir Singh
2017-05-25 3:36 ` [PATCH v1 5/8] powerpc/platform/pseries/lpar: Fix updatepp and updateboltedpp Balbir Singh
2017-05-25 3:36 ` [PATCH v1 6/8] powerpc/mm/hash: Implement mark_rodata_ro() for hash Balbir Singh
2017-05-25 3:36 ` [PATCH v1 7/8] powerpc/Kconfig: Enable STRICT_KERNEL_RWX Balbir Singh
2017-05-25 16:45 ` kbuild test robot
2017-05-29 8:00 ` Christophe LEROY
2017-06-03 5:42 ` Balbir Singh
2017-06-03 5:42 ` Balbir Singh
2017-06-05 5:46 ` Michael Ellerman
2017-06-05 5:46 ` Michael Ellerman
2017-06-05 5:46 ` Michael Ellerman
2017-05-25 3:36 ` [PATCH v1 8/8] powerpc/mm/ptdump: Dump the first entry of the linear mapping as well Balbir Singh
2017-06-05 10:21 ` [v1, " Michael Ellerman
2017-05-25 6:57 ` [PATCH v1 0/8] Enable STRICT_KERNEL_RWX Balbir Singh
2017-05-30 14:32 ` Naveen N. Rao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1496009710.21894.5.camel@gmail.com \
--to=bsingharora@gmail.com \
--cc=ananth@linux.vnet.ibm.com \
--cc=christophe.leroy@c-s.fr \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=naveen.n.rao@linux.vnet.ibm.com \
--cc=paulus@samba.org \
--cc=rashmica.g@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.