* attribute.
         */
        if (sme_get_me_mask()) {
-               paddr = (unsigned long)&RIP_REL_REF(__start_bss_decrypted);
-               paddr_end = (unsigned long)&RIP_REL_REF(__end_bss_decrypted);
+               paddr = (unsigned long)rip_rel_ptr(__start_bss_decrypted);
+               paddr_end = (unsigned long)rip_rel_ptr(__end_bss_decrypted);
 
                for (; paddr < paddr_end; paddr += PMD_SIZE) {
                        /*
 unsigned long __head __startup_64(unsigned long p2v_offset,
                                  struct boot_params *bp)
 {
-       pmd_t (*early_pgts)[PTRS_PER_PMD] = RIP_REL_REF(early_dynamic_pgts);
-       unsigned long physaddr = (unsigned long)&RIP_REL_REF(_text);
+       pmd_t (*early_pgts)[PTRS_PER_PMD] = rip_rel_ptr(early_dynamic_pgts);
+       unsigned long physaddr = (unsigned long)rip_rel_ptr(_text);
        unsigned long va_text, va_end;
        unsigned long pgtable_flags;
        unsigned long load_delta;
                for (;;);
 
        va_text = physaddr - p2v_offset;
-       va_end  = (unsigned long)&RIP_REL_REF(_end) - p2v_offset;
+       va_end  = (unsigned long)rip_rel_ptr(_end) - p2v_offset;
 
        /* Include the SME encryption mask in the fixup value */
        load_delta += sme_get_me_mask();
 
        /* Fixup the physical addresses in the page table */
 
-       pgd = &RIP_REL_REF(early_top_pgt)->pgd;
+       pgd = rip_rel_ptr(early_top_pgt);
        pgd[pgd_index(__START_KERNEL_map)] += load_delta;
 
        if (IS_ENABLED(CONFIG_X86_5LEVEL) && la57) {
-               p4d = (p4dval_t *)&RIP_REL_REF(level4_kernel_pgt);
+               p4d = (p4dval_t *)rip_rel_ptr(level4_kernel_pgt);
                p4d[MAX_PTRS_PER_P4D - 1] += load_delta;
 
                pgd[pgd_index(__START_KERNEL_map)] = (pgdval_t)p4d | _PAGE_TABLE;
         * error, causing the BIOS to halt the system.
         */
 
-       pmd = &RIP_REL_REF(level2_kernel_pgt)->pmd;
+       pmd = rip_rel_ptr(level2_kernel_pgt);
 
        /* invalidate pages before the kernel image */
        for (i = 0; i < pmd_index(va_text); i++)
 static void __head startup_64_load_idt(void *vc_handler)
 {
        struct desc_ptr desc = {
-               .address = (unsigned long)&RIP_REL_REF(bringup_idt_table),
+               .address = (unsigned long)rip_rel_ptr(bringup_idt_table),
                .size    = sizeof(bringup_idt_table) - 1,
        };
        struct idt_data data;
  */
 void __head startup_64_setup_gdt_idt(void)
 {
-       struct desc_struct *gdt = (void *)(__force unsigned long)gdt_page.gdt;
+       struct gdt_page *gp = rip_rel_ptr((void *)(__force unsigned long)&gdt_page);
        void *handler = NULL;
 
        struct desc_ptr startup_gdt_descr = {
-               .address = (unsigned long)&RIP_REL_REF(*gdt),
+               .address = (unsigned long)gp->gdt,
                .size    = GDT_SIZE - 1,
        };
 
                     "movl %%eax, %%es\n" : : "a"(__KERNEL_DS) : "memory");
 
        if (IS_ENABLED(CONFIG_AMD_MEM_ENCRYPT))
-               handler = &RIP_REL_REF(vc_no_ghcb);
+               handler = rip_rel_ptr(vc_no_ghcb);
 
        startup_64_load_idt(handler);
 }
 
         *     memory from being cached.
         */
 
-       kernel_start = (unsigned long)RIP_REL_REF(_text);
-       kernel_end = ALIGN((unsigned long)RIP_REL_REF(_end), PMD_SIZE);
+       kernel_start = (unsigned long)rip_rel_ptr(_text);
+       kernel_end = ALIGN((unsigned long)rip_rel_ptr(_end), PMD_SIZE);
        kernel_len = kernel_end - kernel_start;
 
        initrd_start = 0;
         *   pagetable structures for the encryption of the kernel
         *   pagetable structures for workarea (in case not currently mapped)
         */
-       execute_start = workarea_start = (unsigned long)RIP_REL_REF(sme_workarea);
+       execute_start = workarea_start = (unsigned long)rip_rel_ptr(sme_workarea);
        execute_end = execute_start + (PAGE_SIZE * 2) + PMD_SIZE;
        execute_len = execute_end - execute_start;