[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 13/24] hw/arm/smmu-common: VMSAv8-64 page table w
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PULL 13/24] hw/arm/smmu-common: VMSAv8-64 page table walk |
Date: |
Mon, 14 May 2018 17:40:07 +0100 |
On 4 May 2018 at 18:15, Peter Maydell <address@hidden> wrote:
> From: Eric Auger <address@hidden>
>
> This patch implements the page table walk for VMSAv8-64.
Hi Eric;
> + * get_block_pte_address - return block descriptor output address and block
> size
> + * ARM ARM Figure D4-16 VMSAv8-64 level0, level1, and level 2 descriptor
> formats
> + */
> +static inline hwaddr get_block_pte_address(uint64_t pte, int level,
> + int granule_sz, uint64_t *bsz)
> +{
> + int n = (granule_sz - 3) * (4 - level) + 3;
> +
> + *bsz = 1 << n;
Coverity (CID 1391010) points out that this can overflow if n > 31,
because it's only doing 32-bit arithmetic.
I think this is possible for some page table formats, so using
"1ULL" rather than "1" should make coverity happy.
Incidentally, isn't
int n = (granule_sz - 3) * (4 - level) + 3;
equivalent to
int n = level_shift(level, granule_sz);
?
> + return PTE_ADDRESS(pte, n);
> +}
thanks
-- PMM
- [Qemu-devel] [PULL 11/24] hw/arm/smmu-common: smmu base device and datatypes, (continued)
- [Qemu-devel] [PULL 11/24] hw/arm/smmu-common: smmu base device and datatypes, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 15/24] hw/arm/smmuv3: Wired IRQ and GERROR helpers, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 16/24] hw/arm/smmuv3: Queue helpers, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 17/24] hw/arm/smmuv3: Implement MMIO write operations, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 19/24] hw/arm/smmuv3: Implement translate callback, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 22/24] hw/arm/virt: Add SMMUv3 to the virt board, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 18/24] hw/arm/smmuv3: Event queue recording helper, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 13/24] hw/arm/smmu-common: VMSAv8-64 page table walk, Peter Maydell, 2018/05/04
- Re: [Qemu-devel] [PULL 13/24] hw/arm/smmu-common: VMSAv8-64 page table walk,
Peter Maydell <=
- [Qemu-devel] [PULL 20/24] hw/arm/smmuv3: Abort on vfio or vhost case, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 21/24] target/arm/kvm: Translate the MSI doorbell in kvm_arch_fixup_msi_route, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 24/24] hw/arm/virt: Introduce the iommu option, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 23/24] hw/arm/virt-acpi-build: Add smmuv3 node in IORT table, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 14/24] hw/arm/smmuv3: Skeleton, Peter Maydell, 2018/05/04
- Re: [Qemu-devel] [PULL 00/24] target-arm queue, Peter Maydell, 2018/05/04
- [Qemu-devel] [PULL 00/24] target-arm queue, Peter Maydell, 2018/05/04