Skip to content

Commit 583286e

Browse files
smaeulpalmer-dabbelt
authored andcommitted
riscv: Move cast inside kernel_mapping_[pv]a_to_[vp]a
Before commit 44c9225 ("RISC-V: enable XIP"), these macros cast their argument to unsigned long. That commit moved the cast after an assignment to an unsigned long variable, rendering it ineffectual. Move the cast back, so we can remove the cast at each call site. Reviewed-by: Alexandre Ghiti <[email protected]> Reviewed-by: Heiko Stuebner <[email protected]> Signed-off-by: Samuel Holland <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Palmer Dabbelt <[email protected]>
1 parent 0c49688 commit 583286e

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

arch/riscv/include/asm/page.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -123,20 +123,20 @@ extern phys_addr_t phys_ram_base;
123123
((x) >= PAGE_OFFSET && (!IS_ENABLED(CONFIG_64BIT) || (x) < PAGE_OFFSET + KERN_VIRT_SIZE))
124124

125125
#define linear_mapping_pa_to_va(x) ((void *)((unsigned long)(x) + kernel_map.va_pa_offset))
126-
#define kernel_mapping_pa_to_va(y) ({ \
127-
unsigned long _y = y; \
128-
(IS_ENABLED(CONFIG_XIP_KERNEL) && _y < phys_ram_base) ? \
129-
(void *)((unsigned long)(_y) + kernel_map.va_kernel_xip_pa_offset) : \
130-
(void *)((unsigned long)(_y) + kernel_map.va_kernel_pa_offset + XIP_OFFSET); \
126+
#define kernel_mapping_pa_to_va(y) ({ \
127+
unsigned long _y = (unsigned long)(y); \
128+
(IS_ENABLED(CONFIG_XIP_KERNEL) && _y < phys_ram_base) ? \
129+
(void *)(_y + kernel_map.va_kernel_xip_pa_offset) : \
130+
(void *)(_y + kernel_map.va_kernel_pa_offset + XIP_OFFSET); \
131131
})
132132
#define __pa_to_va_nodebug(x) linear_mapping_pa_to_va(x)
133133

134134
#define linear_mapping_va_to_pa(x) ((unsigned long)(x) - kernel_map.va_pa_offset)
135135
#define kernel_mapping_va_to_pa(y) ({ \
136-
unsigned long _y = y; \
137-
(IS_ENABLED(CONFIG_XIP_KERNEL) && _y < kernel_map.virt_addr + XIP_OFFSET) ? \
138-
((unsigned long)(_y) - kernel_map.va_kernel_xip_pa_offset) : \
139-
((unsigned long)(_y) - kernel_map.va_kernel_pa_offset - XIP_OFFSET); \
136+
unsigned long _y = (unsigned long)(y); \
137+
(IS_ENABLED(CONFIG_XIP_KERNEL) && _y < kernel_map.virt_addr + XIP_OFFSET) ? \
138+
(_y - kernel_map.va_kernel_xip_pa_offset) : \
139+
(_y - kernel_map.va_kernel_pa_offset - XIP_OFFSET); \
140140
})
141141

142142
#define __va_to_pa_nodebug(x) ({ \

arch/riscv/mm/init.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -927,15 +927,15 @@ static void __init pt_ops_set_early(void)
927927
*/
928928
static void __init pt_ops_set_fixmap(void)
929929
{
930-
pt_ops.alloc_pte = kernel_mapping_pa_to_va((uintptr_t)alloc_pte_fixmap);
931-
pt_ops.get_pte_virt = kernel_mapping_pa_to_va((uintptr_t)get_pte_virt_fixmap);
930+
pt_ops.alloc_pte = kernel_mapping_pa_to_va(alloc_pte_fixmap);
931+
pt_ops.get_pte_virt = kernel_mapping_pa_to_va(get_pte_virt_fixmap);
932932
#ifndef __PAGETABLE_PMD_FOLDED
933-
pt_ops.alloc_pmd = kernel_mapping_pa_to_va((uintptr_t)alloc_pmd_fixmap);
934-
pt_ops.get_pmd_virt = kernel_mapping_pa_to_va((uintptr_t)get_pmd_virt_fixmap);
935-
pt_ops.alloc_pud = kernel_mapping_pa_to_va((uintptr_t)alloc_pud_fixmap);
936-
pt_ops.get_pud_virt = kernel_mapping_pa_to_va((uintptr_t)get_pud_virt_fixmap);
937-
pt_ops.alloc_p4d = kernel_mapping_pa_to_va((uintptr_t)alloc_p4d_fixmap);
938-
pt_ops.get_p4d_virt = kernel_mapping_pa_to_va((uintptr_t)get_p4d_virt_fixmap);
933+
pt_ops.alloc_pmd = kernel_mapping_pa_to_va(alloc_pmd_fixmap);
934+
pt_ops.get_pmd_virt = kernel_mapping_pa_to_va(get_pmd_virt_fixmap);
935+
pt_ops.alloc_pud = kernel_mapping_pa_to_va(alloc_pud_fixmap);
936+
pt_ops.get_pud_virt = kernel_mapping_pa_to_va(get_pud_virt_fixmap);
937+
pt_ops.alloc_p4d = kernel_mapping_pa_to_va(alloc_p4d_fixmap);
938+
pt_ops.get_p4d_virt = kernel_mapping_pa_to_va(get_p4d_virt_fixmap);
939939
#endif
940940
}
941941

0 commit comments

Comments
 (0)