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
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
>
© 2016 - 2026 Red Hat, Inc.