--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: linux-2.6: inexistant syscalls return wrong errno on mips/mipsel
- From: Aurelien Jarno <aurel32@mipsel.aurel32.net>
- Date: Tue, 17 Mar 2009 00:11:45 +0100
- Message-id: <20090316231145.21496.86010.reportbug@mipsel.aurel32.net>
Package: linux-2.6
Version: 2.6.18.dfsg.1-24
Severity: critical
Tags: patch
Justification: breaks unrelated software
Uninexistant syscalls on mips/mipsel return -ENOSYS errno instead of
ENOSYS. Moreover in some cases it even returns EINVAL instead of ENOSYS.
This make userland software like glibc or coreutils unable to detect
that the syscall does not exist and implement a fallback, which leads
to breakage like 'touch' not working anymore.
This is especially true for lenny running with a kernel from etch, and
will become more true with sid with a kernel from lenny as the glibc
version increases.
This has been fixed in kernel 2.6.28, so kernels from etch, etchnhalf
and lenny are affected. The patch series below applies for all of
them.
commit bda8229bdd087167f463ad5e74299987924f8137
Author: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Sat Oct 25 01:17:22 2008 +0900
MIPS: Set positive error number to errno on illegal_syscall
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index 5e75a31..ffa23bd 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -180,7 +180,7 @@ bad_stack:
* The system call does not exist in this kernel
*/
illegal_syscall:
- li v0, -ENOSYS # error
+ li v0, ENOSYS # error
sw v0, PT_R2(sp)
li t0, 1 # set error flag
sw t0, PT_R7(sp)
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
index 3d58204..a9e1716 100644
--- a/arch/mips/kernel/scall64-64.S
+++ b/arch/mips/kernel/scall64-64.S
@@ -117,7 +117,7 @@ syscall_trace_entry:
illegal_syscall:
/* This also isn't a 64-bit syscall, throw an error. */
- li v0, -ENOSYS # error
+ li v0, ENOSYS # error
sd v0, PT_R2(sp)
li t0, 1 # set error flag
sd t0, PT_R7(sp)
commit fb498e2570eedc6c9c3d165e370624dfc3aed97b
Author: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Sat Oct 25 01:17:23 2008 +0900
MIPS: Set ENOSYS to errno on illegal system call number for syscall(2)
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index ffa23bd..759f680 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -293,7 +293,7 @@ bad_alignment:
jr t2
/* Unreached */
-einval: li v0, -EINVAL
+einval: li v0, -ENOSYS
jr ra
END(sys_syscall)
commit c6cb4df96fa22d1174d6fb6dfc2c7501d7afaeea
Author: David Daney <ddaney@caviumnetworks.com>
Date: Fri Oct 31 11:23:09 2008 -0700
MIPS: Return ENOSYS from sys32_syscall on 64bit kernels like elsewhere.
When the o32 errno was changed to ENOSYS, we forgot to update the code
for 64bit kernels.
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Acked-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 3d55e3b..fefef4a 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -196,7 +196,7 @@ LEAF(sys32_syscall)
jr t2
/* Unreached */
-einval: li v0, -EINVAL
+einval: li v0, -ENOSYS
jr ra
END(sys32_syscall)
-- System Information:
Debian Release: 5.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: mipsel (mips64)
Kernel: Linux 2.6.26-1-5kc-malta
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
--- End Message ---
--- Begin Message ---
- To: 520100-close@bugs.debian.org
- Subject: Bug#520100: fixed in linux-2.6.24 2.6.24-6~etchnhalf.9
- From: dann frazier <dannf@debian.org>
- Date: Tue, 19 May 2009 01:54:13 +0000
- Message-id: <E1M6EWz-0000bj-Dy@ries.debian.org>
Source: linux-2.6.24
Source-Version: 2.6.24-6~etchnhalf.9
We believe that the bug you reported is fixed in the latest version of
linux-2.6.24, which is due to be installed in the Debian FTP archive:
linux-2.6.24_2.6.24-6~etchnhalf.9.diff.gz
to pool/main/l/linux-2.6.24/linux-2.6.24_2.6.24-6~etchnhalf.9.diff.gz
linux-2.6.24_2.6.24-6~etchnhalf.9.dsc
to pool/main/l/linux-2.6.24/linux-2.6.24_2.6.24-6~etchnhalf.9.dsc
linux-doc-2.6.24_2.6.24-6~etchnhalf.9_all.deb
to pool/main/l/linux-2.6.24/linux-doc-2.6.24_2.6.24-6~etchnhalf.9_all.deb
linux-headers-2.6.24-etchnhalf.1-all-ia64_2.6.24-6~etchnhalf.9_ia64.deb
to pool/main/l/linux-2.6.24/linux-headers-2.6.24-etchnhalf.1-all-ia64_2.6.24-6~etchnhalf.9_ia64.deb
linux-headers-2.6.24-etchnhalf.1-all_2.6.24-6~etchnhalf.9_ia64.deb
to pool/main/l/linux-2.6.24/linux-headers-2.6.24-etchnhalf.1-all_2.6.24-6~etchnhalf.9_ia64.deb
linux-headers-2.6.24-etchnhalf.1-common_2.6.24-6~etchnhalf.9_ia64.deb
to pool/main/l/linux-2.6.24/linux-headers-2.6.24-etchnhalf.1-common_2.6.24-6~etchnhalf.9_ia64.deb
linux-headers-2.6.24-etchnhalf.1-itanium_2.6.24-6~etchnhalf.9_ia64.deb
to pool/main/l/linux-2.6.24/linux-headers-2.6.24-etchnhalf.1-itanium_2.6.24-6~etchnhalf.9_ia64.deb
linux-headers-2.6.24-etchnhalf.1-mckinley_2.6.24-6~etchnhalf.9_ia64.deb
to pool/main/l/linux-2.6.24/linux-headers-2.6.24-etchnhalf.1-mckinley_2.6.24-6~etchnhalf.9_ia64.deb
linux-image-2.6.24-etchnhalf.1-itanium_2.6.24-6~etchnhalf.9_ia64.deb
to pool/main/l/linux-2.6.24/linux-image-2.6.24-etchnhalf.1-itanium_2.6.24-6~etchnhalf.9_ia64.deb
linux-image-2.6.24-etchnhalf.1-mckinley_2.6.24-6~etchnhalf.9_ia64.deb
to pool/main/l/linux-2.6.24/linux-image-2.6.24-etchnhalf.1-mckinley_2.6.24-6~etchnhalf.9_ia64.deb
linux-manual-2.6.24_2.6.24-6~etchnhalf.9_all.deb
to pool/main/l/linux-2.6.24/linux-manual-2.6.24_2.6.24-6~etchnhalf.9_all.deb
linux-patch-debian-2.6.24_2.6.24-6~etchnhalf.9_all.deb
to pool/main/l/linux-2.6.24/linux-patch-debian-2.6.24_2.6.24-6~etchnhalf.9_all.deb
linux-source-2.6.24_2.6.24-6~etchnhalf.9_all.deb
to pool/main/l/linux-2.6.24/linux-source-2.6.24_2.6.24-6~etchnhalf.9_all.deb
linux-support-2.6.24-etchnhalf.1_2.6.24-6~etchnhalf.9_all.deb
to pool/main/l/linux-2.6.24/linux-support-2.6.24-etchnhalf.1_2.6.24-6~etchnhalf.9_all.deb
linux-tree-2.6.24_2.6.24-6~etchnhalf.9_all.deb
to pool/main/l/linux-2.6.24/linux-tree-2.6.24_2.6.24-6~etchnhalf.9_all.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 520100@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
dann frazier <dannf@debian.org> (supplier of updated linux-2.6.24 package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.7
Date: Sun, 17 May 2009 23:37:31 -0600
Source: linux-2.6.24
Binary: linux-headers-2.6.24-etchnhalf.1-486 linux-headers-2.6.24-etchnhalf.1-all-amd64 linux-patch-debian-2.6.24 linux-headers-2.6.24-etchnhalf.1-all-ia64 linux-image-2.6.24-etchnhalf.1-s390x linux-image-2.6.24-etchnhalf.1-parisc-smp linux-image-2.6.24-etchnhalf.1-parisc64-smp linux-headers-2.6.24-etchnhalf.1-atari linux-headers-2.6.24-etchnhalf.1-parisc64-smp linux-headers-2.6.24-etchnhalf.1-sb1-bcm91250a linux-headers-2.6.24-etchnhalf.1-r5k-ip32 linux-image-2.6.24-etchnhalf.1-alpha-smp linux-image-2.6.24-etchnhalf.1-r5k-cobalt linux-image-2.6.24-etchnhalf.1-r5k-ip32 linux-image-2.6.24-etchnhalf.1-mac linux-image-2.6.24-etchnhalf.1-powerpc linux-headers-2.6.24-etchnhalf.1-r4k-ip22 linux-headers-2.6.24-etchnhalf.1-mckinley linux-headers-2.6.24-etchnhalf.1-all-sparc linux-headers-2.6.24-etchnhalf.1-mvme16x linux-headers-2.6.24-etchnhalf.1-footbridge linux-image-2.6.24-etchnhalf.1-486 linux-headers-2.6.24-etchnhalf.1-sparc64-smp linux-headers-2.6.24-etchnhalf.1-parisc64 linux-
headers-2.6.24-etchnhalf.1-amd64 linux-image-2.6.24-etchnhalf.1-powerpc-miboot linux-image-2.6.24-etchnhalf.1-sparc64-smp linux-image-2.6.24-etchnhalf.1-r4k-ip22 linux-headers-2.6.24-etchnhalf.1-versatile linux-image-2.6.24-etchnhalf.1-sb1a-bcm91480b linux-image-2.6.24-etchnhalf.1-itanium linux-headers-2.6.24-etchnhalf.1-all-arm linux-image-2.6.24-etchnhalf.1-parisc linux-headers-2.6.24-etchnhalf.1-4kc-malta linux-image-2.6.24-etchnhalf.1-amd64 linux-image-2.6.24-etchnhalf.1-powerpc64 linux-headers-2.6.24-etchnhalf.1-powerpc linux-headers-2.6.24-etchnhalf.1-alpha-legacy linux-image-2.6.24-etchnhalf.1-sb1-bcm91250a linux-image-2.6.24-etchnhalf.1-alpha-generic linux-image-2.6.24-etchnhalf.1-versatile linux-headers-2.6.24-etchnhalf.1-powerpc-miboot linux-headers-2.6.24-etchnhalf.1-all-armel linux-headers-2.6.24-etchnhalf.1-mac linux-headers-2.6.24-etchnhalf.1-r5k-cobalt linux-image-2.6.24-etchnhalf.1-atari linux-image-2.6.24-etchnhalf.1-ixp4xx linux-headers-2.6.24-etchnhalf.1-p
owerpc64 linux-headers-2.6.24-etchnhalf.1-iop32x linux-headers-2.6.24-etchnhalf.1-ixp4xx linux-headers-2.6.24-etchnhalf.1-common linux-headers-2.6.24-etchnhalf.1-alpha-generic linux-headers-2.6.24-etchnhalf.1-parisc-smp linux-headers-2.6.24-etchnhalf.1-all-mipsel linux-image-2.6.24-etchnhalf.1-mvme16x linux-headers-2.6.24-etchnhalf.1-all linux-headers-2.6.24-etchnhalf.1-all-powerpc linux-headers-2.6.24-etchnhalf.1-alpha-smp linux-headers-2.6.24-etchnhalf.1-mvme147 linux-headers-2.6.24-etchnhalf.1-686 linux-headers-2.6.24-etchnhalf.1-sb1a-bcm91480b linux-headers-2.6.24-etchnhalf.1-itanium linux-image-2.6.24-etchnhalf.1-s390 linux-headers-2.6.24-etchnhalf.1-all-hppa linux-image-2.6.24-etchnhalf.1-mvme147 linux-image-2.6.24-etchnhalf.1-iop32x linux-tree-2.6.24 linux-headers-2.6.24-etchnhalf.1-all-mips linux-manual-2.6.24 linux-headers-2.6.24-etchnhalf.1-amiga linux-support-2.6.24-etchnhalf.1 linux-image-2.6.24-etchnhalf.1-bvme6000 linux-image-2.6.24-etchnhalf.1-s390-tape linux-
headers-2.6.24-etchnhalf.1-parisc linux-headers-2.6.24-etchnhalf.1-all-m68k linux-headers-2.6.24-etchnhalf.1-bvme6000 linux-image-2.6.24-etchnhalf.1-686 linux-headers-2.6.24-etchnhalf.1-686-bigmem linux-image-2.6.24-etchnhalf.1-amiga linux-image-2.6.24-etchnhalf.1-5kc-malta linux-headers-2.6.24-etchnhalf.1-sparc64 linux-headers-2.6.24-etchnhalf.1-5kc-malta linux-image-2.6.24-etchnhalf.1-footbridge linux-image-2.6.24-etchnhalf.1-686-bigmem linux-doc-2.6.24 linux-headers-2.6.24-etchnhalf.1-all-i386 linux-image-2.6.24-etchnhalf.1-parisc64 linux-headers-2.6.24-etchnhalf.1-all-s390 linux-source-2.6.24 linux-image-2.6.24-etchnhalf.1-mckinley linux-image-2.6.24-etchnhalf.1-alpha-legacy linux-headers-2.6.24-etchnhalf.1-powerpc-smp linux-image-2.6.24-etchnhalf.1-powerpc-smp linux-headers-2.6.24-etchnhalf.1-s390x linux-image-2.6.24-etchnhalf.1-sparc64 linux-headers-2.6.24-etchnhalf.1-s390 linux-image-2.6.24-etchnhalf.1-4kc-malta linux-headers-2.6.24-etchnhalf.1-all-alpha
Architecture: source all ia64
Version: 2.6.24-6~etchnhalf.9
Distribution: oldstable
Urgency: high
Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
Changed-By: dann frazier <dannf@debian.org>
Description:
linux-doc-2.6.24 - Linux kernel specific documentation for version 2.6.24
linux-headers-2.6.24-etchnhalf.1-all - All header files for Linux 2.6.24
linux-headers-2.6.24-etchnhalf.1-all-ia64 - All header files for Linux 2.6.24
linux-headers-2.6.24-etchnhalf.1-common - Common header files for Linux 2.6.24
linux-headers-2.6.24-etchnhalf.1-itanium - Header files for Linux 2.6.24 on Itanium
linux-headers-2.6.24-etchnhalf.1-mckinley - Header files for Linux 2.6.24 on Itanium II
linux-image-2.6.24-etchnhalf.1-itanium - Linux 2.6.24 image on Itanium
linux-image-2.6.24-etchnhalf.1-mckinley - Linux 2.6.24 image on Itanium II
linux-manual-2.6.24 - Linux kernel API manual pages for version 2.6.24
linux-patch-debian-2.6.24 - Debian patches to version 2.6.24 of the Linux kernel
linux-source-2.6.24 - Linux kernel source for version 2.6.24 with Debian patches
linux-support-2.6.24-etchnhalf.1 - Support files for Linux 2.6.24
linux-tree-2.6.24 - Linux kernel source tree for building Debian kernel images
Closes: 520100
Changes:
linux-2.6.24 (2.6.24-6~etchnhalf.9) oldstable; urgency=high
.
[ Aurelien Jarno ]
* [mips/mipsel] Fix errno on inexistent syscalls. (Closes: #520100).
Files:
c845dd7b6f46f172b287e3cad2bc93c2 5107 devel optional linux-2.6.24_2.6.24-6~etchnhalf.9.dsc
f009f4144ed4ad86866682d29f451034 4038751 devel optional linux-2.6.24_2.6.24-6~etchnhalf.9.diff.gz
034e5fe4e815060e9562035e51d2fe1d 4469102 doc optional linux-doc-2.6.24_2.6.24-6~etchnhalf.9_all.deb
8ad7dbdef54ce151fa5bfa3b6b73d58a 1568176 doc optional linux-manual-2.6.24_2.6.24-6~etchnhalf.9_all.deb
5afd2463a2e7dfcefbada8b8380310f4 919322 devel optional linux-patch-debian-2.6.24_2.6.24-6~etchnhalf.9_all.deb
fefdc714019e4b87fc4d452fc5669965 46896784 devel optional linux-source-2.6.24_2.6.24-6~etchnhalf.9_all.deb
724e52fd38098d27cd683a3e94bfd672 97518 devel optional linux-support-2.6.24-etchnhalf.1_2.6.24-6~etchnhalf.9_all.deb
6749ab85505aa869b010092d06b20f9c 82596 devel optional linux-tree-2.6.24_2.6.24-6~etchnhalf.9_all.deb
2096fce74ebb94e1c0ffc9b769cc216f 32111976 admin optional linux-image-2.6.24-etchnhalf.1-itanium_2.6.24-6~etchnhalf.9_ia64.deb
f9f2a65bd493f38b6aac821b279c018f 321616 devel optional linux-headers-2.6.24-etchnhalf.1-itanium_2.6.24-6~etchnhalf.9_ia64.deb
7125c6d4eca172b0e36d62462f21b65c 32285500 admin optional linux-image-2.6.24-etchnhalf.1-mckinley_2.6.24-6~etchnhalf.9_ia64.deb
d47cba2b6edfe98988eeaa713ad5c71b 321346 devel optional linux-headers-2.6.24-etchnhalf.1-mckinley_2.6.24-6~etchnhalf.9_ia64.deb
1726a2b4b222b5332de1628cbdf6a68a 3569872 devel optional linux-headers-2.6.24-etchnhalf.1-common_2.6.24-6~etchnhalf.9_ia64.deb
c12eb9c890317952cee97e32a99c124e 82182 devel optional linux-headers-2.6.24-etchnhalf.1-all_2.6.24-6~etchnhalf.9_ia64.deb
92f2f65aa2b9f3c915d0d8e27f85b541 82206 devel optional linux-headers-2.6.24-etchnhalf.1-all-ia64_2.6.24-6~etchnhalf.9_ia64.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iD8DBQFKEfNVhuANDBmkLRkRAhDqAJ9JtCJ3c6FTAwjHcqFD3Qb+ecICxACeMFPk
HmD0/7/8dHU/sIuCHCXCmok=
=WQ3a
-----END PGP SIGNATURE-----
--- End Message ---