diff --git a/arch/arm/src/armv7-a/arm_addrenv.c b/arch/arm/src/armv7-a/arm_addrenv.c index 1c1bba0a3ec..522facc1977 100644 --- a/arch/arm/src/armv7-a/arm_addrenv.c +++ b/arch/arm/src/armv7-a/arm_addrenv.c @@ -173,10 +173,13 @@ static int up_addrenv_create_region(FAR uintptr_t **list, /* Verify that we are configured with enough virtual address space to * support this memory region. + * + * npages pages correspondes to (npages << MM_PGSHIFT) bytes + * listlen sections corresponds to (listlen << 20) bytes */ npages = MM_NPAGES(regionsize); - if (npages > listlen) + if (npages > (listlen << (20 - MM_PGSHIFT))) { bdbg("ERROR: npages=%u listlen=%u\n", npages, listlen); return -E2BIG;