Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 522d8dc0 authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

[S390] VMEM_MAX_PHYS overflow on 31 bit.



With the new space saving spinlock_t and a non-debug configuration
the struct page only has 32 bytes for 31 bit s390. The causes an
overflow in the calculation of VMEM_MAX_PHYS which renders the
kernel unbootable.

Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent b90b34c6
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -127,8 +127,9 @@ extern char empty_zero_page[PAGE_SIZE];
 * mapping. This needs to be calculated at compile time since the size of the
 * VMEM_MAP is static but the size of struct page can change.
 */
#define VMEM_MAX_PHYS	min(VMALLOC_START, ((VMEM_MAP_END - VMALLOC_END) / \
			  sizeof(struct page) * PAGE_SIZE) & ~((16 << 20) - 1))
#define VMEM_MAX_PAGES	((VMEM_MAP_END - VMALLOC_END) / sizeof(struct page))
#define VMEM_MAX_PFN	min(VMALLOC_START >> PAGE_SHIFT, VMEM_MAX_PAGES)
#define VMEM_MAX_PHYS	((VMEM_MAX_PFN << PAGE_SHIFT) & ~((16 << 20) - 1))
#define VMEM_MAP	((struct page *) VMALLOC_END)

/*