[XEN PATCH v2] xen/arm: traps: remove unused function 'dump_guest_s1_walk'

Nicola Vetrini posted 1 patch 8 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/771478833d2f5f0d0c7ee706fcc7e57637b5068b.1692003039.git.nicola.vetrini@bugseng.com
xen/arch/arm/traps.c | 57 --------------------------------------------
1 file changed, 57 deletions(-)
[XEN PATCH v2] xen/arm: traps: remove unused function 'dump_guest_s1_walk'
Posted by Nicola Vetrini 8 months, 2 weeks ago
The function has no uses in the codebase, and can be removed.
This also avoids the violation of MISRA C:2012 Rule 8.4 and Rule 2.1
because it has no declaration and the function's code is unreachable.

Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- Modified commit message according to review suggestions.

The function in question has no callers and its removal has already
been proposed (and acked) as part of this larger series [1].
There have been further bugfixes to that function (commits
a43cc8fc0827 and 60e06f2b1b2b) but they do not add any caller,
hence it can be removed.

[1] https://lore.kernel.org/xen-devel/1395766541-23979-27-git-send-email-julien.grall@linaro.org/
---
 xen/arch/arm/traps.c | 57 --------------------------------------------
 1 file changed, 57 deletions(-)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 7baddfdc57b3..46c9a4031b30 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1686,63 +1686,6 @@ void handle_ro_raz(struct cpu_user_regs *regs,
     handle_ro_read_val(regs, regidx, read, hsr, min_el, 0);
 }

-void dump_guest_s1_walk(struct domain *d, vaddr_t addr)
-{
-    register_t ttbcr = READ_SYSREG(TCR_EL1);
-    uint64_t ttbr0 = READ_SYSREG64(TTBR0_EL1);
-    uint32_t offset;
-    uint32_t *first = NULL, *second = NULL;
-    mfn_t mfn;
-
-    mfn = gfn_to_mfn(d, gaddr_to_gfn(ttbr0));
-
-    printk("dom%d VA 0x%08"PRIvaddr"\n", d->domain_id, addr);
-    printk("    TTBCR: 0x%"PRIregister"\n", ttbcr);
-    printk("    TTBR0: 0x%016"PRIx64" = 0x%"PRIpaddr"\n",
-           ttbr0, mfn_to_maddr(mfn));
-
-    if ( ttbcr & TTBCR_EAE )
-    {
-        printk("Cannot handle LPAE guest PT walk\n");
-        return;
-    }
-    if ( (ttbcr & TTBCR_N_MASK) != 0 )
-    {
-        printk("Cannot handle TTBR1 guest walks\n");
-        return;
-    }
-
-    if ( mfn_eq(mfn, INVALID_MFN) )
-    {
-        printk("Failed TTBR0 maddr lookup\n");
-        goto done;
-    }
-    first = map_domain_page(mfn);
-
-    offset = addr >> (12+8);
-    printk("1ST[0x%"PRIx32"] (0x%"PRIpaddr") = 0x%08"PRIx32"\n",
-           offset, mfn_to_maddr(mfn), first[offset]);
-    if ( !(first[offset] & 0x1) ||
-          (first[offset] & 0x2) )
-        goto done;
-
-    mfn = gfn_to_mfn(d, gaddr_to_gfn(first[offset]));
-
-    if ( mfn_eq(mfn, INVALID_MFN) )
-    {
-        printk("Failed L1 entry maddr lookup\n");
-        goto done;
-    }
-    second = map_domain_page(mfn);
-    offset = (addr >> 12) & 0x3FF;
-    printk("2ND[0x%"PRIx32"] (0x%"PRIpaddr") = 0x%08"PRIx32"\n",
-           offset, mfn_to_maddr(mfn), second[offset]);
-
-done:
-    if ( second ) unmap_domain_page(second);
-    if ( first ) unmap_domain_page(first);
-}
-
 /*
  * Return the value of the hypervisor fault address register.
  *
--
2.34.1
Re: [XEN PATCH v2] xen/arm: traps: remove unused function 'dump_guest_s1_walk'
Posted by Stefano Stabellini 8 months, 2 weeks ago
On Mon, 14 Aug 2023, Nicola Vetrini wrote:
> The function has no uses in the codebase, and can be removed.
> This also avoids the violation of MISRA C:2012 Rule 8.4 and Rule 2.1
> because it has no declaration and the function's code is unreachable.
> 
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

> ---
> Changes in v2:
> - Modified commit message according to review suggestions.
> 
> The function in question has no callers and its removal has already
> been proposed (and acked) as part of this larger series [1].
> There have been further bugfixes to that function (commits
> a43cc8fc0827 and 60e06f2b1b2b) but they do not add any caller,
> hence it can be removed.
> 
> [1] https://lore.kernel.org/xen-devel/1395766541-23979-27-git-send-email-julien.grall@linaro.org/
> ---
>  xen/arch/arm/traps.c | 57 --------------------------------------------
>  1 file changed, 57 deletions(-)
> 
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index 7baddfdc57b3..46c9a4031b30 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -1686,63 +1686,6 @@ void handle_ro_raz(struct cpu_user_regs *regs,
>      handle_ro_read_val(regs, regidx, read, hsr, min_el, 0);
>  }
> 
> -void dump_guest_s1_walk(struct domain *d, vaddr_t addr)
> -{
> -    register_t ttbcr = READ_SYSREG(TCR_EL1);
> -    uint64_t ttbr0 = READ_SYSREG64(TTBR0_EL1);
> -    uint32_t offset;
> -    uint32_t *first = NULL, *second = NULL;
> -    mfn_t mfn;
> -
> -    mfn = gfn_to_mfn(d, gaddr_to_gfn(ttbr0));
> -
> -    printk("dom%d VA 0x%08"PRIvaddr"\n", d->domain_id, addr);
> -    printk("    TTBCR: 0x%"PRIregister"\n", ttbcr);
> -    printk("    TTBR0: 0x%016"PRIx64" = 0x%"PRIpaddr"\n",
> -           ttbr0, mfn_to_maddr(mfn));
> -
> -    if ( ttbcr & TTBCR_EAE )
> -    {
> -        printk("Cannot handle LPAE guest PT walk\n");
> -        return;
> -    }
> -    if ( (ttbcr & TTBCR_N_MASK) != 0 )
> -    {
> -        printk("Cannot handle TTBR1 guest walks\n");
> -        return;
> -    }
> -
> -    if ( mfn_eq(mfn, INVALID_MFN) )
> -    {
> -        printk("Failed TTBR0 maddr lookup\n");
> -        goto done;
> -    }
> -    first = map_domain_page(mfn);
> -
> -    offset = addr >> (12+8);
> -    printk("1ST[0x%"PRIx32"] (0x%"PRIpaddr") = 0x%08"PRIx32"\n",
> -           offset, mfn_to_maddr(mfn), first[offset]);
> -    if ( !(first[offset] & 0x1) ||
> -          (first[offset] & 0x2) )
> -        goto done;
> -
> -    mfn = gfn_to_mfn(d, gaddr_to_gfn(first[offset]));
> -
> -    if ( mfn_eq(mfn, INVALID_MFN) )
> -    {
> -        printk("Failed L1 entry maddr lookup\n");
> -        goto done;
> -    }
> -    second = map_domain_page(mfn);
> -    offset = (addr >> 12) & 0x3FF;
> -    printk("2ND[0x%"PRIx32"] (0x%"PRIpaddr") = 0x%08"PRIx32"\n",
> -           offset, mfn_to_maddr(mfn), second[offset]);
> -
> -done:
> -    if ( second ) unmap_domain_page(second);
> -    if ( first ) unmap_domain_page(first);
> -}
> -
>  /*
>   * Return the value of the hypervisor fault address register.
>   *
> --
> 2.34.1
>