Patchwork [1/1] Corrected Version of uid16 fix for PowerPC

login
register
mail settings
Submitter Martin Mohring
Date Aug. 15, 2009, 3:49 p.m.
Message ID <4A86D927.2090601@opensuse.org>
Download mbox | patch
Permalink /patch/31474/
State Superseded
Headers show

Comments

Martin Mohring - Aug. 15, 2009, 3:49 p.m.
Hi,

attached, you will find a corrected version of the uid syscall fixes for
powerpc.in order to get his working correctly, the uid16 conversion
routines need to be activated. This patch should superseed the patch
sent by Uli Hecht when activating uid16 calls on PPC.

Regards, Martin
Riku Voipio - Aug. 17, 2009, 6:30 p.m.
On Sat, Aug 15, 2009 at 05:49:59PM +0200, Martin Mohring wrote:
> Hi,
> 
> attached, you will find a corrected version of the uid syscall fixes for
> powerpc.in order to get his working correctly, the uid16 conversion
> routines need to be activated. This patch should superseed the patch
> sent by Uli Hecht when activating uid16 calls on PPC.

As far as I see, Uli sent one for s390x:

http://lists.gnu.org/archive/html/qemu-devel/2009-08/msg00756.html

If the patch below supposed to supercede the s390x patch, shouldn't
this enable UID16 on s390x as well?

> Quite a number of syscalls are only defined on systems with USE_UID16.
> So with the NPTL implementation for PPC, these are missing on PPC and
> are herewith activated.

> Also, on PPC the uid16 conversions are then activated by defining the USE_UID16 macro on PPC. 
> 
> Signed-off-by: Martin Mohring <martin.mohring@opensuse.org>
> 
> diff -r -u qemu-0.11git2009.06.04.1212.orig/linux-user/ppc/syscall_nr.h qemu-0.11git2009.06.04.1212/linux-user/ppc/syscall_nr.h
> --- qemu-0.11git2009.06.04.1212.orig/linux-user/ppc/syscall_nr.h	2009-04-25 15:24:45.000000000 +0200
> +++ qemu-0.11git2009.06.04.1212/linux-user/ppc/syscall_nr.h	2009-06-05 20:15:32.047746675 +0200
> @@ -17,15 +17,15 @@
>  #define TARGET_NR_time                    13
>  #define TARGET_NR_mknod                   14
>  #define TARGET_NR_chmod                   15
> -#define TARGET_NR_lchown32                16
> +#define TARGET_NR_lchown                  16
>  #define TARGET_NR_break                   17
>  #define TARGET_NR_oldstat                 18
>  #define TARGET_NR_lseek                   19
>  #define TARGET_NR_getpid                  20
>  #define TARGET_NR_mount                   21
>  #define TARGET_NR_umount                  22
> -#define TARGET_NR_setuid32                23
> -#define TARGET_NR_getuid32                24
> +#define TARGET_NR_setuid                  23
> +#define TARGET_NR_getuid                  24
>  #define TARGET_NR_stime                   25
>  #define TARGET_NR_ptrace                  26
>  #define TARGET_NR_alarm                   27
> @@ -47,11 +47,11 @@
>  #define TARGET_NR_times                   43
>  #define TARGET_NR_prof                    44
>  #define TARGET_NR_brk                     45
> -#define TARGET_NR_setgid32                46
> -#define TARGET_NR_getgid32                47
> +#define TARGET_NR_setgid                  46
> +#define TARGET_NR_getgid                  47
>  #define TARGET_NR_signal                  48
> -#define TARGET_NR_geteuid32               49
> -#define TARGET_NR_getegid32               50
> +#define TARGET_NR_geteuid                 49
> +#define TARGET_NR_getegid                 50
>  #define TARGET_NR_acct                    51
>  #define TARGET_NR_umount2                 52
>  #define TARGET_NR_lock                    53
> @@ -71,8 +71,8 @@
>  #define TARGET_NR_sigaction               67
>  #define TARGET_NR_sgetmask                68
>  #define TARGET_NR_ssetmask                69
> -#define TARGET_NR_setreuid32              70
> -#define TARGET_NR_setregid32              71
> +#define TARGET_NR_setreuid                70
> +#define TARGET_NR_setregid                71
>  #define TARGET_NR_sigsuspend              72
>  #define TARGET_NR_sigpending              73
>  #define TARGET_NR_sethostname             74
> @@ -81,8 +81,8 @@
>  #define TARGET_NR_getrusage               77
>  #define TARGET_NR_gettimeofday            78
>  #define TARGET_NR_settimeofday            79
> -#define TARGET_NR_getgroups32             80
> -#define TARGET_NR_setgroups32             81
> +#define TARGET_NR_getgroups               80
> +#define TARGET_NR_setgroups               81
>  #define TARGET_NR_select                  82
>  #define TARGET_NR_symlink                 83
>  #define TARGET_NR_oldlstat                84
> @@ -96,7 +96,7 @@
>  #define TARGET_NR_truncate                92
>  #define TARGET_NR_ftruncate               93
>  #define TARGET_NR_fchmod                  94
> -#define TARGET_NR_fchown32                95
> +#define TARGET_NR_fchown                  95
>  #define TARGET_NR_getpriority             96
>  #define TARGET_NR_setpriority             97
>  #define TARGET_NR_profil                  98
> @@ -139,8 +139,8 @@
>  #define TARGET_NR_sysfs                  135
>  #define TARGET_NR_personality            136
>  #define TARGET_NR_afs_syscall            137 /* Syscall for Andrew File System */
> -#define TARGET_NR_setfsuid32             138
> -#define TARGET_NR_setfsgid32             139
> +#define TARGET_NR_setfsuid               138
> +#define TARGET_NR_setfsgid               139
>  #define TARGET_NR__llseek                140
>  #define TARGET_NR_getdents               141
>  #define TARGET_NR__newselect             142
> @@ -182,7 +182,7 @@
>  #define TARGET_NR_rt_sigsuspend          178
>  #define TARGET_NR_pread64                179
>  #define TARGET_NR_pwrite64               180
> -#define TARGET_NR_chown32                181
> +#define TARGET_NR_chown                  181
>  #define TARGET_NR_getcwd                 182
>  #define TARGET_NR_capget                 183
>  #define TARGET_NR_capset                 184
> diff -r -u qemu-0.11git2009.06.16.1935/linux-user/syscall_defs.h qemu-0.11git2009.06.16.1935.new/linux-user/syscall_defs.h
> --- qemu-0.11git2009.06.16.1935/linux-user/syscall_defs.h	2009-06-17 00:35:05.000000000 +0200
> +++ qemu-0.11git2009.06.16.1935.new/linux-user/syscall_defs.h	2009-06-17 01:28:28.000000000 +0200
> @@ -49,7 +49,7 @@
>  #define TARGET_IOC_TYPEBITS	8
>  
>  #if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC) \
> -    || defined(TARGET_M68K) || defined(TARGET_SH4) || defined(TARGET_CRIS)
> +    || defined(TARGET_M68K) || defined(TARGET_SH4) || defined(TARGET_CRIS) || defined(TARGET_PPC)
>      /* 16 bit uid wrappers emulation */
>  #define USE_UID16
>  #endif
Ulrich Hecht - Aug. 18, 2009, 9:32 a.m.
On Monday 17 August 2009, Riku Voipio wrote:
> If the patch below supposed to supercede the s390x patch, shouldn't
> this enable UID16 on s390x as well?

I don't see how this patch relates to mine at all, really. Either way, 
enabling UID16 on s390x would be incorrect.

CU
Uli
Martin Mohring - Aug. 18, 2009, 11:47 a.m.
Ulrich Hecht wrote:
> On Monday 17 August 2009, Riku Voipio wrote:
>   
>> If the patch below supposed to supercede the s390x patch, shouldn't
>> this enable UID16 on s390x as well?
>>     
>
> I don't see how this patch relates to mine at all, really. Either way, 
> enabling UID16 on s390x would be incorrect.
>
> CU
> Uli
>
>   
OK. I thought that enabling the uid16 *calls* needs also to enable the
uid16 *conversions* because otherwise the calls cannot work.
Maybe i am wrong? That was why i activated the uid16 conversion on PPC
together with uid16 calls. I tested this with
Debian PPC 32 bit targets....

Martin

Patch

Quite a number of syscalls are only defined on systems with USE_UID16.
So with the NPTL implementation for PPC, these are missing on PPC and
are herewith activated.

Also, on PPC the uid16 conversions are then activated by defining the USE_UID16 macro on PPC. 

Signed-off-by: Martin Mohring <martin.mohring@opensuse.org>

diff -r -u qemu-0.11git2009.06.04.1212.orig/linux-user/ppc/syscall_nr.h qemu-0.11git2009.06.04.1212/linux-user/ppc/syscall_nr.h
--- qemu-0.11git2009.06.04.1212.orig/linux-user/ppc/syscall_nr.h	2009-04-25 15:24:45.000000000 +0200
+++ qemu-0.11git2009.06.04.1212/linux-user/ppc/syscall_nr.h	2009-06-05 20:15:32.047746675 +0200
@@ -17,15 +17,15 @@ 
 #define TARGET_NR_time                    13
 #define TARGET_NR_mknod                   14
 #define TARGET_NR_chmod                   15
-#define TARGET_NR_lchown32                16
+#define TARGET_NR_lchown                  16
 #define TARGET_NR_break                   17
 #define TARGET_NR_oldstat                 18
 #define TARGET_NR_lseek                   19
 #define TARGET_NR_getpid                  20
 #define TARGET_NR_mount                   21
 #define TARGET_NR_umount                  22
-#define TARGET_NR_setuid32                23
-#define TARGET_NR_getuid32                24
+#define TARGET_NR_setuid                  23
+#define TARGET_NR_getuid                  24
 #define TARGET_NR_stime                   25
 #define TARGET_NR_ptrace                  26
 #define TARGET_NR_alarm                   27
@@ -47,11 +47,11 @@ 
 #define TARGET_NR_times                   43
 #define TARGET_NR_prof                    44
 #define TARGET_NR_brk                     45
-#define TARGET_NR_setgid32                46
-#define TARGET_NR_getgid32                47
+#define TARGET_NR_setgid                  46
+#define TARGET_NR_getgid                  47
 #define TARGET_NR_signal                  48
-#define TARGET_NR_geteuid32               49
-#define TARGET_NR_getegid32               50
+#define TARGET_NR_geteuid                 49
+#define TARGET_NR_getegid                 50
 #define TARGET_NR_acct                    51
 #define TARGET_NR_umount2                 52
 #define TARGET_NR_lock                    53
@@ -71,8 +71,8 @@ 
 #define TARGET_NR_sigaction               67
 #define TARGET_NR_sgetmask                68
 #define TARGET_NR_ssetmask                69
-#define TARGET_NR_setreuid32              70
-#define TARGET_NR_setregid32              71
+#define TARGET_NR_setreuid                70
+#define TARGET_NR_setregid                71
 #define TARGET_NR_sigsuspend              72
 #define TARGET_NR_sigpending              73
 #define TARGET_NR_sethostname             74
@@ -81,8 +81,8 @@ 
 #define TARGET_NR_getrusage               77
 #define TARGET_NR_gettimeofday            78
 #define TARGET_NR_settimeofday            79
-#define TARGET_NR_getgroups32             80
-#define TARGET_NR_setgroups32             81
+#define TARGET_NR_getgroups               80
+#define TARGET_NR_setgroups               81
 #define TARGET_NR_select                  82
 #define TARGET_NR_symlink                 83
 #define TARGET_NR_oldlstat                84
@@ -96,7 +96,7 @@ 
 #define TARGET_NR_truncate                92
 #define TARGET_NR_ftruncate               93
 #define TARGET_NR_fchmod                  94
-#define TARGET_NR_fchown32                95
+#define TARGET_NR_fchown                  95
 #define TARGET_NR_getpriority             96
 #define TARGET_NR_setpriority             97
 #define TARGET_NR_profil                  98
@@ -139,8 +139,8 @@ 
 #define TARGET_NR_sysfs                  135
 #define TARGET_NR_personality            136
 #define TARGET_NR_afs_syscall            137 /* Syscall for Andrew File System */
-#define TARGET_NR_setfsuid32             138
-#define TARGET_NR_setfsgid32             139
+#define TARGET_NR_setfsuid               138
+#define TARGET_NR_setfsgid               139
 #define TARGET_NR__llseek                140
 #define TARGET_NR_getdents               141
 #define TARGET_NR__newselect             142
@@ -182,7 +182,7 @@ 
 #define TARGET_NR_rt_sigsuspend          178
 #define TARGET_NR_pread64                179
 #define TARGET_NR_pwrite64               180
-#define TARGET_NR_chown32                181
+#define TARGET_NR_chown                  181
 #define TARGET_NR_getcwd                 182
 #define TARGET_NR_capget                 183
 #define TARGET_NR_capset                 184
diff -r -u qemu-0.11git2009.06.16.1935/linux-user/syscall_defs.h qemu-0.11git2009.06.16.1935.new/linux-user/syscall_defs.h
--- qemu-0.11git2009.06.16.1935/linux-user/syscall_defs.h	2009-06-17 00:35:05.000000000 +0200
+++ qemu-0.11git2009.06.16.1935.new/linux-user/syscall_defs.h	2009-06-17 01:28:28.000000000 +0200
@@ -49,7 +49,7 @@ 
 #define TARGET_IOC_TYPEBITS	8
 
 #if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC) \
-    || defined(TARGET_M68K) || defined(TARGET_SH4) || defined(TARGET_CRIS)
+    || defined(TARGET_M68K) || defined(TARGET_SH4) || defined(TARGET_CRIS) || defined(TARGET_PPC)
     /* 16 bit uid wrappers emulation */
 #define USE_UID16
 #endif