* [PATCH] arm: insn: use set_fixmap_offset to make it more clear @ 2015-08-26 1:24 ` yalin wang 0 siblings, 0 replies; 4+ messages in thread From: yalin wang @ 2015-08-26 1:24 UTC (permalink / raw) To: linux-arm-kernel A little change to patch_map() function, use set_fixmap_offset() to make code more clear. Signed-off-by: yalin wang <yalin.wang2010@gmail.com> --- arch/arm/kernel/patch.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c index 69bda1a..5779105 100644 --- a/arch/arm/kernel/patch.c +++ b/arch/arm/kernel/patch.c @@ -36,9 +36,8 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) else __acquire(&patch_lock); - set_fixmap(fixmap, page_to_phys(page)); - - return (void *) (__fix_to_virt(fixmap) + (uintaddr & ~PAGE_MASK)); + return (void *)set_fixmap_offset(fixmap, page_to_phys(page) + + (uintaddr & ~PAGE_MASK)); } static void __kprobes patch_unmap(int fixmap, unsigned long *flags) -- 1.9.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] arm: insn: use set_fixmap_offset to make it more clear @ 2015-08-26 1:24 ` yalin wang 0 siblings, 0 replies; 4+ messages in thread From: yalin wang @ 2015-08-26 1:24 UTC (permalink / raw) To: linux, yalin.wang2010, wangnan0, nico, masami.hiramatsu.pt, keescook, rabin, linux-arm-kernel, linux-kernel, will.deacon A little change to patch_map() function, use set_fixmap_offset() to make code more clear. Signed-off-by: yalin wang <yalin.wang2010@gmail.com> --- arch/arm/kernel/patch.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c index 69bda1a..5779105 100644 --- a/arch/arm/kernel/patch.c +++ b/arch/arm/kernel/patch.c @@ -36,9 +36,8 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) else __acquire(&patch_lock); - set_fixmap(fixmap, page_to_phys(page)); - - return (void *) (__fix_to_virt(fixmap) + (uintaddr & ~PAGE_MASK)); + return (void *)set_fixmap_offset(fixmap, page_to_phys(page) + + (uintaddr & ~PAGE_MASK)); } static void __kprobes patch_unmap(int fixmap, unsigned long *flags) -- 1.9.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] arm: insn: use set_fixmap_offset to make it more clear 2015-08-26 1:24 ` yalin wang @ 2015-08-27 17:26 ` Rabin Vincent -1 siblings, 0 replies; 4+ messages in thread From: Rabin Vincent @ 2015-08-27 17:26 UTC (permalink / raw) To: linux-arm-kernel On Wed, Aug 26, 2015 at 09:24:26AM +0800, yalin wang wrote: > A little change to patch_map() function, > use set_fixmap_offset() to make code more clear. > > Signed-off-by: yalin wang <yalin.wang2010@gmail.com> > --- > arch/arm/kernel/patch.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c > index 69bda1a..5779105 100644 > --- a/arch/arm/kernel/patch.c > +++ b/arch/arm/kernel/patch.c > @@ -36,9 +36,8 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) > else > __acquire(&patch_lock); > > - set_fixmap(fixmap, page_to_phys(page)); > - > - return (void *) (__fix_to_virt(fixmap) + (uintaddr & ~PAGE_MASK)); > + return (void *)set_fixmap_offset(fixmap, page_to_phys(page) + > + (uintaddr & ~PAGE_MASK)); > } Perhaps a temporary variable to make it clearerer? Something like this: diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c index 69bda1a..0b8e594 100644 --- a/arch/arm/kernel/patch.c +++ b/arch/arm/kernel/patch.c @@ -23,6 +23,7 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) unsigned int uintaddr = (uintptr_t) addr; bool module = !core_kernel_text(uintaddr); struct page *page; + phys_addr_t phys; if (module && IS_ENABLED(CONFIG_DEBUG_SET_MODULE_RONX)) page = vmalloc_to_page(addr); @@ -36,9 +37,8 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) else __acquire(&patch_lock); - set_fixmap(fixmap, page_to_phys(page)); - - return (void *) (__fix_to_virt(fixmap) + (uintaddr & ~PAGE_MASK)); + phys = page_to_phys(page) + (uintaddr & ~PAGE_MASK); + return (void *) set_fixmap_offset(fixmap, phys); } static void __kprobes patch_unmap(int fixmap, unsigned long *flags) ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] arm: insn: use set_fixmap_offset to make it more clear @ 2015-08-27 17:26 ` Rabin Vincent 0 siblings, 0 replies; 4+ messages in thread From: Rabin Vincent @ 2015-08-27 17:26 UTC (permalink / raw) To: yalin wang Cc: linux, wangnan0, nico, masami.hiramatsu.pt, keescook, linux-arm-kernel, linux-kernel, will.deacon On Wed, Aug 26, 2015 at 09:24:26AM +0800, yalin wang wrote: > A little change to patch_map() function, > use set_fixmap_offset() to make code more clear. > > Signed-off-by: yalin wang <yalin.wang2010@gmail.com> > --- > arch/arm/kernel/patch.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c > index 69bda1a..5779105 100644 > --- a/arch/arm/kernel/patch.c > +++ b/arch/arm/kernel/patch.c > @@ -36,9 +36,8 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) > else > __acquire(&patch_lock); > > - set_fixmap(fixmap, page_to_phys(page)); > - > - return (void *) (__fix_to_virt(fixmap) + (uintaddr & ~PAGE_MASK)); > + return (void *)set_fixmap_offset(fixmap, page_to_phys(page) + > + (uintaddr & ~PAGE_MASK)); > } Perhaps a temporary variable to make it clearerer? Something like this: diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c index 69bda1a..0b8e594 100644 --- a/arch/arm/kernel/patch.c +++ b/arch/arm/kernel/patch.c @@ -23,6 +23,7 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) unsigned int uintaddr = (uintptr_t) addr; bool module = !core_kernel_text(uintaddr); struct page *page; + phys_addr_t phys; if (module && IS_ENABLED(CONFIG_DEBUG_SET_MODULE_RONX)) page = vmalloc_to_page(addr); @@ -36,9 +37,8 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) else __acquire(&patch_lock); - set_fixmap(fixmap, page_to_phys(page)); - - return (void *) (__fix_to_virt(fixmap) + (uintaddr & ~PAGE_MASK)); + phys = page_to_phys(page) + (uintaddr & ~PAGE_MASK); + return (void *) set_fixmap_offset(fixmap, phys); } static void __kprobes patch_unmap(int fixmap, unsigned long *flags) ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-08-27 17:26 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-08-26 1:24 [PATCH] arm: insn: use set_fixmap_offset to make it more clear yalin wang 2015-08-26 1:24 ` yalin wang 2015-08-27 17:26 ` Rabin Vincent 2015-08-27 17:26 ` Rabin Vincent
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.