[PATCH 4/4] ntdll: Limit address space to 512GB on ARM64
Signed-off-by: André Hentschel <nerv(a)dawncrow.de> --- dlls/ntdll/virtual.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c index d28b138..2518c82 100644 --- a/dlls/ntdll/virtual.c +++ b/dlls/ntdll/virtual.c @@ -1582,7 +1582,9 @@ void virtual_init(void) assert( !(page_size & page_mask) ); page_shift = 0; while ((1 << page_shift) != page_size) page_shift++; -#ifdef _WIN64 +#ifdef __aarch64__ + address_space_limit = (void *)(((1UL << 39) - 1) & ~page_mask); +#elif defined(_WIN64) address_space_limit = (void *)(((1UL << 47) - 1) & ~page_mask); #else address_space_limit = (void *)~page_mask; -- 2.7.4
André Hentschel <nerv(a)dawncrow.de> writes:
@@ -1582,7 +1582,9 @@ void virtual_init(void) assert( !(page_size & page_mask) ); page_shift = 0; while ((1 << page_shift) != page_size) page_shift++; -#ifdef _WIN64 +#ifdef __aarch64__ + address_space_limit = (void *)(((1UL << 39) - 1) & ~page_mask); +#elif defined(_WIN64) address_space_limit = (void *)(((1UL << 47) - 1) & ~page_mask); #else address_space_limit = (void *)~page_mask;
Why is this necessary? -- Alexandre Julliard julliard(a)winehq.org
Am 16.11.2017 um 14:11 schrieb Alexandre Julliard:
André Hentschel <nerv(a)dawncrow.de> writes:
@@ -1582,7 +1582,9 @@ void virtual_init(void) assert( !(page_size & page_mask) ); page_shift = 0; while ((1 << page_shift) != page_size) page_shift++; -#ifdef _WIN64 +#ifdef __aarch64__ + address_space_limit = (void *)(((1UL << 39) - 1) & ~page_mask); +#elif defined(_WIN64) address_space_limit = (void *)(((1UL << 47) - 1) & ~page_mask); #else address_space_limit = (void *)~page_mask;
Why is this necessary?
512GB is the lowest guaranteed address space limit as per https://www.kernel.org/doc/Documentation/arm64/memory.txt For the moment that configuration is very common and I would add this until a Windows application needs more
participants (2)
-
Alexandre Julliard -
André Hentschel