Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP7:Update
crash.24891
crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-ad...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File crash-SLE15-SP1-Fix-for-PPC64-kernel-virtual-address-translation-in.patch of Package crash.24891
From 28fa7bd09013455b5ddc020dea4706278cda0d65 Mon Sep 17 00:00:00 2001 From: Dave Anderson <anderson@redhat.com> Date: Tue, 19 Jun 2018 16:31:54 -0400 Subject: [PATCH] Fix for PPC64 kernel virtual address translation in Linux 4.17 and later kernels with commit c2b4d8b7417a59b7f9a52d0d8402f5257cbbd398, titled "powerpc/mm/hash64: Increase the VA range", in which the maximum virtual address value has been increased to 4PB. Without the patch, the translation/access of high vmalloc space addresses fails; for example, the "kmem -[sS]" option fails the translation of per-cpu kmem_cache_cpu addresses located in vmalloc space, with the error messages "kmem: invalid kernel virtual address: <address> type: kmem_cache_cpu.freelist" and "kmem: invalid kernel virtual address: <address> type: kmem_cache_cpu.page", and the "vtop" command shows the addresses as "(not mapped)". (hbathini@linux.ibm.com) [note: apply on 4.12+ for SLE 15 SP1 - incompatible with SLE 15 SP0] --- defs.h | 1 + ppc64.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/defs.h b/defs.h index 6e6f6be50fa4..e6e3850c819d 100644 --- a/defs.h +++ b/defs.h @@ -3977,6 +3977,7 @@ struct efi_memory_desc_t { #define PMD_INDEX_SIZE_L4_64K_4_12 10 #define PUD_INDEX_SIZE_L4_64K_4_12 7 #define PGD_INDEX_SIZE_L4_64K_4_12 8 +#define PUD_INDEX_SIZE_L4_64K_4_17 10 #define PTE_INDEX_SIZE_RADIX_64K 5 #define PMD_INDEX_SIZE_RADIX_64K 9 #define PUD_INDEX_SIZE_RADIX_64K 9 diff --git a/ppc64.c b/ppc64.c index 0dd8a2af5818..f5d0dacaca2b 100644 --- a/ppc64.c +++ b/ppc64.c @@ -451,7 +451,10 @@ ppc64_init(int when) if (THIS_KERNEL_VERSION >= LINUX(4,12,0)) { m->l2_index_size = PMD_INDEX_SIZE_L4_64K_4_12; - m->l3_index_size = PUD_INDEX_SIZE_L4_64K_4_12; + if (THIS_KERNEL_VERSION >= LINUX(4,12,0)) /* SLE15 SP1 */ + m->l3_index_size = PUD_INDEX_SIZE_L4_64K_4_17; + else + m->l3_index_size = PUD_INDEX_SIZE_L4_64K_4_12; m->l4_index_size = PGD_INDEX_SIZE_L4_64K_4_12; } else { m->l2_index_size = PMD_INDEX_SIZE_L4_64K_4_6; -- 2.19.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor