[CRIU] [PATCH 03/24] compel_syscall(): make ret argument signed

Kir Kolyshkin kir at openvz.org
Sat Dec 17 03:21:56 PST 2016


I saw this line in the code

	unsigned long sret = -ENOSYS;

and ended up with this patch. Note syscall(2) man page says return value
is long -- who am I to disagree?

Signed-off-by: Kir Kolyshkin <kir at openvz.org>
---
 compel/arch/aarch64/src/lib/infect.c | 4 ++--
 compel/arch/arm/src/lib/infect.c     | 4 ++--
 compel/arch/ppc64/src/lib/infect.c   | 4 ++--
 compel/arch/x86/src/lib/infect.c     | 4 ++--
 compel/include/infect-priv.h         | 2 +-
 compel/include/uapi/infect.h         | 2 +-
 compel/src/lib/infect.c              | 4 ++--
 7 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/compel/arch/aarch64/src/lib/infect.c b/compel/arch/aarch64/src/lib/infect.c
index ee1ec7c..4f5534b 100644
--- a/compel/arch/aarch64/src/lib/infect.c
+++ b/compel/arch/aarch64/src/lib/infect.c
@@ -83,7 +83,7 @@ err:
 	return ret;
 }
 
-int compel_syscall(struct parasite_ctl *ctl, int nr, unsigned long *ret,
+int compel_syscall(struct parasite_ctl *ctl, int nr, long *ret,
 					unsigned long arg1,
 					unsigned long arg2,
 					unsigned long arg3,
@@ -114,7 +114,7 @@ void *remote_mmap(struct parasite_ctl *ctl,
 		void *addr, size_t length, int prot,
 		int flags, int fd, off_t offset)
 {
-	unsigned long map;
+	long map;
 	int err;
 
 	err = compel_syscall(ctl, __NR_mmap, &map,
diff --git a/compel/arch/arm/src/lib/infect.c b/compel/arch/arm/src/lib/infect.c
index 6137769..ad085ff 100644
--- a/compel/arch/arm/src/lib/infect.c
+++ b/compel/arch/arm/src/lib/infect.c
@@ -99,7 +99,7 @@ err:
 	return ret;
 }
 
-int compel_syscall(struct parasite_ctl *ctl, int nr, unsigned long *ret,
+int compel_syscall(struct parasite_ctl *ctl, int nr, long *ret,
 		unsigned long arg1,
 		unsigned long arg2,
 		unsigned long arg3,
@@ -128,7 +128,7 @@ void *remote_mmap(struct parasite_ctl *ctl,
 		  void *addr, size_t length, int prot,
 		  int flags, int fd, off_t offset)
 {
-	unsigned long map;
+	long map;
 	int err;
 
 	if (offset & ~PAGE_MASK)
diff --git a/compel/arch/ppc64/src/lib/infect.c b/compel/arch/ppc64/src/lib/infect.c
index 637c365..11154d6 100644
--- a/compel/arch/ppc64/src/lib/infect.c
+++ b/compel/arch/ppc64/src/lib/infect.c
@@ -381,7 +381,7 @@ int get_task_regs(pid_t pid, user_regs_struct_t regs, save_regs_t save, void *ar
 	return save(arg, &regs, &fpregs);
 }
 
-int compel_syscall(struct parasite_ctl *ctl, int nr, unsigned long *ret,
+int compel_syscall(struct parasite_ctl *ctl, int nr, long *ret,
 		unsigned long arg1,
 		unsigned long arg2,
 		unsigned long arg3,
@@ -410,7 +410,7 @@ void *remote_mmap(struct parasite_ctl *ctl,
 		  void *addr, size_t length, int prot,
 		  int flags, int fd, off_t offset)
 {
-	unsigned long map = 0;
+	long map = 0;
 	int err;
 
 	err = compel_syscall(ctl, __NR_mmap, &map,
diff --git a/compel/arch/x86/src/lib/infect.c b/compel/arch/x86/src/lib/infect.c
index bf8c43a..1fa4cc1 100644
--- a/compel/arch/x86/src/lib/infect.c
+++ b/compel/arch/x86/src/lib/infect.c
@@ -195,7 +195,7 @@ err:
 	return ret;
 }
 
-int compel_syscall(struct parasite_ctl *ctl, int nr, unsigned long *ret,
+int compel_syscall(struct parasite_ctl *ctl, int nr, long *ret,
 		unsigned long arg1,
 		unsigned long arg2,
 		unsigned long arg3,
@@ -240,7 +240,7 @@ void *remote_mmap(struct parasite_ctl *ctl,
 		  void *addr, size_t length, int prot,
 		  int flags, int fd, off_t offset)
 {
-	unsigned long map;
+	long map;
 	int err;
 	bool compat_task = !user_regs_native(&ctl->orig.regs);
 
diff --git a/compel/include/infect-priv.h b/compel/include/infect-priv.h
index 8e7443b..99f9ada 100644
--- a/compel/include/infect-priv.h
+++ b/compel/include/infect-priv.h
@@ -55,7 +55,7 @@ int parasite_wait_ack(int sockfd, unsigned int cmd, struct ctl_msg *m);
 
 /* XXX -- remove with cr-exec.c */
 extern int compel_map_exchange(struct parasite_ctl *ctl, unsigned long size);
-extern int compel_syscall(struct parasite_ctl *ctl, int nr, unsigned long *ret,
+extern int compel_syscall(struct parasite_ctl *ctl, int nr, long *ret,
 			  unsigned long arg1, unsigned long arg2,
 			  unsigned long arg3, unsigned long arg4,
 			  unsigned long arg5, unsigned long arg6);
diff --git a/compel/include/uapi/infect.h b/compel/include/uapi/infect.h
index 7b88a56..9f08f34 100644
--- a/compel/include/uapi/infect.h
+++ b/compel/include/uapi/infect.h
@@ -65,7 +65,7 @@ extern int compel_cure(struct parasite_ctl *ctl);
 extern void *compel_parasite_args_p(struct parasite_ctl *ctl);
 extern void *compel_parasite_args_s(struct parasite_ctl *ctl, int args_size);
 
-extern int compel_syscall(struct parasite_ctl *ctl, int nr, unsigned long *ret,
+extern int compel_syscall(struct parasite_ctl *ctl, int nr, long *ret,
 		unsigned long arg1,
 		unsigned long arg2,
 		unsigned long arg3,
diff --git a/compel/src/lib/infect.c b/compel/src/lib/infect.c
index 3dba438..599c372 100644
--- a/compel/src/lib/infect.c
+++ b/compel/src/lib/infect.c
@@ -735,7 +735,7 @@ static int parasite_memfd_exchange(struct parasite_ctl *ctl, unsigned long size)
 	void *where = (void *)ctl->ictx.syscall_ip + BUILTIN_SYSCALL_SIZE;
 	uint8_t orig_code[MEMFD_FNAME_SZ] = MEMFD_FNAME;
 	pid_t pid = ctl->rpid;
-	unsigned long sret = -ENOSYS;
+	long sret = -ENOSYS;
 	int ret, fd, lfd;
 	bool __maybe_unused compat_task = !compel_mode_native(ctl);
 
@@ -1303,7 +1303,7 @@ int compel_stop_daemon(struct parasite_ctl *ctl)
 
 int compel_cure_remote(struct parasite_ctl *ctl)
 {
-	unsigned long ret;
+	long ret;
 
 	if (compel_stop_daemon(ctl))
 		return -1;
-- 
2.7.4



More information about the CRIU mailing list