Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/sh/shdmac.c | 5 +
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
index
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/at_hdmac.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 75f38d19fcbe
We can do the compiling test with COMPILE_TEST.
Thisi patch adds the COMPILE_TEST for the drivers.
Signed-off-by: Huang Shijie
---
drivers/dma/Kconfig| 24
drivers/dma/ti/Kconfig | 2 +-
2 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/dma
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
remove label err_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/dma-jz4740.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/dma-jz4740.c
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
remove label err_unregister_dev
Signed-off-by: Huang Shijie
---
drivers/dma/dma-jz4780.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/dma/dma
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/sh/rcar-dmac.c | 5 +
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c
index
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/sh/shdmac.c | 5 +
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
index
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/at_hdmac.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 75f38d19fcbe
We can do the compiling test with COMPILE_TEST.
Thisi patch adds the COMPILE_TEST for the drivers.
Signed-off-by: Huang Shijie
---
drivers/dma/Kconfig| 24
drivers/dma/ti/Kconfig | 2 +-
2 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/dma
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
remove label err_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/dma-jz4740.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/dma-jz4740.c
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
remove label err_unregister_dev
Signed-off-by: Huang Shijie
---
drivers/dma/dma-jz4780.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/dma/dma
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/ti/cppi41.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/ti/cppi41.c b/drivers/dma/ti/cppi41.c
index
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
remove label err_unregister_dma
Signed-off-by: Huang Shijie
---
drivers/dma/qcom/bam_dma.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/qcom
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/mediatek/mtk-hsdma.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/dma/mediatek/mtk-hsdma.c b/drivers/dma/mediatek
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
remove label e_dma_dev_unreg
Signed-off-by: Huang Shijie
---
drivers/dma/nbpfaxi.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/nbpfaxi.c b
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/qcom/hidma.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/dma/qcom/hidma.c b/drivers/dma/qcom/hidma.c
index
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
remove label e_dma_dev_unreg
Signed-off-by: Huang Shijie
---
drivers/dma/nbpfaxi.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/nbpfaxi.c b
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/qcom/hidma.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/dma/qcom/hidma.c b/drivers/dma/qcom/hidma.c
index
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
remove label err_unregister_dma
Signed-off-by: Huang Shijie
---
drivers/dma/qcom/bam_dma.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/qcom
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/mediatek/mtk-hsdma.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/dma/mediatek/mtk-hsdma.c b/drivers/dma/mediatek
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
return error if it fails.
Signed-off-by: Huang Shijie
---
drivers/dma/mmp_tdma.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/mmp_tdma.c b
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/stm32-mdma.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/dma/stm32-mdma.c b/drivers/dma/stm32-mdma.c
index
Use dmaenginem_async_device_register to simplify the code,
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/xilinx/xilinx_dma.c | 5 +
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/ti/omap-dma.c | 5 +
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c
index
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
remove the label err_dma_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/sun6i-dma.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/sun6i-dma.c b
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/txx9dmac.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/dma/txx9dmac.c b/drivers/dma/txx9dmac.c
index eb45af71d3a3
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/ti/edma.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c
index ceabdea40ae0
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
return error if it fails.
Signed-off-by: Huang Shijie
---
drivers/dma/mmp_tdma.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/mmp_tdma.c b
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/stm32-mdma.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/dma/stm32-mdma.c b/drivers/dma/stm32-mdma.c
index
Use dmaenginem_async_device_register to simplify the code,
remove dma_async_device_unregister.
Signed-off-by: Huang Shijie
---
drivers/dma/xilinx/xilinx_dma.c | 5 +
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/ti/omap-dma.c | 5 +
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c
index
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
remove the label err_dma_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/sun6i-dma.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/dma/sun6i-dma.c b
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/txx9dmac.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/dma/txx9dmac.c b/drivers/dma/txx9dmac.c
index eb45af71d3a3
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
Signed-off-by: Huang Shijie
---
drivers/dma/ti/edma.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c
index ceabdea40ae0
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
remove the label dma_remove
Signed-off-by: Huang Shijie
---
drivers/dma/tegra210-adma.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/dma/tegra210-adma.c b
Use dmaenginem_async_device_register to simplify the code:
remove dma_async_device_unregister
remove the label dma_remove
Signed-off-by: Huang Shijie
---
drivers/dma/tegra210-adma.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/dma/tegra210-adma.c b
This patch adds the dmam_async_device_register for DMA code.
Use the Devres to call the release for the DMA engine driver.
Signed-off-by: Huang Shijie
---
Documentation/driver-model/devres.txt | 1 +
drivers/dma/dmaengine.c | 35 +++
include/linux
This patch adds the dmam_async_device_register for DMA code.
Use the Devres to call the release for the DMA engine driver.
Signed-off-by: Huang Shijie
---
Documentation/driver-model/devres.txt | 1 +
drivers/dma/dmaengine.c | 35 +++
include/linux
fined but not used
> [-Wunused-function]
> static struct page *alloc_gigantic_page(int nid, unsigned int order)
The warning should be fixed by the patch (or next version of this patch):
http://marc.info/?l=linux-mm=147867535926059=2
Thanks
Huang Shijie
fined but not used
> [-Wunused-function]
> static struct page *alloc_gigantic_page(int nid, unsigned int order)
The warning should be fixed by the patch (or next version of this patch):
http://marc.info/?l=linux-mm=147867535926059=2
Thanks
Huang Shijie
Hi Will & Catalin,
On Tue, Nov 08, 2016 at 04:36:43PM +, Will Deacon wrote:
> On Tue, Nov 08, 2016 at 02:09:09PM +, Catalin Marinas wrote:
> > On Tue, Nov 08, 2016 at 01:44:37PM +0800, Huang Shijie wrote:
> > > (3) The test result in the Softi
Hi Will & Catalin,
On Tue, Nov 08, 2016 at 04:36:43PM +, Will Deacon wrote:
> On Tue, Nov 08, 2016 at 02:09:09PM +, Catalin Marinas wrote:
> > On Tue, Nov 08, 2016 at 01:44:37PM +0800, Huang Shijie wrote:
> > > (3) The test result in the Softi
The libhugetlbfs meets several failures since the following functions
do not use the correct address:
huge_ptep_get_and_clear()
huge_ptep_set_access_flags()
huge_ptep_set_wrprotect()
huge_ptep_clear_flush()
This patch fixes the wrong address for them.
Signed-off-by: Huang Shijie
The libhugetlbfs meets several failures since the following functions
do not use the correct address:
huge_ptep_get_and_clear()
huge_ptep_set_access_flags()
huge_ptep_set_wrprotect()
huge_ptep_clear_flush()
This patch fixes the wrong address for them.
Signed-off-by: Huang Shijie
= 2M (per huge page size)
Test result : PASS
3.2) PMD + Contiguous bit : 512M x 32 = 16G (per huge page size)
Test result : no hardware to support this test
v1 -- > v2:
1.) remove the redundant checks for PGD/PUD
Huang Shijie (2):
arm64: hugetlb:
= 2M (per huge page size)
Test result : PASS
3.2) PMD + Contiguous bit : 512M x 32 = 16G (per huge page size)
Test result : no hardware to support this test
v1 -- > v2:
1.) remove the redundant checks for PGD/PUD
Huang Shijie (2):
arm64: hugetlb:
MD + Contiguous bit).
This patch removes wrong pmd check, and fixes this dead loop.
This patch also removes the redundant checks for PGD/PUD in
the find_num_contig().
Acked-by: Steve Capper <steve.cap...@arm.com>
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/mm/hug
MD + Contiguous bit).
This patch removes wrong pmd check, and fixes this dead loop.
This patch also removes the redundant checks for PGD/PUD in
the find_num_contig().
Acked-by: Steve Capper
Signed-off-by: Huang Shijie
---
arch/arm64/mm/hugetlbpage.c | 12
1 file changed, 12 delet
On Fri, Nov 04, 2016 at 09:48:14AM -0600, Catalin Marinas wrote:
> On Fri, Nov 04, 2016 at 10:52:17AM +0800, Huang Shijie wrote:
> > On Thu, Nov 03, 2016 at 06:16:16PM -0600, Catalin Marinas wrote:
> > > On Thu, Nov 03, 2016 at 10:27:38AM +0800, Huang Shijie wrote:
> > >
On Fri, Nov 04, 2016 at 09:48:14AM -0600, Catalin Marinas wrote:
> On Fri, Nov 04, 2016 at 10:52:17AM +0800, Huang Shijie wrote:
> > On Thu, Nov 03, 2016 at 06:16:16PM -0600, Catalin Marinas wrote:
> > > On Thu, Nov 03, 2016 at 10:27:38AM +0800, Huang Shijie wrote:
> > >
On Thu, Nov 03, 2016 at 06:16:16PM -0600, Catalin Marinas wrote:
> On Thu, Nov 03, 2016 at 10:27:38AM +0800, Huang Shijie wrote:
> > diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c
> > index 2e49bd2..4811ef1 100644
> > --- a/arch/arm64/mm/hugetlbpage.c
On Thu, Nov 03, 2016 at 06:16:16PM -0600, Catalin Marinas wrote:
> On Thu, Nov 03, 2016 at 10:27:38AM +0800, Huang Shijie wrote:
> > diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c
> > index 2e49bd2..4811ef1 100644
> > --- a/arch/arm64/mm/hugetlbpage.c
MD + Contiguous bit).
This patch removes wrong pmd check, and fixes this dead loop.
Acked-by: Steve Capper <steve.cap...@arm.com>
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/mm/hugetlbpage.c | 4
1 file changed, 4 deletions(-)
diff --git a/arch/arm64/m
MD + Contiguous bit).
This patch removes wrong pmd check, and fixes this dead loop.
Acked-by: Steve Capper
Signed-off-by: Huang Shijie
---
arch/arm64/mm/hugetlbpage.c | 4
1 file changed, 4 deletions(-)
diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c
index 2e49
= 2M (per huge page size)
Test result : PASS
3.2) PMD + Contiguous bit : 512M x 32 = 16G (per huge page size)
Test result : no hardware to support this test
Huang Shijie (2):
arm64: hugetlb: remove the wrong pmd check in find_num_contig()
arm64: hugetl
= 2M (per huge page size)
Test result : PASS
3.2) PMD + Contiguous bit : 512M x 32 = 16G (per huge page size)
Test result : no hardware to support this test
Huang Shijie (2):
arm64: hugetlb: remove the wrong pmd check in find_num_contig()
arm64: hugetl
<steve.cap...@arm.com>
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/mm/hugetlbpage.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c
index 4811ef1..0e9401b 100644
--- a/arch/arm64/mm/h
-off-by: Huang Shijie
---
arch/arm64/mm/hugetlbpage.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c
index 4811ef1..0e9401b 100644
--- a/arch/arm64/mm/hugetlbpage.c
+++ b/arch/arm64/mm/hugetlbpage.c
@@ -208,7
pport available in the ARM v8 kernel.
>
I tested the whole patch set with kprobe/jprobe/kretprobe in my Juno-r1 board,
it works fine.
Tested-by: Huang Shijie <shijie.hu...@arm.com>
thanks
Huang Shijie
v8 kernel.
>
I tested the whole patch set with kprobe/jprobe/kretprobe in my Juno-r1 board,
it works fine.
Tested-by: Huang Shijie
thanks
Huang Shijie
0 @@ static void handler_post(struct kprobe *p, struct pt_regs
> *regs,
> printk(KERN_INFO "<%s> post_handler: p->addr = 0x%p, ex1 = 0x%lx\n",
> p->symbol_name, p->addr, regs->ex1);
> #endif
> +#ifdef CONFIG_ARM64
> + pr_info("post_handler: p->addr = 0x%p, pc = 0x%lx\n",
> + p->addr, (long)regs->pc);
> +#endif
> }
Ditto.
thanks
Huang Shijie
gt; printk(KERN_INFO "<%s> post_handler: p->addr = 0x%p, ex1 = 0x%lx\n",
> p->symbol_name, p->addr, regs->ex1);
> #endif
> +#ifdef CONFIG_ARM64
> + pr_info("post_handler: p->addr = 0x%p, pc = 0x%lx\n",
> + p->addr, (long)regs->pc);
> +#endif
> }
Ditto.
thanks
Huang Shijie
There are two pachs which will restore the syscall registers (x0 - x7)
separately: the hardirq trace code and the context tracking code.
This patch makes the code to restore the syscall registers only once.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/kernel/entry.
There are two pachs which will restore the syscall registers (x0 - x7)
separately: the hardirq trace code and the context tracking code.
This patch makes the code to restore the syscall registers only once.
Signed-off-by: Huang Shijie
---
arch/arm64/kernel/entry.S | 13 +
1 file
We record the hardirq flags changes in the entry/exit code now,
So the code becomes duplicated, just remove it.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/kernel/entry.S | 12
arch/arm64/mm/fault.c | 10 --
2 files changed, 22 deletions(-)
We will add the hardirq flags trace code in the disable_irq, the trace
code may changes the x0, so save the x0 back into the stack before
disabling the interrupt,
This patch makes preparation for the later patch.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/kernel/e
We record the hardirq flags changes in the entry/exit code now,
So the code becomes duplicated, just remove it.
Signed-off-by: Huang Shijie
---
arch/arm64/kernel/entry.S | 12
arch/arm64/mm/fault.c | 10 --
2 files changed, 22 deletions(-)
diff --git a/arch/arm64
We will add the hardirq flags trace code in the disable_irq, the trace
code may changes the x0, so save the x0 back into the stack before
disabling the interrupt,
This patch makes preparation for the later patch.
Signed-off-by: Huang Shijie
---
arch/arm64/kernel/entry.S | 2 +-
1 file changed
This patch uses the callee-saved registers x19/x20/scno to save the
x0/x7/x8 which will be used in the syscall path.
This patch makes preparation for the trace code.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/kernel/entry.S | 16 +---
1 file chang
Just as the arm32 code does, record the hardirq changes at the entry/exit
code.
The trace code may changes some registers, but the syscall path
needs the x0 ~ x7, we restore them in the el0_svc_naked.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/kernel/entry.
This patch adds restore_syscall_regs to restore the x0~x7 arguments from
the stack.
And this patch also uses this macro to simplify the code.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/kernel/entry.S | 25 +
1 file changed, 13 insertions(
This patch uses the callee-saved registers x19/x20/scno to save the
x0/x7/x8 which will be used in the syscall path.
This patch makes preparation for the trace code.
Signed-off-by: Huang Shijie
---
arch/arm64/kernel/entry.S | 16 +---
1 file changed, 13 insertions(+), 3 deletions
Just as the arm32 code does, record the hardirq changes at the entry/exit
code.
The trace code may changes some registers, but the syscall path
needs the x0 ~ x7, we restore them in the el0_svc_naked.
Signed-off-by: Huang Shijie
---
arch/arm64/kernel/entry.S | 15 +++
1 file
This patch adds restore_syscall_regs to restore the x0~x7 arguments from
the stack.
And this patch also uses this macro to simplify the code.
Signed-off-by: Huang Shijie
---
arch/arm64/kernel/entry.S | 25 +
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git
the esr_el1,
2.) uses the x26 to save the far_el1.
And copy x25/x26 back to x1/x0 in the proper places, such as
el1_da/el1_dbg/el1_sp_pc.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/kernel/entry.S | 10 +++---
1 file changed, 7 insertions(+), 3 deletions(-)
We have added the trace code to the interrupt enable/disable macros,
so the trace code in work_pending and do_notify_resume are
duplicated, just remove them.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/kernel/entry.S | 3 ---
arch/arm64/kernel/signal.c | 6 --
2
the esr_el1,
2.) uses the x26 to save the far_el1.
And copy x25/x26 back to x1/x0 in the proper places, such as
el1_da/el1_dbg/el1_sp_pc.
Signed-off-by: Huang Shijie
---
arch/arm64/kernel/entry.S | 10 +++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/kernel
We have added the trace code to the interrupt enable/disable macros,
so the trace code in work_pending and do_notify_resume are
duplicated, just remove them.
Signed-off-by: Huang Shijie
---
arch/arm64/kernel/entry.S | 3 ---
arch/arm64/kernel/signal.c | 6 --
2 files changed, 9 deletions
This patch adds the hardirq flags trace code for irq macros.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
arch/arm64/include/asm/assembler.h | 9 +
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/include/asm/assembler.h
b/arch/arm64/include/asm/assembler.h
-April/420154.html
Thanks to the code review of Steve/James/Mark, I really appriciate it.
Huang Shijie (9):
arm64: entry: use the callee-saved registers to save some registers
arm64: entry: add a new macro to restore the registers for syscall
arm64: entry: record the hardirq changes
This patch adds the hardirq flags trace code for irq macros.
Signed-off-by: Huang Shijie
---
arch/arm64/include/asm/assembler.h | 9 +
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/include/asm/assembler.h
b/arch/arm64/include/asm/assembler.h
index 10b017c..0be1d29 100644
-April/420154.html
Thanks to the code review of Steve/James/Mark, I really appriciate it.
Huang Shijie (9):
arm64: entry: use the callee-saved registers to save some registers
arm64: entry: add a new macro to restore the registers for syscall
arm64: entry: record the hardirq changes
We prefer to use the pr_* to print out the log now, this patch converts
the printk to pr_info. In the error path, use the pr_err to replace the
printk.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
samples/kprobes/kprobe_example.c | 29 -
1 file chang
We prefer to use the pr_* to print out the log now, this patch converts
the printk to pr_info. In the error path, use the pr_err to replace the
printk.
Signed-off-by: Huang Shijie
---
samples/kprobes/kprobe_example.c | 29 -
1 file changed, 12 insertions(+), 17
converts the retval to "unsigned long" type, and fix the
overflow issue.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
samples/kprobes/kretprobe_example.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/samples/kprobes/kretprobe_example.c
b/samples/kprob
converts the retval to "unsigned long" type, and fix the
overflow issue.
Signed-off-by: Huang Shijie
---
samples/kprobes/kretprobe_example.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/samples/kprobes/kretprobe_example.c
b/samples/kprobes/kretprobe_example.c
We prefer to use the pr_* to print out the log now, this patch converts
the printk to pr_info. In the error path, use the pr_err to replace the
printk.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
samples/kprobes/jprobe_example.c | 6 +++---
1 file changed, 3 insertions(+), 3 del
We prefer to use the pr_* to print out the log now, this patch converts
the printk to pr_info. In the error path, use the pr_err to replace the
printk.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
samples/kprobes/kretprobe_example.c | 12 +---
1 file changed, 5 insertions
We prefer to use the pr_* to print out the log now, this patch converts
the printk to pr_info. In the error path, use the pr_err to replace the
printk.
Signed-off-by: Huang Shijie
---
samples/kprobes/jprobe_example.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git
We prefer to use the pr_* to print out the log now, this patch converts
the printk to pr_info. In the error path, use the pr_err to replace the
printk.
Signed-off-by: Huang Shijie
---
samples/kprobes/kretprobe_example.c | 12 +---
1 file changed, 5 insertions(+), 7 deletions(-)
diff
ch64_insn_is_bcond(insn)) {
> + asi->handler = simulate_b_cond;
> + } else if (aarch64_insn_is_cbz(insn) ||
> + aarch64_insn_is_cbnz(insn)) {
> + asi->handler = simulate_cbz_cbnz;
> + } else if (aarch64_insn_is_tbz(insn) ||
> + aarch64_insn
_is_cbz(insn) ||
> + aarch64_insn_is_cbnz(insn)) {
> + asi->handler = simulate_cbz_cbnz;
> + } else if (aarch64_insn_is_tbz(insn) ||
> + aarch64_insn_is_tbnz(insn)) {
> + asi->handler = simulate_tbz_tbnz;
> + } else if (aarch64_in
.ko symbol="xxx"
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
v1 -- > v2:
Add more comment for this patch.
---
samples/kprobes/kprobe_example.c | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/samples/kprobes/kprobe_example.c b/samples/k
.ko symbol="xxx"
Signed-off-by: Huang Shijie
---
v1 -- > v2:
Add more comment for this patch.
---
samples/kprobes/kprobe_example.c | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/samples/kprobes/kprobe_example.c b/samples/kprobes/kprobe_example.c
.ko symbol="xxx"
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
v1 -- > v2:
Add more comment for this patch.
---
samples/kprobes/kprobe_example.c | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/samples/kprobes/kprobe_example.c b/samples/k
.ko symbol="xxx"
Signed-off-by: Huang Shijie
---
v1 -- > v2:
Add more comment for this patch.
---
samples/kprobes/kprobe_example.c | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/samples/kprobes/kprobe_example.c b/samples/kprobes/kprobe_example.c
gt; diff --git a/arch/arm64/kernel/kprobes.c b/arch/arm64/kernel/kprobes.c
> index db2d95c..b21ed00 100644
> --- a/arch/arm64/kernel/kprobes.c
> +++ b/arch/arm64/kernel/kprobes.c
> @@ -714,6 +714,7 @@ int __kprobes setjmp_pre_handler(struct kprobe *p, struct
> pt_regs *regs)
>
> instruction_pointer_set(regs, (long)jp->entry);
> preempt_disable();
> + pause_graph_tracing();
> return 1;
> }
>
> @@ -757,6 +758,7 @@ int __kprobes longjmp_break_handler(struct kprobe *p,
> struct pt_regs *regs)
> show_regs(regs);
> BUG();
> }
> + unpause_graph_tracing();
> *regs = kcb->jprobe_saved_regs;
> memcpy((void *)stack_addr, kcb->jprobes_stack,
>MIN_STACK_SIZE(stack_addr));
>
>
I tested this fix, it works.
thanks
Huang Shijie
64/kernel/kprobes.c b/arch/arm64/kernel/kprobes.c
> index db2d95c..b21ed00 100644
> --- a/arch/arm64/kernel/kprobes.c
> +++ b/arch/arm64/kernel/kprobes.c
> @@ -714,6 +714,7 @@ int __kprobes setjmp_pre_handler(struct kprobe *p, struct
> pt_regs *regs)
>
> instruction_pointer_set(regs, (long)jp->entry);
> preempt_disable();
> + pause_graph_tracing();
> return 1;
> }
>
> @@ -757,6 +758,7 @@ int __kprobes longjmp_break_handler(struct kprobe *p,
> struct pt_regs *regs)
> show_regs(regs);
> BUG();
> }
> + unpause_graph_tracing();
> *regs = kcb->jprobe_saved_regs;
> memcpy((void *)stack_addr, kcb->jprobes_stack,
>MIN_STACK_SIZE(stack_addr));
>
>
I tested this fix, it works.
thanks
Huang Shijie
This patch adds a new module parameter which can be used as the
symbol name. With this parameter, the module becomes more flexable.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
samples/kprobes/kprobe_example.c | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff
Print out the symbol name for the hooks, it makes the logs more readable.
Signed-off-by: Huang Shijie <shijie.hu...@arm.com>
---
samples/kprobes/kprobe_example.c | 32
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/samples/k
101 - 200 of 832 matches
Mail list logo