Author: florian
Date: Tue May 12 22:52:08 2015
New Revision: 15221
Log:
In functions VG_(am_relocate_nooverlap_client) and VG_(am_extend_map_client)
need to allow SkShmC segments, too.
Added:
trunk/none/tests/linux/mremap5.c
trunk/none/tests/linux/mremap5.stderr.exp
trunk/none/tests/linux/mremap5.vgtest
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
trunk/none/tests/linux/ (props changed)
trunk/none/tests/linux/Makefile.am
Modified: trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
==============================================================================
--- trunk/coregrind/m_aspacemgr/aspacemgr-linux.c (original)
+++ trunk/coregrind/m_aspacemgr/aspacemgr-linux.c Tue May 12 22:52:08 2015
@@ -2901,7 +2901,8 @@
NSegment *seg = nsegments + ix;
- aspacem_assert(seg->kind == SkFileC || seg->kind == SkAnonC);
+ aspacem_assert(seg->kind == SkFileC || seg->kind == SkAnonC ||
+ seg->kind == SkShmC);
aspacem_assert(delta > 0 && VG_IS_PAGE_ALIGNED(delta)) ;
xStart = seg->end+1;
@@ -2979,7 +2980,8 @@
if (iLo != iHi)
return False;
- if (nsegments[iLo].kind != SkFileC && nsegments[iLo].kind != SkAnonC)
+ if (nsegments[iLo].kind != SkFileC && nsegments[iLo].kind != SkAnonC &&
+ nsegments[iLo].kind != SkShmC)
return False;
sres = ML_(am_do_relocate_nooverlap_mapping_NO_NOTIFY)
Modified: trunk/none/tests/linux/Makefile.am
==============================================================================
--- trunk/none/tests/linux/Makefile.am (original)
+++ trunk/none/tests/linux/Makefile.am Tue May 12 22:52:08 2015
@@ -12,6 +12,7 @@
mremap2.stderr.exp mremap2.stdout.exp mremap2.vgtest \
mremap3.stderr.exp mremap3.stdout.exp mremap3.vgtest \
mremap4.stderr.exp mremap4.vgtest \
+ mremap5.stderr.exp mremap5.vgtest \
pthread-stack.stderr.exp pthread-stack.vgtest \
stack-overflow.stderr.exp stack-overflow.vgtest
@@ -23,6 +24,7 @@
mremap2 \
mremap3 \
mremap4 \
+ mremap5 \
pthread-stack \
stack-overflow
Added: trunk/none/tests/linux/mremap5.c
==============================================================================
--- trunk/none/tests/linux/mremap5.c (added)
+++ trunk/none/tests/linux/mremap5.c Tue May 12 22:52:08 2015
@@ -0,0 +1,23 @@
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+
+int main()
+{
+ int shmid = shmget(IPC_PRIVATE, 100 * 4096,
+ IPC_CREAT | IPC_EXCL | S_IRUSR | S_IWUSR);
+ assert(shmid != -1);
+
+ void *addr = shmat(shmid, NULL, 0);
+ assert(addr != (void *)-1);
+
+ addr = mremap(addr, 100 * 4096, 400 * 4096, MREMAP_MAYMOVE);
+ assert(addr != (void *)-1);
+
+ return 0;
+}
Added: trunk/none/tests/linux/mremap5.stderr.exp
==============================================================================
(empty)
Added: trunk/none/tests/linux/mremap5.vgtest
==============================================================================
--- trunk/none/tests/linux/mremap5.vgtest (added)
+++ trunk/none/tests/linux/mremap5.vgtest Tue May 12 22:52:08 2015
@@ -0,0 +1,2 @@
+prog: mremap5
+vgopts: -q
|