• Dmitry Safonov's avatar
    parasite: align parasite args with 4 bytes · f1d7964e
    Dmitry Safonov authored
    >From the commit 64e74fab ("parasite: handle errors while a transport
    socket is being created"), we have futex in parasite init args to
    synchronize parasite and criu during initialization.
    And man futex(2): "On all platforms, futexes are four-byte integers that
    must be aligned on a four-byte boundary."
    This is checked by kernel in get_futex_key():
    	if (unlikely((address % sizeof(u32)) != 0))
    		return -EINVAL;
    
    So, we need to align parasite arguments on four bytes, while mapping
    of parasite blob on page-aligned address will guarantee that it'll
    be aligned on four bytes in memory.
    
    Fixes:
    (00.013468) -----------------------
    (00.013470) Putting tsock into pid 22043
    (00.014024) Error (criu/parasite-syscall.c:541): futex() returned an unexpected error: -22
    (00.014026) Error (criu/parasite-syscall.c:541): BUG at criu/parasite-syscall.c:541
    
    Cc: Andrew Vagin <avagin@virtuozzo.com>
    Cc: Cyrill Gorcunov <gorcunov@openvz.org>
    Signed-off-by: 's avatarDmitry Safonov <dsafonov@virtuozzo.com>
    Acked-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
    f1d7964e
Name
Last commit
Last update
..
arch Loading commit data...
include Loading commit data...
pie Loading commit data...
Makefile Loading commit data...
Makefile.config Loading commit data...
Makefile.crtools Loading commit data...
Makefile.packages Loading commit data...
action-scripts.c Loading commit data...
aio.c Loading commit data...
autofs.c Loading commit data...
bfd.c Loading commit data...
bitmap.c Loading commit data...
cgroup-props.c Loading commit data...
cgroup.c Loading commit data...
cr-check.c Loading commit data...
cr-dedup.c Loading commit data...
cr-dump.c Loading commit data...
cr-errno.c Loading commit data...
cr-exec.c Loading commit data...
cr-restore.c Loading commit data...
cr-service.c Loading commit data...
crtools.c Loading commit data...
eventfd.c Loading commit data...
eventpoll.c Loading commit data...
fault-injection.c Loading commit data...
fifo.c Loading commit data...
file-ids.c Loading commit data...
file-lock.c Loading commit data...
files-ext.c Loading commit data...
files-reg.c Loading commit data...
files.c Loading commit data...
fsnotify.c Loading commit data...
image-desc.c Loading commit data...
image.c Loading commit data...
ipc_ns.c Loading commit data...
irmap.c Loading commit data...
kcmp-ids.c Loading commit data...
kerndat.c Loading commit data...
libnetlink.c Loading commit data...
log.c Loading commit data...
lsm.c Loading commit data...
mem.c Loading commit data...
mount.c Loading commit data...
namespaces.c Loading commit data...
net.c Loading commit data...
netfilter.c Loading commit data...
page-pipe.c Loading commit data...
page-xfer.c Loading commit data...
pagemap-cache.c Loading commit data...
pagemap.c Loading commit data...
parasite-syscall.c Loading commit data...
path.c Loading commit data...
pie-util-fd.c Loading commit data...
pie-util-vdso.c Loading commit data...
pie-util.c Loading commit data...
pipes.c Loading commit data...
plugin.c Loading commit data...
proc_parse.c Loading commit data...
protobuf-desc.c Loading commit data...
protobuf.c Loading commit data...
pstree.c Loading commit data...
ptrace.c Loading commit data...
rbtree.c Loading commit data...
rst-malloc.c Loading commit data...
seccomp.c Loading commit data...
seize.c Loading commit data...
shmem.c Loading commit data...
sigframe.c Loading commit data...
signalfd.c Loading commit data...
sk-inet.c Loading commit data...
sk-netlink.c Loading commit data...
sk-packet.c Loading commit data...
sk-queue.c Loading commit data...
sk-tcp.c Loading commit data...
sk-unix.c Loading commit data...
sockets.c Loading commit data...
stats.c Loading commit data...
string.c Loading commit data...
sysctl.c Loading commit data...
sysfs_parse.c Loading commit data...
timerfd.c Loading commit data...
tty.c Loading commit data...
tun.c Loading commit data...
util.c Loading commit data...
uts_ns.c Loading commit data...
vdso.c Loading commit data...