diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c index 1fd6c6e267ba..2e5016399513 100644 --- a/arch/arm64/kvm/hyp/nvhe/ffa.c +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c @@ -284,13 +284,10 @@ static u32 __ffa_host_share_ranges(struct ffa_mem_region_addr_range *ranges, for (i = 0; i < nranges; ++i) { struct ffa_mem_region_addr_range *range = &ranges[i]; - u64 sz = (u64)range->pg_cnt * FFA_PAGE_SIZE; + u64 npages = (range->pg_cnt * FFA_PAGE_SIZE) / PAGE_SIZE; u64 pfn = hyp_phys_to_pfn(range->address); - if (!PAGE_ALIGNED(sz)) - break; - - if (__pkvm_host_share_ffa(pfn, sz / PAGE_SIZE)) + if (__pkvm_host_share_ffa(pfn, npages)) break; } @@ -304,13 +301,10 @@ static u32 __ffa_host_unshare_ranges(struct ffa_mem_region_addr_range *ranges, for (i = 0; i < nranges; ++i) { struct ffa_mem_region_addr_range *range = &ranges[i]; - u64 sz = (u64)range->pg_cnt * FFA_PAGE_SIZE; + u64 npages = (range->pg_cnt * FFA_PAGE_SIZE) / PAGE_SIZE; u64 pfn = hyp_phys_to_pfn(range->address); - if (!PAGE_ALIGNED(sz)) - break; - - if (__pkvm_host_unshare_ffa(pfn, sz / PAGE_SIZE)) + if (__pkvm_host_unshare_ffa(pfn, npages)) break; }