Message ID | 1374695401-22032-1-git-send-email-rth@twiddle.net |
---|---|
State | New |
Headers | show |
Ping. r~ On 07/24/2013 12:50 PM, Richard Henderson wrote: > It has been pointed out on LKML that the alpha umount syscall numbers > are named wrong, and a patch to rectify that has been posted for 3.11. > > Glibc works around this by treating NR_umount as NR_umount2 if > NR_oldumount exists. That's more complicated than we need in QEMU, > given that we control linux-user/*/syscall_nr.h. > > This is the last instance of TARGET_NR_oldumount, so delete that from > the strace.list. > > Signed-off-by: Richard Henderson <rth@twiddle.net> > --- > linux-user/alpha/syscall_nr.h | 4 ++-- > linux-user/strace.list | 3 --- > linux-user/syscall.c | 2 +- > 3 files changed, 3 insertions(+), 6 deletions(-) > > diff --git a/linux-user/alpha/syscall_nr.h b/linux-user/alpha/syscall_nr.h > index ac2b6e2..d52d76e 100644 > --- a/linux-user/alpha/syscall_nr.h > +++ b/linux-user/alpha/syscall_nr.h > @@ -20,7 +20,7 @@ > #define TARGET_NR_lseek 19 > #define TARGET_NR_getxpid 20 > #define TARGET_NR_osf_mount 21 > -#define TARGET_NR_umount 22 > +#define TARGET_NR_umount2 22 > #define TARGET_NR_setuid 23 > #define TARGET_NR_getxuid 24 > #define TARGET_NR_exec_with_loader 25 /* not implemented */ > @@ -255,7 +255,7 @@ > #define TARGET_NR_sysinfo 318 > #define TARGET_NR__sysctl 319 > /* 320 was sys_idle. */ > -#define TARGET_NR_oldumount 321 > +#define TARGET_NR_umount 321 > #define TARGET_NR_swapon 322 > #define TARGET_NR_times 323 > #define TARGET_NR_personality 324 > diff --git a/linux-user/strace.list b/linux-user/strace.list > index 08f115d..4f9c364 100644 > --- a/linux-user/strace.list > +++ b/linux-user/strace.list > @@ -612,9 +612,6 @@ > #ifdef TARGET_NR_oldstat > { TARGET_NR_oldstat, "oldstat" , NULL, NULL, NULL }, > #endif > -#ifdef TARGET_NR_oldumount > -{ TARGET_NR_oldumount, "oldumount" , NULL, NULL, NULL }, > -#endif > #ifdef TARGET_NR_olduname > { TARGET_NR_olduname, "olduname" , NULL, NULL, NULL }, > #endif > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 00a0390..e42c20e 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -5719,7 +5719,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, > unlock_user(p, arg1, 0); > } > break; > -#ifdef TARGET_NR_umount2 /* not on alpha */ > +#ifdef TARGET_NR_umount2 > case TARGET_NR_umount2: > if (!(p = lock_user_string(arg1))) > goto efault; >
Ping. r~ On 08/16/2013 11:24 PM, Richard Henderson wrote: > Ping. > > r~ > > > On 07/24/2013 12:50 PM, Richard Henderson wrote: >> It has been pointed out on LKML that the alpha umount syscall numbers >> are named wrong, and a patch to rectify that has been posted for 3.11. >> >> Glibc works around this by treating NR_umount as NR_umount2 if >> NR_oldumount exists. That's more complicated than we need in QEMU, >> given that we control linux-user/*/syscall_nr.h. >> >> This is the last instance of TARGET_NR_oldumount, so delete that from >> the strace.list. >> >> Signed-off-by: Richard Henderson <rth@twiddle.net> >> --- >> linux-user/alpha/syscall_nr.h | 4 ++-- >> linux-user/strace.list | 3 --- >> linux-user/syscall.c | 2 +- >> 3 files changed, 3 insertions(+), 6 deletions(-) >> >> diff --git a/linux-user/alpha/syscall_nr.h b/linux-user/alpha/syscall_nr.h >> index ac2b6e2..d52d76e 100644 >> --- a/linux-user/alpha/syscall_nr.h >> +++ b/linux-user/alpha/syscall_nr.h >> @@ -20,7 +20,7 @@ >> #define TARGET_NR_lseek 19 >> #define TARGET_NR_getxpid 20 >> #define TARGET_NR_osf_mount 21 >> -#define TARGET_NR_umount 22 >> +#define TARGET_NR_umount2 22 >> #define TARGET_NR_setuid 23 >> #define TARGET_NR_getxuid 24 >> #define TARGET_NR_exec_with_loader 25 /* not implemented */ >> @@ -255,7 +255,7 @@ >> #define TARGET_NR_sysinfo 318 >> #define TARGET_NR__sysctl 319 >> /* 320 was sys_idle. */ >> -#define TARGET_NR_oldumount 321 >> +#define TARGET_NR_umount 321 >> #define TARGET_NR_swapon 322 >> #define TARGET_NR_times 323 >> #define TARGET_NR_personality 324 >> diff --git a/linux-user/strace.list b/linux-user/strace.list >> index 08f115d..4f9c364 100644 >> --- a/linux-user/strace.list >> +++ b/linux-user/strace.list >> @@ -612,9 +612,6 @@ >> #ifdef TARGET_NR_oldstat >> { TARGET_NR_oldstat, "oldstat" , NULL, NULL, NULL }, >> #endif >> -#ifdef TARGET_NR_oldumount >> -{ TARGET_NR_oldumount, "oldumount" , NULL, NULL, NULL }, >> -#endif >> #ifdef TARGET_NR_olduname >> { TARGET_NR_olduname, "olduname" , NULL, NULL, NULL }, >> #endif >> diff --git a/linux-user/syscall.c b/linux-user/syscall.c >> index 00a0390..e42c20e 100644 >> --- a/linux-user/syscall.c >> +++ b/linux-user/syscall.c >> @@ -5719,7 +5719,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >> unlock_user(p, arg1, 0); >> } >> break; >> -#ifdef TARGET_NR_umount2 /* not on alpha */ >> +#ifdef TARGET_NR_umount2 >> case TARGET_NR_umount2: >> if (!(p = lock_user_string(arg1))) >> goto efault; >> >
Hi, On Mon, Aug 26, 2013 at 01:26:11PM -0700, Richard Henderson wrote: > Ping. Sorry for the delay, adding it to the next pull request. Riku > On 08/16/2013 11:24 PM, Richard Henderson wrote: > > Ping. > > > > r~ > > > > > > On 07/24/2013 12:50 PM, Richard Henderson wrote: > >> It has been pointed out on LKML that the alpha umount syscall numbers > >> are named wrong, and a patch to rectify that has been posted for 3.11. > >> > >> Glibc works around this by treating NR_umount as NR_umount2 if > >> NR_oldumount exists. That's more complicated than we need in QEMU, > >> given that we control linux-user/*/syscall_nr.h. > >> > >> This is the last instance of TARGET_NR_oldumount, so delete that from > >> the strace.list. > >> > >> Signed-off-by: Richard Henderson <rth@twiddle.net> > >> --- > >> linux-user/alpha/syscall_nr.h | 4 ++-- > >> linux-user/strace.list | 3 --- > >> linux-user/syscall.c | 2 +- > >> 3 files changed, 3 insertions(+), 6 deletions(-) > >> > >> diff --git a/linux-user/alpha/syscall_nr.h b/linux-user/alpha/syscall_nr.h > >> index ac2b6e2..d52d76e 100644 > >> --- a/linux-user/alpha/syscall_nr.h > >> +++ b/linux-user/alpha/syscall_nr.h > >> @@ -20,7 +20,7 @@ > >> #define TARGET_NR_lseek 19 > >> #define TARGET_NR_getxpid 20 > >> #define TARGET_NR_osf_mount 21 > >> -#define TARGET_NR_umount 22 > >> +#define TARGET_NR_umount2 22 > >> #define TARGET_NR_setuid 23 > >> #define TARGET_NR_getxuid 24 > >> #define TARGET_NR_exec_with_loader 25 /* not implemented */ > >> @@ -255,7 +255,7 @@ > >> #define TARGET_NR_sysinfo 318 > >> #define TARGET_NR__sysctl 319 > >> /* 320 was sys_idle. */ > >> -#define TARGET_NR_oldumount 321 > >> +#define TARGET_NR_umount 321 > >> #define TARGET_NR_swapon 322 > >> #define TARGET_NR_times 323 > >> #define TARGET_NR_personality 324 > >> diff --git a/linux-user/strace.list b/linux-user/strace.list > >> index 08f115d..4f9c364 100644 > >> --- a/linux-user/strace.list > >> +++ b/linux-user/strace.list > >> @@ -612,9 +612,6 @@ > >> #ifdef TARGET_NR_oldstat > >> { TARGET_NR_oldstat, "oldstat" , NULL, NULL, NULL }, > >> #endif > >> -#ifdef TARGET_NR_oldumount > >> -{ TARGET_NR_oldumount, "oldumount" , NULL, NULL, NULL }, > >> -#endif > >> #ifdef TARGET_NR_olduname > >> { TARGET_NR_olduname, "olduname" , NULL, NULL, NULL }, > >> #endif > >> diff --git a/linux-user/syscall.c b/linux-user/syscall.c > >> index 00a0390..e42c20e 100644 > >> --- a/linux-user/syscall.c > >> +++ b/linux-user/syscall.c > >> @@ -5719,7 +5719,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, > >> unlock_user(p, arg1, 0); > >> } > >> break; > >> -#ifdef TARGET_NR_umount2 /* not on alpha */ > >> +#ifdef TARGET_NR_umount2 > >> case TARGET_NR_umount2: > >> if (!(p = lock_user_string(arg1))) > >> goto efault; > >> > >
diff --git a/linux-user/alpha/syscall_nr.h b/linux-user/alpha/syscall_nr.h index ac2b6e2..d52d76e 100644 --- a/linux-user/alpha/syscall_nr.h +++ b/linux-user/alpha/syscall_nr.h @@ -20,7 +20,7 @@ #define TARGET_NR_lseek 19 #define TARGET_NR_getxpid 20 #define TARGET_NR_osf_mount 21 -#define TARGET_NR_umount 22 +#define TARGET_NR_umount2 22 #define TARGET_NR_setuid 23 #define TARGET_NR_getxuid 24 #define TARGET_NR_exec_with_loader 25 /* not implemented */ @@ -255,7 +255,7 @@ #define TARGET_NR_sysinfo 318 #define TARGET_NR__sysctl 319 /* 320 was sys_idle. */ -#define TARGET_NR_oldumount 321 +#define TARGET_NR_umount 321 #define TARGET_NR_swapon 322 #define TARGET_NR_times 323 #define TARGET_NR_personality 324 diff --git a/linux-user/strace.list b/linux-user/strace.list index 08f115d..4f9c364 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -612,9 +612,6 @@ #ifdef TARGET_NR_oldstat { TARGET_NR_oldstat, "oldstat" , NULL, NULL, NULL }, #endif -#ifdef TARGET_NR_oldumount -{ TARGET_NR_oldumount, "oldumount" , NULL, NULL, NULL }, -#endif #ifdef TARGET_NR_olduname { TARGET_NR_olduname, "olduname" , NULL, NULL, NULL }, #endif diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 00a0390..e42c20e 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -5719,7 +5719,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, unlock_user(p, arg1, 0); } break; -#ifdef TARGET_NR_umount2 /* not on alpha */ +#ifdef TARGET_NR_umount2 case TARGET_NR_umount2: if (!(p = lock_user_string(arg1))) goto efault;
It has been pointed out on LKML that the alpha umount syscall numbers are named wrong, and a patch to rectify that has been posted for 3.11. Glibc works around this by treating NR_umount as NR_umount2 if NR_oldumount exists. That's more complicated than we need in QEMU, given that we control linux-user/*/syscall_nr.h. This is the last instance of TARGET_NR_oldumount, so delete that from the strace.list. Signed-off-by: Richard Henderson <rth@twiddle.net> --- linux-user/alpha/syscall_nr.h | 4 ++-- linux-user/strace.list | 3 --- linux-user/syscall.c | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-)