git: b5bfa2af4bbd - stable/13 - linux(4): Regen for linux_poll system call.

From: Dmitry Chagin <dchagin_at_FreeBSD.org>
Date: Fri, 17 Jun 2022 19:32:03 UTC
The branch stable/13 has been updated by dchagin:

URL: https://cgit.FreeBSD.org/src/commit/?id=b5bfa2af4bbdf3d72eee4e4769572a17edeb8fc8

commit b5bfa2af4bbdf3d72eee4e4769572a17edeb8fc8
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2021-06-22 05:09:55 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2022-06-17 19:30:20 +0000

    linux(4): Regen for linux_poll system call.
    
    MFC after:      2 weeks
    
    (cherry picked from commit 8fe8bb7cb573bfc62b04f38acfb2ac79ffcbb97e)
---
 sys/amd64/linux/linux_proto.h             | 7 +++++++
 sys/amd64/linux/linux_syscall.h           | 2 +-
 sys/amd64/linux/linux_syscalls.c          | 2 +-
 sys/amd64/linux/linux_sysent.c            | 2 +-
 sys/amd64/linux/linux_systrace_args.c     | 8 ++++----
 sys/amd64/linux32/linux32_proto.h         | 7 +++++++
 sys/amd64/linux32/linux32_syscall.h       | 2 +-
 sys/amd64/linux32/linux32_syscalls.c      | 2 +-
 sys/amd64/linux32/linux32_sysent.c        | 2 +-
 sys/amd64/linux32/linux32_systrace_args.c | 8 ++++----
 sys/arm/linux/linux_proto.h               | 7 +++++++
 sys/arm/linux/linux_syscall.h             | 2 +-
 sys/arm/linux/linux_syscalls.c            | 2 +-
 sys/arm/linux/linux_sysent.c              | 2 +-
 sys/arm/linux/linux_systrace_args.c       | 8 ++++----
 sys/i386/linux/linux_proto.h              | 7 +++++++
 sys/i386/linux/linux_syscall.h            | 2 +-
 sys/i386/linux/linux_syscalls.c           | 2 +-
 sys/i386/linux/linux_sysent.c             | 2 +-
 sys/i386/linux/linux_systrace_args.c      | 8 ++++----
 20 files changed, 56 insertions(+), 28 deletions(-)

diff --git a/sys/amd64/linux/linux_proto.h b/sys/amd64/linux/linux_proto.h
index cfd2f0cf2ca7..f5eb73718c24 100644
--- a/sys/amd64/linux/linux_proto.h
+++ b/sys/amd64/linux/linux_proto.h
@@ -52,6 +52,11 @@ struct linux_newlstat_args {
 	char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
 	char buf_l_[PADL_(struct l_newstat *)]; struct l_newstat * buf; char buf_r_[PADR_(struct l_newstat *)];
 };
+struct linux_poll_args {
+	char fds_l_[PADL_(struct pollfd *)]; struct pollfd * fds; char fds_r_[PADR_(struct pollfd *)];
+	char nfds_l_[PADL_(u_int)]; u_int nfds; char nfds_r_[PADR_(u_int)];
+	char timeout_l_[PADL_(int)]; int timeout; char timeout_r_[PADR_(int)];
+};
 struct linux_lseek_args {
 	char fdes_l_[PADL_(l_uint)]; l_uint fdes; char fdes_r_[PADR_(l_uint)];
 	char off_l_[PADL_(l_off_t)]; l_off_t off; char off_r_[PADR_(l_off_t)];
@@ -1381,6 +1386,7 @@ int	linux_open(struct thread *, struct linux_open_args *);
 int	linux_newstat(struct thread *, struct linux_newstat_args *);
 int	linux_newfstat(struct thread *, struct linux_newfstat_args *);
 int	linux_newlstat(struct thread *, struct linux_newlstat_args *);
+int	linux_poll(struct thread *, struct linux_poll_args *);
 int	linux_lseek(struct thread *, struct linux_lseek_args *);
 int	linux_mmap2(struct thread *, struct linux_mmap2_args *);
 int	linux_mprotect(struct thread *, struct linux_mprotect_args *);
@@ -1727,6 +1733,7 @@ int	linux_mount_setattr(struct thread *, struct linux_mount_setattr_args *);
 #define	LINUX_SYS_AUE_linux_newstat	AUE_STAT
 #define	LINUX_SYS_AUE_linux_newfstat	AUE_FSTAT
 #define	LINUX_SYS_AUE_linux_newlstat	AUE_LSTAT
+#define	LINUX_SYS_AUE_linux_poll	AUE_POLL
 #define	LINUX_SYS_AUE_linux_lseek	AUE_LSEEK
 #define	LINUX_SYS_AUE_linux_mmap2	AUE_MMAP
 #define	LINUX_SYS_AUE_linux_mprotect	AUE_MPROTECT
diff --git a/sys/amd64/linux/linux_syscall.h b/sys/amd64/linux/linux_syscall.h
index 2416d23abd6d..ca83b9d33483 100644
--- a/sys/amd64/linux/linux_syscall.h
+++ b/sys/amd64/linux/linux_syscall.h
@@ -12,7 +12,7 @@
 #define	LINUX_SYS_linux_newstat	4
 #define	LINUX_SYS_linux_newfstat	5
 #define	LINUX_SYS_linux_newlstat	6
-#define	LINUX_SYS_poll	7
+#define	LINUX_SYS_linux_poll	7
 #define	LINUX_SYS_linux_lseek	8
 #define	LINUX_SYS_linux_mmap2	9
 #define	LINUX_SYS_linux_mprotect	10
diff --git a/sys/amd64/linux/linux_syscalls.c b/sys/amd64/linux/linux_syscalls.c
index 077d0230b261..285e9d47c461 100644
--- a/sys/amd64/linux/linux_syscalls.c
+++ b/sys/amd64/linux/linux_syscalls.c
@@ -14,7 +14,7 @@ const char *linux_syscallnames[] = {
 	"linux_newstat",			/* 4 = linux_newstat */
 	"linux_newfstat",			/* 5 = linux_newfstat */
 	"linux_newlstat",			/* 6 = linux_newlstat */
-	"poll",			/* 7 = poll */
+	"linux_poll",			/* 7 = linux_poll */
 	"linux_lseek",			/* 8 = linux_lseek */
 	"linux_mmap2",			/* 9 = linux_mmap2 */
 	"linux_mprotect",			/* 10 = linux_mprotect */
diff --git a/sys/amd64/linux/linux_sysent.c b/sys/amd64/linux/linux_sysent.c
index 390f3bb4e32b..96e74e821c43 100644
--- a/sys/amd64/linux/linux_sysent.c
+++ b/sys/amd64/linux/linux_sysent.c
@@ -24,7 +24,7 @@ struct sysent linux_sysent[] = {
 	{ .sy_narg = AS(linux_newstat_args), .sy_call = (sy_call_t *)linux_newstat, .sy_auevent = AUE_STAT, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 4 = linux_newstat */
 	{ .sy_narg = AS(linux_newfstat_args), .sy_call = (sy_call_t *)linux_newfstat, .sy_auevent = AUE_FSTAT, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 5 = linux_newfstat */
 	{ .sy_narg = AS(linux_newlstat_args), .sy_call = (sy_call_t *)linux_newlstat, .sy_auevent = AUE_LSTAT, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 6 = linux_newlstat */
-	{ .sy_narg = AS(poll_args), .sy_call = (sy_call_t *)sys_poll, .sy_auevent = AUE_POLL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 7 = poll */
+	{ .sy_narg = AS(linux_poll_args), .sy_call = (sy_call_t *)linux_poll, .sy_auevent = AUE_POLL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 7 = linux_poll */
 	{ .sy_narg = AS(linux_lseek_args), .sy_call = (sy_call_t *)linux_lseek, .sy_auevent = AUE_LSEEK, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 8 = linux_lseek */
 	{ .sy_narg = AS(linux_mmap2_args), .sy_call = (sy_call_t *)linux_mmap2, .sy_auevent = AUE_MMAP, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 9 = linux_mmap2 */
 	{ .sy_narg = AS(linux_mprotect_args), .sy_call = (sy_call_t *)linux_mprotect, .sy_auevent = AUE_MPROTECT, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 10 = linux_mprotect */
diff --git a/sys/amd64/linux/linux_systrace_args.c b/sys/amd64/linux/linux_systrace_args.c
index a4c861b789fd..7d89ffbf2a23 100644
--- a/sys/amd64/linux/linux_systrace_args.c
+++ b/sys/amd64/linux/linux_systrace_args.c
@@ -70,9 +70,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
 		*n_args = 2;
 		break;
 	}
-	/* poll */
+	/* linux_poll */
 	case 7: {
-		struct poll_args *p = params;
+		struct linux_poll_args *p = params;
 		uarg[0] = (intptr_t)p->fds; /* struct pollfd * */
 		uarg[1] = p->nfds; /* u_int */
 		iarg[2] = p->timeout; /* int */
@@ -2823,7 +2823,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
 			break;
 		};
 		break;
-	/* poll */
+	/* linux_poll */
 	case 7:
 		switch (ndx) {
 		case 0:
@@ -7076,7 +7076,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
 		if (ndx == 0 || ndx == 1)
 			p = "int";
 		break;
-	/* poll */
+	/* linux_poll */
 	case 7:
 		if (ndx == 0 || ndx == 1)
 			p = "int";
diff --git a/sys/amd64/linux32/linux32_proto.h b/sys/amd64/linux32/linux32_proto.h
index 8a0950d8c754..41724a5d24b6 100644
--- a/sys/amd64/linux32/linux32_proto.h
+++ b/sys/amd64/linux32/linux32_proto.h
@@ -519,6 +519,11 @@ struct linux_getresuid16_args {
 	char euid_l_[PADL_(l_uid16_t *)]; l_uid16_t * euid; char euid_r_[PADR_(l_uid16_t *)];
 	char suid_l_[PADL_(l_uid16_t *)]; l_uid16_t * suid; char suid_r_[PADR_(l_uid16_t *)];
 };
+struct linux_poll_args {
+	char fds_l_[PADL_(struct pollfd *)]; struct pollfd * fds; char fds_r_[PADR_(struct pollfd *)];
+	char nfds_l_[PADL_(unsigned int)]; unsigned int nfds; char nfds_r_[PADR_(unsigned int)];
+	char timeout_l_[PADL_(int)]; int timeout; char timeout_r_[PADR_(int)];
+};
 struct linux_setresgid16_args {
 	char rgid_l_[PADL_(l_gid16_t)]; l_gid16_t rgid; char rgid_r_[PADR_(l_gid16_t)];
 	char egid_l_[PADL_(l_gid16_t)]; l_gid16_t egid; char egid_r_[PADR_(l_gid16_t)];
@@ -1786,6 +1791,7 @@ int	linux_nanosleep(struct thread *, struct linux_nanosleep_args *);
 int	linux_mremap(struct thread *, struct linux_mremap_args *);
 int	linux_setresuid16(struct thread *, struct linux_setresuid16_args *);
 int	linux_getresuid16(struct thread *, struct linux_getresuid16_args *);
+int	linux_poll(struct thread *, struct linux_poll_args *);
 int	linux_setresgid16(struct thread *, struct linux_setresgid16_args *);
 int	linux_getresgid16(struct thread *, struct linux_getresgid16_args *);
 int	linux_prctl(struct thread *, struct linux_prctl_args *);
@@ -2197,6 +2203,7 @@ int	linux_mount_setattr(struct thread *, struct linux_mount_setattr_args *);
 #define	LINUX32_SYS_AUE_linux_mremap	AUE_NULL
 #define	LINUX32_SYS_AUE_linux_setresuid16	AUE_SETRESUID
 #define	LINUX32_SYS_AUE_linux_getresuid16	AUE_GETRESUID
+#define	LINUX32_SYS_AUE_linux_poll	AUE_POLL
 #define	LINUX32_SYS_AUE_linux_setresgid16	AUE_SETRESGID
 #define	LINUX32_SYS_AUE_linux_getresgid16	AUE_GETRESGID
 #define	LINUX32_SYS_AUE_linux_prctl	AUE_PRCTL
diff --git a/sys/amd64/linux32/linux32_syscall.h b/sys/amd64/linux32/linux32_syscall.h
index 4c9db70621d3..b2724c50d6a0 100644
--- a/sys/amd64/linux32/linux32_syscall.h
+++ b/sys/amd64/linux32/linux32_syscall.h
@@ -152,7 +152,7 @@
 #define	LINUX32_SYS_linux_mremap	163
 #define	LINUX32_SYS_linux_setresuid16	164
 #define	LINUX32_SYS_linux_getresuid16	165
-#define	LINUX32_SYS_poll	168
+#define	LINUX32_SYS_linux_poll	168
 #define	LINUX32_SYS_linux_setresgid16	170
 #define	LINUX32_SYS_linux_getresgid16	171
 #define	LINUX32_SYS_linux_prctl	172
diff --git a/sys/amd64/linux32/linux32_syscalls.c b/sys/amd64/linux32/linux32_syscalls.c
index b427a94c87a0..3ee1639b5971 100644
--- a/sys/amd64/linux32/linux32_syscalls.c
+++ b/sys/amd64/linux32/linux32_syscalls.c
@@ -175,7 +175,7 @@ const char *linux32_syscallnames[] = {
 	"linux_getresuid16",			/* 165 = linux_getresuid16 */
 	"#166",			/* 166 = vm86 */
 	"#167",			/* 167 = query_module */
-	"poll",			/* 168 = poll */
+	"linux_poll",			/* 168 = linux_poll */
 	"#169",			/* 169 = nfsservctl */
 	"linux_setresgid16",			/* 170 = linux_setresgid16 */
 	"linux_getresgid16",			/* 171 = linux_getresgid16 */
diff --git a/sys/amd64/linux32/linux32_sysent.c b/sys/amd64/linux32/linux32_sysent.c
index c4d35efaef96..536088b02c95 100644
--- a/sys/amd64/linux32/linux32_sysent.c
+++ b/sys/amd64/linux32/linux32_sysent.c
@@ -185,7 +185,7 @@ struct sysent linux32_sysent[] = {
 	{ .sy_narg = AS(linux_getresuid16_args), .sy_call = (sy_call_t *)linux_getresuid16, .sy_auevent = AUE_GETRESUID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 165 = linux_getresuid16 */
 	{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT },			/* 166 = vm86 */
 	{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT },			/* 167 = query_module */
-	{ .sy_narg = AS(poll_args), .sy_call = (sy_call_t *)sys_poll, .sy_auevent = AUE_POLL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 168 = poll */
+	{ .sy_narg = AS(linux_poll_args), .sy_call = (sy_call_t *)linux_poll, .sy_auevent = AUE_POLL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 168 = linux_poll */
 	{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT },			/* 169 = nfsservctl */
 	{ .sy_narg = AS(linux_setresgid16_args), .sy_call = (sy_call_t *)linux_setresgid16, .sy_auevent = AUE_SETRESGID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 170 = linux_setresgid16 */
 	{ .sy_narg = AS(linux_getresgid16_args), .sy_call = (sy_call_t *)linux_getresgid16, .sy_auevent = AUE_GETRESGID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 171 = linux_getresgid16 */
diff --git a/sys/amd64/linux32/linux32_systrace_args.c b/sys/amd64/linux32/linux32_systrace_args.c
index f9a3794c309a..93476fc84a37 100644
--- a/sys/amd64/linux32/linux32_systrace_args.c
+++ b/sys/amd64/linux32/linux32_systrace_args.c
@@ -1129,9 +1129,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
 		*n_args = 3;
 		break;
 	}
-	/* poll */
+	/* linux_poll */
 	case 168: {
-		struct poll_args *p = params;
+		struct linux_poll_args *p = params;
 		uarg[0] = (intptr_t)p->fds; /* struct pollfd * */
 		uarg[1] = p->nfds; /* unsigned int */
 		iarg[2] = p->timeout; /* int */
@@ -4925,7 +4925,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
 			break;
 		};
 		break;
-	/* poll */
+	/* linux_poll */
 	case 168:
 		switch (ndx) {
 		case 0:
@@ -8977,7 +8977,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
 		if (ndx == 0 || ndx == 1)
 			p = "int";
 		break;
-	/* poll */
+	/* linux_poll */
 	case 168:
 		if (ndx == 0 || ndx == 1)
 			p = "int";
diff --git a/sys/arm/linux/linux_proto.h b/sys/arm/linux/linux_proto.h
index b07dc8290016..131fa227e8f8 100644
--- a/sys/arm/linux/linux_proto.h
+++ b/sys/arm/linux/linux_proto.h
@@ -424,6 +424,11 @@ struct linux_getresuid16_args {
 	char euid_l_[PADL_(l_uid16_t *)]; l_uid16_t * euid; char euid_r_[PADR_(l_uid16_t *)];
 	char suid_l_[PADL_(l_uid16_t *)]; l_uid16_t * suid; char suid_r_[PADR_(l_uid16_t *)];
 };
+struct linux_poll_args {
+	char fds_l_[PADL_(struct pollfd*)]; struct pollfd* fds; char fds_r_[PADR_(struct pollfd*)];
+	char nfds_l_[PADL_(unsigned int)]; unsigned int nfds; char nfds_r_[PADR_(unsigned int)];
+	char timeout_l_[PADL_(long)]; long timeout; char timeout_r_[PADR_(long)];
+};
 struct linux_setresgid16_args {
 	char rgid_l_[PADL_(l_gid16_t)]; l_gid16_t rgid; char rgid_r_[PADR_(l_gid16_t)];
 	char egid_l_[PADL_(l_gid16_t)]; l_gid16_t egid; char egid_r_[PADR_(l_gid16_t)];
@@ -1328,6 +1333,7 @@ int	linux_nanosleep(struct thread *, struct linux_nanosleep_args *);
 int	linux_mremap(struct thread *, struct linux_mremap_args *);
 int	linux_setresuid16(struct thread *, struct linux_setresuid16_args *);
 int	linux_getresuid16(struct thread *, struct linux_getresuid16_args *);
+int	linux_poll(struct thread *, struct linux_poll_args *);
 int	linux_setresgid16(struct thread *, struct linux_setresgid16_args *);
 int	linux_getresgid16(struct thread *, struct linux_getresgid16_args *);
 int	linux_prctl(struct thread *, struct linux_prctl_args *);
@@ -1654,6 +1660,7 @@ int	linux_set_tls(struct thread *, struct linux_set_tls_args *);
 #define	LINUX_SYS_AUE_linux_mremap	AUE_NULL
 #define	LINUX_SYS_AUE_linux_setresuid16	AUE_SETRESUID
 #define	LINUX_SYS_AUE_linux_getresuid16	AUE_GETRESUID
+#define	LINUX_SYS_AUE_linux_poll	AUE_POLL
 #define	LINUX_SYS_AUE_linux_setresgid16	AUE_SETRESGID
 #define	LINUX_SYS_AUE_linux_getresgid16	AUE_GETRESGID
 #define	LINUX_SYS_AUE_linux_prctl	AUE_PRCTL
diff --git a/sys/arm/linux/linux_syscall.h b/sys/arm/linux/linux_syscall.h
index 1621fde6c0b8..8f9a7376c9b8 100644
--- a/sys/arm/linux/linux_syscall.h
+++ b/sys/arm/linux/linux_syscall.h
@@ -131,7 +131,7 @@
 #define	LINUX_SYS_linux_mremap	163
 #define	LINUX_SYS_linux_setresuid16	164
 #define	LINUX_SYS_linux_getresuid16	165
-#define	LINUX_SYS_poll	168
+#define	LINUX_SYS_linux_poll	168
 #define	LINUX_SYS_linux_setresgid16	170
 #define	LINUX_SYS_linux_getresgid16	171
 #define	LINUX_SYS_linux_prctl	172
diff --git a/sys/arm/linux/linux_syscalls.c b/sys/arm/linux/linux_syscalls.c
index d7f743f1a825..8a5344c35cc5 100644
--- a/sys/arm/linux/linux_syscalls.c
+++ b/sys/arm/linux/linux_syscalls.c
@@ -175,7 +175,7 @@ const char *linux_syscallnames[] = {
 	"linux_getresuid16",			/* 165 = linux_getresuid16 */
 	"#166",			/* 166 = ; */
 	"#167",			/* 167 = ; */
-	"poll",			/* 168 = poll */
+	"linux_poll",			/* 168 = linux_poll */
 	"#169",			/* 169 = ; */
 	"linux_setresgid16",			/* 170 = linux_setresgid16 */
 	"linux_getresgid16",			/* 171 = linux_getresgid16 */
diff --git a/sys/arm/linux/linux_sysent.c b/sys/arm/linux/linux_sysent.c
index ad24f759cd2f..d8f58a91eb3f 100644
--- a/sys/arm/linux/linux_sysent.c
+++ b/sys/arm/linux/linux_sysent.c
@@ -185,7 +185,7 @@ struct sysent linux_sysent[] = {
 	{ .sy_narg = AS(linux_getresuid16_args), .sy_call = (sy_call_t *)linux_getresuid16, .sy_auevent = AUE_GETRESUID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 165 = linux_getresuid16 */
 	{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT },			/* 166 = ; */
 	{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT },			/* 167 = ; */
-	{ .sy_narg = AS(poll_args), .sy_call = (sy_call_t *)sys_poll, .sy_auevent = AUE_POLL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 168 = poll */
+	{ .sy_narg = AS(linux_poll_args), .sy_call = (sy_call_t *)linux_poll, .sy_auevent = AUE_POLL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 168 = linux_poll */
 	{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT },			/* 169 = ; */
 	{ .sy_narg = AS(linux_setresgid16_args), .sy_call = (sy_call_t *)linux_setresgid16, .sy_auevent = AUE_SETRESGID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 170 = linux_setresgid16 */
 	{ .sy_narg = AS(linux_getresgid16_args), .sy_call = (sy_call_t *)linux_getresgid16, .sy_auevent = AUE_GETRESGID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 171 = linux_getresgid16 */
diff --git a/sys/arm/linux/linux_systrace_args.c b/sys/arm/linux/linux_systrace_args.c
index 87608f6992bf..f35bb0c6b906 100644
--- a/sys/arm/linux/linux_systrace_args.c
+++ b/sys/arm/linux/linux_systrace_args.c
@@ -972,9 +972,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
 		*n_args = 3;
 		break;
 	}
-	/* poll */
+	/* linux_poll */
 	case 168: {
-		struct poll_args *p = params;
+		struct linux_poll_args *p = params;
 		uarg[0] = (intptr_t)p->fds; /* struct pollfd* */
 		uarg[1] = p->nfds; /* unsigned int */
 		iarg[2] = p->timeout; /* long */
@@ -3976,7 +3976,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
 			break;
 		};
 		break;
-	/* poll */
+	/* linux_poll */
 	case 168:
 		switch (ndx) {
 		case 0:
@@ -6936,7 +6936,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
 		if (ndx == 0 || ndx == 1)
 			p = "int";
 		break;
-	/* poll */
+	/* linux_poll */
 	case 168:
 		if (ndx == 0 || ndx == 1)
 			p = "int";
diff --git a/sys/i386/linux/linux_proto.h b/sys/i386/linux/linux_proto.h
index 0c7bdd56db97..c66f509ca57c 100644
--- a/sys/i386/linux/linux_proto.h
+++ b/sys/i386/linux/linux_proto.h
@@ -520,6 +520,11 @@ struct linux_getresuid16_args {
 struct linux_vm86_args {
 	register_t dummy;
 };
+struct linux_poll_args {
+	char fds_l_[PADL_(struct pollfd *)]; struct pollfd * fds; char fds_r_[PADR_(struct pollfd *)];
+	char nfds_l_[PADL_(unsigned int)]; unsigned int nfds; char nfds_r_[PADR_(unsigned int)];
+	char timeout_l_[PADL_(long)]; long timeout; char timeout_r_[PADR_(long)];
+};
 struct linux_setresgid16_args {
 	char rgid_l_[PADL_(l_gid16_t)]; l_gid16_t rgid; char rgid_r_[PADR_(l_gid16_t)];
 	char egid_l_[PADL_(l_gid16_t)]; l_gid16_t egid; char egid_r_[PADR_(l_gid16_t)];
@@ -1780,6 +1785,7 @@ int	linux_mremap(struct thread *, struct linux_mremap_args *);
 int	linux_setresuid16(struct thread *, struct linux_setresuid16_args *);
 int	linux_getresuid16(struct thread *, struct linux_getresuid16_args *);
 int	linux_vm86(struct thread *, struct linux_vm86_args *);
+int	linux_poll(struct thread *, struct linux_poll_args *);
 int	linux_setresgid16(struct thread *, struct linux_setresgid16_args *);
 int	linux_getresgid16(struct thread *, struct linux_getresgid16_args *);
 int	linux_prctl(struct thread *, struct linux_prctl_args *);
@@ -2193,6 +2199,7 @@ int	linux_mount_setattr(struct thread *, struct linux_mount_setattr_args *);
 #define	LINUX_SYS_AUE_linux_setresuid16	AUE_SETRESUID
 #define	LINUX_SYS_AUE_linux_getresuid16	AUE_GETRESUID
 #define	LINUX_SYS_AUE_linux_vm86	AUE_NULL
+#define	LINUX_SYS_AUE_linux_poll	AUE_POLL
 #define	LINUX_SYS_AUE_linux_setresgid16	AUE_SETRESGID
 #define	LINUX_SYS_AUE_linux_getresgid16	AUE_GETRESGID
 #define	LINUX_SYS_AUE_linux_prctl	AUE_PRCTL
diff --git a/sys/i386/linux/linux_syscall.h b/sys/i386/linux/linux_syscall.h
index 9488c637fff0..d8d5b20238ae 100644
--- a/sys/i386/linux/linux_syscall.h
+++ b/sys/i386/linux/linux_syscall.h
@@ -158,7 +158,7 @@
 #define	LINUX_SYS_linux_setresuid16	164
 #define	LINUX_SYS_linux_getresuid16	165
 #define	LINUX_SYS_linux_vm86	166
-#define	LINUX_SYS_poll	168
+#define	LINUX_SYS_linux_poll	168
 #define	LINUX_SYS_linux_setresgid16	170
 #define	LINUX_SYS_linux_getresgid16	171
 #define	LINUX_SYS_linux_prctl	172
diff --git a/sys/i386/linux/linux_syscalls.c b/sys/i386/linux/linux_syscalls.c
index 748d2eb18fc1..a1e54e20400f 100644
--- a/sys/i386/linux/linux_syscalls.c
+++ b/sys/i386/linux/linux_syscalls.c
@@ -175,7 +175,7 @@ const char *linux_syscallnames[] = {
 	"linux_getresuid16",			/* 165 = linux_getresuid16 */
 	"linux_vm86",			/* 166 = linux_vm86 */
 	"#167",			/* 167 = query_module */
-	"poll",			/* 168 = poll */
+	"linux_poll",			/* 168 = linux_poll */
 	"#169",			/* 169 = nfsservctl */
 	"linux_setresgid16",			/* 170 = linux_setresgid16 */
 	"linux_getresgid16",			/* 171 = linux_getresgid16 */
diff --git a/sys/i386/linux/linux_sysent.c b/sys/i386/linux/linux_sysent.c
index 216f46798e3a..7b94d2047071 100644
--- a/sys/i386/linux/linux_sysent.c
+++ b/sys/i386/linux/linux_sysent.c
@@ -185,7 +185,7 @@ struct sysent linux_sysent[] = {
 	{ .sy_narg = AS(linux_getresuid16_args), .sy_call = (sy_call_t *)linux_getresuid16, .sy_auevent = AUE_GETRESUID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 165 = linux_getresuid16 */
 	{ .sy_narg = 0, .sy_call = (sy_call_t *)linux_vm86, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 166 = linux_vm86 */
 	{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT },			/* 167 = query_module */
-	{ .sy_narg = AS(poll_args), .sy_call = (sy_call_t *)sys_poll, .sy_auevent = AUE_POLL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 168 = poll */
+	{ .sy_narg = AS(linux_poll_args), .sy_call = (sy_call_t *)linux_poll, .sy_auevent = AUE_POLL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 168 = linux_poll */
 	{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT },			/* 169 = nfsservctl */
 	{ .sy_narg = AS(linux_setresgid16_args), .sy_call = (sy_call_t *)linux_setresgid16, .sy_auevent = AUE_SETRESGID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 170 = linux_setresgid16 */
 	{ .sy_narg = AS(linux_getresgid16_args), .sy_call = (sy_call_t *)linux_getresgid16, .sy_auevent = AUE_GETRESGID, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 171 = linux_getresgid16 */
diff --git a/sys/i386/linux/linux_systrace_args.c b/sys/i386/linux/linux_systrace_args.c
index 15232a900447..bbab41700a93 100644
--- a/sys/i386/linux/linux_systrace_args.c
+++ b/sys/i386/linux/linux_systrace_args.c
@@ -1172,9 +1172,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
 		*n_args = 0;
 		break;
 	}
-	/* poll */
+	/* linux_poll */
 	case 168: {
-		struct poll_args *p = params;
+		struct linux_poll_args *p = params;
 		uarg[0] = (intptr_t)p->fds; /* struct pollfd * */
 		uarg[1] = p->nfds; /* unsigned int */
 		iarg[2] = p->timeout; /* long */
@@ -5025,7 +5025,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
 	/* linux_vm86 */
 	case 166:
 		break;
-	/* poll */
+	/* linux_poll */
 	case 168:
 		switch (ndx) {
 		case 0:
@@ -9078,7 +9078,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
 		break;
 	/* linux_vm86 */
 	case 166:
-	/* poll */
+	/* linux_poll */
 	case 168:
 		if (ndx == 0 || ndx == 1)
 			p = "int";