1

selftests: riscv: Allow mmap test to compile on 32-bit

Macros needed for 32-bit compilations were hidden behind 64-bit riscv
ifdefs. Fix the 32-bit compilations by moving macros to allow the
memory_layout test to run on 32-bit.

Signed-off-by: Charlie Jenkins <charlie@rivosinc.com>
Fixes: 73d05262a2 ("selftests: riscv: Generalize mm selftests")
Link: https://lore.kernel.org/r/20240808-mmap_tests__fixes-v1-1-b1344b642a84@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
Charlie Jenkins 2024-08-08 11:41:40 -07:00 committed by Palmer Dabbelt
parent 594ffcf4ef
commit 11c2dbd7f2
No known key found for this signature in database
GPG Key ID: 2E1319F35FBB1889

View File

@ -48,11 +48,11 @@ uint32_t random_addresses[] = {
}; };
#endif #endif
// Only works on 64 bit
#if __riscv_xlen == 64
#define PROT (PROT_READ | PROT_WRITE) #define PROT (PROT_READ | PROT_WRITE)
#define FLAGS (MAP_PRIVATE | MAP_ANONYMOUS) #define FLAGS (MAP_PRIVATE | MAP_ANONYMOUS)
// Only works on 64 bit
#if __riscv_xlen == 64
/* mmap must return a value that doesn't use more bits than the hint address. */ /* mmap must return a value that doesn't use more bits than the hint address. */
static inline unsigned long get_max_value(unsigned long input) static inline unsigned long get_max_value(unsigned long input)
{ {
@ -80,6 +80,8 @@ static inline unsigned long get_max_value(unsigned long input)
}) })
#endif /* __riscv_xlen == 64 */ #endif /* __riscv_xlen == 64 */
#define TEST_MMAPS do { } while (0)
static inline int memory_layout(void) static inline int memory_layout(void)
{ {
void *value1 = mmap(NULL, sizeof(int), PROT, FLAGS, 0, 0); void *value1 = mmap(NULL, sizeof(int), PROT, FLAGS, 0, 0);