mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-18 03:06:43 +00:00
powerpc/mm: Drop VM_BUG_ON in get_region_id()
We call get_region_id() without validating the ea value. That means with a wrong ea value we hit the BUG as below. kernel BUG at arch/powerpc/include/asm/book3s/64/hash.h:129! Oops: Exception in kernel mode, sig: 5 [#1] LE PAGE_SIZE=64K MMU=Hash SMP NR_CPUS=2048 NUMA pSeries CPU: 0 PID: 3937 Comm: access_tests Not tainted 5.1.0 .... NIP [c00000000007ba20] do_slb_fault+0x70/0x320 LR [c00000000000896c] data_access_slb_common+0x15c/0x1a0 Fix this by removing the VM_BUG_ON. All callers make sure the returned region id is valid and error out otherwise. Fixes: 0034d395f89d ("powerpc/mm/hash64: Map all the kernel regions in the same 0xc range") Reported-by: Andrew Donnellan <ajd@linux.ibm.com> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
7338874c33
commit
6457f42eb3
@ -122,11 +122,9 @@ static inline int get_region_id(unsigned long ea)
|
||||
if (ea < H_KERN_VIRT_START)
|
||||
return LINEAR_MAP_REGION_ID;
|
||||
|
||||
VM_BUG_ON(id != 0xc);
|
||||
BUILD_BUG_ON(NON_LINEAR_REGION_ID(H_VMALLOC_START) != 2);
|
||||
|
||||
region_id = NON_LINEAR_REGION_ID(ea);
|
||||
VM_BUG_ON(region_id > VMEMMAP_REGION_ID);
|
||||
return region_id;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user