public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: linux-ia64@vger.kernel.org
Subject: [PATCH 3.0.y, 3.2.y] ia64: Add accept4() syscall
Date: Wed, 16 May 2012 21:57:00 +0000	[thread overview]
Message-ID: <20120516215700.GA10476@burratino> (raw)

From: Émeric Maschino <emeric.maschino@gmail.com>

commit 65cc21b4523e94d5640542a818748cd3be8cd6b4 upstream.

While debugging udev > 170 failure on Debian Wheezy
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bugd8325), it appears
that the issue was in fact due to missing accept4() in ia64.

This patch simply adds accept4() to ia64.

Signed-off-by: Émeric Maschino <emeric.maschino@gmail.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Hi Ben and Greg,

Émeric Maschino wrote[1]:

> Starting with udev 170 (well, IIRC!), console is flooded at startup with:
>
>     udevd[XXX]: unable to receive ctrl connection: Function not implemented
>
> where XXX is a number (PID?).
>
> And system takes ~3 min. to get login prompt.

Indeed, udev versions since 168 (2011-04-22) require the accept4()
syscall.  That syscall was added to the kernel in 2.6.28 (2008-11-19),
but arches were slow to pick it up because checksyscalls.sh didn't
catch it[2] (it was implemented on 32-bit x86 using sys_socketcall).
Here is a list of when each arch added the syscall:

 x86 and arches using socketcall (2008-11-19) v2.6.28-rc6~45
 sparc64 (2008-11-19) v2.6.28-rc6~44
 MIPS (2009-08-03) v2.6.31-rc6~64^2
 microblaze (2009-12-28) v2.6.33-rc5~19^2~3
 sh64 (2010-01-19) v2.6.33-rc5~13^2
 parisc (2009-12-26) v2.6.34-rc1~13^2~6
 ARM (2010-08-15) v2.6.36-rc2~52^2~2
 sh (2010-12-13) v2.6.37-rc6~10^2
 alpha (2011-10-31) v3.2-rc1~108^2~58
 ia64 (2012-01-09) v3.3-rc1~73^2

Lots of arches are not listed above because they use the multiplexed
socketcall call and got support right away.  (sh and sh64 provide both
the direct syscall and socketcall.)

This patch was merged upstream during the 3.3 merge window and has
been in use in Debian's 3.2.y-based kernel since January.

As long as libc was built to use the syscall, applying this patch
makes udev work properly again on ia64.  What do you think?

Jonathan

[1] http://bugs.debian.org/648325
[2] http://thread.gmane.org/gmane.linux.kernel.cross-arch/11888/focus\x11907

 arch/ia64/include/asm/unistd.h |    3 ++-
 arch/ia64/kernel/entry.S       |    3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h
index 7c928da35b17..d8de1825b736 100644
--- a/arch/ia64/include/asm/unistd.h
+++ b/arch/ia64/include/asm/unistd.h
@@ -321,11 +321,12 @@
 #define __NR_syncfs			1329
 #define __NR_setns			1330
 #define __NR_sendmmsg			1331
+#define __NR_accept4			1334
 
 #ifdef __KERNEL__
 
 
-#define NR_syscalls			308 /* length of syscall table */
+#define NR_syscalls			311 /* length of syscall table */
 
 /*
  * The following defines stop scripts/checksyscalls.sh from complaining about
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
index 97dd2abdeb1a..df477f8c9d82 100644
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
@@ -1777,6 +1777,9 @@ sys_call_table:
 	data8 sys_syncfs
 	data8 sys_setns				// 1330
 	data8 sys_sendmmsg
+	data8 sys_ni_syscall	/* process_vm_readv */
+	data8 sys_ni_syscall	/* process_vm_writev */
+	data8 sys_accept4
 
 	.org sys_call_table + 8*NR_syscalls	// guard against failures to increase NR_syscalls
 #endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */
-- 
1.7.10.2


             reply	other threads:[~2012-05-16 21:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-16 21:57 Jonathan Nieder [this message]
2012-05-16 22:29 ` [PATCH 3.0.y, 3.2.y] ia64: Add accept4() syscall Ben Hutchings
2012-05-17 10:29 ` Émeric Maschino
2012-05-17 11:46 ` Ben Hutchings
2012-05-17 22:11 ` Émeric Maschino
2012-05-17 22:49 ` Jonathan Nieder
2012-05-18  9:07 ` Émeric Maschino
2012-05-18 19:28 ` Greg KH
2012-05-18 19:37 ` Jonathan Nieder
2012-05-19  0:53 ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120516215700.GA10476@burratino \
    --to=jrnieder@gmail.com \
    --cc=linux-ia64@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox