Message ID | 771478833d2f5f0d0c7ee706fcc7e57637b5068b.1692003039.git.nicola.vetrini@bugseng.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [XEN,v2] xen/arm: traps: remove unused function 'dump_guest_s1_walk' | expand |
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 >
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. *
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(-) -- 2.34.1