Oh, well, Albert pointed out we could make all architectures specify
stack as base and offset so applications won't need #ifdefs. I am
planning on resending the eclone patchset with that change. So
the following change is not needed now.

Sukadev

Oren Laadan [[email protected]] wrote:
| 
| Applied in ckpt-v22-dev (will be pushed soon)
| 
| Thanks,
| 
| Oren.
| 
| On 05/03/2010 10:04 PM, Sukadev Bhattiprolu wrote:
| > 
| > Sorry, I thought I had sent this minor patch out earlier, but I just
| > realized I had not.
| > ---
| > 
| > From: Sukadev Bhattiprolu <[email protected]>
| > Date: Mon, 3 May 2010 11:38:16 -0700
| > Subject: [PATCH 1/1] eclone(): Remove extra __user and add a comment
| > 
| > As pointed out by Russel King, '__user' does not make sense on an integer
| > type. Remove it. Also add a comment on why we want 'stack_size' to be 0
| > on x86 and s390.
| > 
| > Signed-off-by: Sukadev Bhattiprolu <[email protected]>
| > ---
| >  arch/s390/kernel/process.c |    5 ++++-
| >  arch/x86/kernel/process.c  |    5 ++++-
| >  2 files changed, 8 insertions(+), 2 deletions(-)
| > 
| > diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
| > index efc7e8a..b00ffad 100644
| > --- a/arch/s390/kernel/process.c
| > +++ b/arch/s390/kernel/process.c
| > @@ -276,7 +276,7 @@ SYSCALL_DEFINE4(eclone, unsigned int, flags_low, struct 
clone_args __user *,
| >     int __user *parent_tid_ptr;
| >     int __user *child_tid_ptr;
| >     unsigned long flags;
| > -   unsigned long __user child_stack;
| > +   unsigned long child_stack;
| >     unsigned long stack_size;
| >  
| >     rc = fetch_clone_args_from_user(uca, args_size, &kca);
| > @@ -288,6 +288,9 @@ SYSCALL_DEFINE4(eclone, unsigned int, flags_low, struct 
clone_args __user *,
| >     child_tid_ptr =  (int __user *) kca.child_tid_ptr;
| >  
| >     stack_size = (unsigned long) kca.child_stack_size;
| > +   /*
| > +    * s390 does not need/use the stack_size. Ensure it is unused.
| > +    */
| >     if (stack_size)
| >             return -EINVAL;
| >  
| > diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
| > index 5abad20..8b1699a 100644
| > --- a/arch/x86/kernel/process.c
| > +++ b/arch/x86/kernel/process.c
| > @@ -268,7 +268,7 @@ sys_eclone(unsigned flags_low, struct clone_args __user 
*uca,
| >     unsigned long flags;
| >     int __user *parent_tidp;
| >     int __user *child_tidp;
| > -   unsigned long __user stack;
| > +   unsigned long stack;
| >     unsigned long stack_size;
| >  
| >     rc = fetch_clone_args_from_user(uca, args_size, &kca);
| > @@ -286,6 +286,9 @@ sys_eclone(unsigned flags_low, struct clone_args __user 
*uca,
| >     parent_tidp = (int *)(unsigned long)kca.parent_tid_ptr;
| >     child_tidp = (int *)(unsigned long)kca.child_tid_ptr;
| >  
| > +   /*
| > +    * x86 does not need/use the stack_size. Ensure it is unused.
| > +    */
| >     stack_size = (unsigned long)kca.child_stack_size;
| >     if (stack_size)
| >             return -EINVAL;
| > 
| > 
_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to