int __init early_set_memory_decrypted(unsigned long vaddr, unsigned long size);
 int __init early_set_memory_encrypted(unsigned long vaddr, unsigned long size);
-void __init early_set_mem_enc_dec_hypercall(unsigned long vaddr, int npages,
-                                           bool enc);
+void __init early_set_mem_enc_dec_hypercall(unsigned long vaddr,
+                                           unsigned long size, bool enc);
 
 void __init mem_encrypt_free_decrypted_mem(void);
 
 static inline int __init
 early_set_memory_encrypted(unsigned long vaddr, unsigned long size) { return 0; }
 static inline void __init
-early_set_mem_enc_dec_hypercall(unsigned long vaddr, int npages, bool enc) {}
+early_set_mem_enc_dec_hypercall(unsigned long vaddr, unsigned long size, bool enc) {}
 
 static inline void mem_encrypt_free_decrypted_mem(void) { }
 
 
                 * Ensure that _bss_decrypted section is marked as decrypted in the
                 * shared pages list.
                 */
-               nr_pages = DIV_ROUND_UP(__end_bss_decrypted - __start_bss_decrypted,
-                                       PAGE_SIZE);
                early_set_mem_enc_dec_hypercall((unsigned long)__start_bss_decrypted,
-                                               nr_pages, 0);
+                                               __end_bss_decrypted - __start_bss_decrypted, 0);
 
                /*
                 * If not booted using EFI, enable Live migration support.
 
        return !cpu_feature_enabled(X86_FEATURE_SME_COHERENT);
 }
 
-static void enc_dec_hypercall(unsigned long vaddr, int npages, bool enc)
+static void enc_dec_hypercall(unsigned long vaddr, unsigned long size, bool enc)
 {
 #ifdef CONFIG_PARAVIRT
-       unsigned long sz = npages << PAGE_SHIFT;
-       unsigned long vaddr_end = vaddr + sz;
+       unsigned long vaddr_end = vaddr + size;
 
        while (vaddr < vaddr_end) {
                int psize, pmask, level;
                snp_set_memory_private(vaddr, npages);
 
        if (!cc_platform_has(CC_ATTR_HOST_MEM_ENCRYPT))
-               enc_dec_hypercall(vaddr, npages, enc);
+               enc_dec_hypercall(vaddr, npages << PAGE_SHIFT, enc);
 
        return true;
 }
 
        ret = 0;
 
-       early_set_mem_enc_dec_hypercall(start, PAGE_ALIGN(size) >> PAGE_SHIFT, enc);
+       early_set_mem_enc_dec_hypercall(start, size, enc);
 out:
        __flush_tlb_all();
        return ret;
        return early_set_memory_enc_dec(vaddr, size, true);
 }
 
-void __init early_set_mem_enc_dec_hypercall(unsigned long vaddr, int npages, bool enc)
+void __init early_set_mem_enc_dec_hypercall(unsigned long vaddr, unsigned long size, bool enc)
 {
-       enc_dec_hypercall(vaddr, npages, enc);
+       enc_dec_hypercall(vaddr, size, enc);
 }
 
 void __init sme_early_init(void)