The ia32 perfctr syscalls were moved due to addition of ioprio
syscalls, but the ia32 emulation code in x86-64 wasn't updated.
Simple fix below.
Signed-off-by: Mikael Pettersson <[email protected]>
/Mikael
arch/x86_64/ia32/ia32entry.S | 4 +++-
include/asm-x86_64/ia32_unistd.h | 4 ++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff -rupN linux-2.6.11-mm3/arch/x86_64/ia32/ia32entry.S linux-2.6.11-mm3.perfctr-x86_64-ia32-syscalls-fixes/arch/x86_64/ia32/ia32entry.S
--- linux-2.6.11-mm3/arch/x86_64/ia32/ia32entry.S 2005-03-12 19:26:24.000000000 +0100
+++ linux-2.6.11-mm3.perfctr-x86_64-ia32-syscalls-fixes/arch/x86_64/ia32/ia32entry.S 2005-03-12 19:53:32.000000000 +0100
@@ -595,8 +595,10 @@ ia32_sys_call_table:
.quad sys_add_key
.quad sys_request_key
.quad sys_keyctl
+ .quad quiet_ni_syscall /* sys_ioprio_set */
+ .quad quiet_ni_syscall /* sys_ioprio_get */ /* 290 */
.quad sys_vperfctr_open
- .quad sys_vperfctr_control /* 290 */
+ .quad sys_vperfctr_control
.quad sys_vperfctr_write
.quad sys_vperfctr_read
/* don't forget to change IA32_NR_syscalls */
diff -rupN linux-2.6.11-mm3/include/asm-x86_64/ia32_unistd.h linux-2.6.11-mm3.perfctr-x86_64-ia32-syscalls-fixes/include/asm-x86_64/ia32_unistd.h
--- linux-2.6.11-mm3/include/asm-x86_64/ia32_unistd.h 2005-03-12 19:26:26.000000000 +0100
+++ linux-2.6.11-mm3.perfctr-x86_64-ia32-syscalls-fixes/include/asm-x86_64/ia32_unistd.h 2005-03-12 19:53:32.000000000 +0100
@@ -294,11 +294,11 @@
#define __NR_ia32_add_key 286
#define __NR_ia32_request_key 287
#define __NR_ia32_keyctl 288
-#define __NR_ia32_vperfctr_open 289
+#define __NR_ia32_vperfctr_open 291
#define __NR_ia32_vperfctr_control (__NR_ia32_vperfctr_open+1)
#define __NR_ia32_vperfctr_write (__NR_ia32_vperfctr_open+2)
#define __NR_ia32_vperfctr_read (__NR_ia32_vperfctr_open+3)
-#define IA32_NR_syscalls 293 /* must be > than biggest syscall! */
+#define IA32_NR_syscalls 295 /* must be > than biggest syscall! */
#endif /* _ASM_X86_64_IA32_UNISTD_H_ */
Mikael Pettersson <[email protected]> wrote:
>
> The ia32 perfctr syscalls were moved due to addition of ioprio
> syscalls, but the ia32 emulation code in x86-64 wasn't updated.
Ho hum. The perfctr syscall API has changed so many times that whenever
someone adds a syscall I have rejects to fix up in probably ten different
patches.
It would be nice to start folding these patches together a bit to reduce
such problems, but that's rather non-trivial because there is no way to
simply join these patches together which maintains a sensible sequencing.
If we're going to do anything then it's either a major refactoring, or
simply wham the entire feature into a single diff. That diff could then be
split into four patches: core, ppc, x86 and x86_64. We would lose the
layering between ye olde perfctr, the inheritance implementation, the syfs
API, etc. I could live with that.
What do you think?
On Sat, 12 Mar 2005 21:55:49 -0800, Andrew Morton wrote:
>It would be nice to start folding these patches together a bit to reduce
>such problems, but that's rather non-trivial because there is no way to
>simply join these patches together which maintains a sensible sequencing.
>
>If we're going to do anything then it's either a major refactoring, or
>simply wham the entire feature into a single diff. That diff could then be
>split into four patches: core, ppc, x86 and x86_64. We would lose the
>layering between ye olde perfctr, the inheritance implementation, the syfs
>API, etc. I could live with that.
>
>What do you think?
At my end there is already just "the current version"
(with history in cvs) so merging is fine with me.
/Mikael