[PowerPC][msan] Update msan to handle changed memory layouts in newer kernels
authorBill Seurer <seurer@linux.vnet.ibm.com>
Mon, 13 Nov 2017 15:43:19 +0000 (15:43 +0000)
committerBill Seurer <seurer@linux.vnet.ibm.com>
Mon, 13 Nov 2017 15:43:19 +0000 (15:43 +0000)
In more recent Linux kernels (including those with 47 bit VMAs) the layout of
virtual memory for powerpc64 changed causing the memory sanitizer to not
work properly. This patch adjusts a bit mask in the memory sanitizer to work
on the newer kernels while continuing to work on the older ones as well.

This is the non-runtime part of the patch and finishes it. ref: r317802

Tested on several 4.x and 3.x kernel releases.

llvm-svn: 318045

llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

index 0e6f6ba..c8e772d 100644 (file)
@@ -290,7 +290,7 @@ static const MemoryMapParams Linux_MIPS64_MemoryMapParams = {
 
 // ppc64 Linux
 static const MemoryMapParams Linux_PowerPC64_MemoryMapParams = {
-  0x200000000000,  // AndMask
+  0xE00000000000,  // AndMask
   0x100000000000,  // XorMask
   0x080000000000,  // ShadowBase
   0x1C0000000000,  // OriginBase