Unverified Commit 11c2dbd7 authored by Charlie Jenkins's avatar Charlie Jenkins Committed by Palmer Dabbelt
Browse files

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: default avatarCharlie Jenkins <charlie@rivosinc.com>
Fixes: 73d05262 ("selftests: riscv: Generalize mm selftests")
Link: https://lore.kernel.org/r/20240808-mmap_tests__fixes-v1-1-b1344b642a84@rivosinc.com


Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
parent 594ffcf4
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -48,11 +48,11 @@ uint32_t random_addresses[] = {
};
#endif

// Only works on 64 bit
#if __riscv_xlen == 64
#define PROT (PROT_READ | PROT_WRITE)
#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. */
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 */

#define TEST_MMAPS do { } while (0)

static inline int memory_layout(void)
{
	void *value1 = mmap(NULL, sizeof(int), PROT, FLAGS, 0, 0);