2013-07-29 07:01:53

by Michal Simek

[permalink] [raw]
Subject: [PATCH v3] microblaze: Fix clone syscall


Attachments:
(No filename) (2.96 kB)
(No filename) (198.00 B)
Download all attachments

2013-07-31 20:10:34

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH v3] microblaze: Fix clone syscall

On Mon, 29 Jul 2013 09:01:48 +0200 Michal Simek <[email protected]> wrote:

> Fix inadvertent breakage in the clone syscall ABI for Microblaze
> that was introduced in this patch:
> "microblaze: switch to generic fork/vfork/clone"
> (sha1: f3268edbe6fe0ce56e62c6d6b14640aeb04864b7)
>
> The Microblaze syscall ABI for clone takes the parent tid address in
> the 4th argument; the third argument slot is used for the stack size.
> The incorrectly-used CLONE_BACKWARDS type assigned parent tid to the
> 3rd slot.
>
> This commit restores the original ABI so that existing userspace libc
> code will work correctly.
>
> All kernel versions from v3.8-rc1 were affected.

x86_64 allnoconfig generates screenfuls of

In file included from fs/signalfd.c:31:
include/linux/syscalls.h:805:5: warning: "CONFIG_CLONE_BACKWARDS3" is not defined

> --- a/include/linux/syscalls.h
> +++ b/include/linux/syscalls.h
> @@ -802,9 +802,14 @@ asmlinkage long sys_vfork(void);
> asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, int,
> int __user *);
> #else
> +#if CONFIG_CLONE_BACKWARDS3

Presumably ifdef here will fix that. Please redo, retest and resend?

2013-08-01 07:58:37

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH v3] microblaze: Fix clone syscall

On 07/31/2013 10:10 PM, Andrew Morton wrote:
> On Mon, 29 Jul 2013 09:01:48 +0200 Michal Simek <[email protected]> wrote:
>
>> Fix inadvertent breakage in the clone syscall ABI for Microblaze
>> that was introduced in this patch:
>> "microblaze: switch to generic fork/vfork/clone"
>> (sha1: f3268edbe6fe0ce56e62c6d6b14640aeb04864b7)
>>
>> The Microblaze syscall ABI for clone takes the parent tid address in
>> the 4th argument; the third argument slot is used for the stack size.
>> The incorrectly-used CLONE_BACKWARDS type assigned parent tid to the
>> 3rd slot.
>>
>> This commit restores the original ABI so that existing userspace libc
>> code will work correctly.
>>
>> All kernel versions from v3.8-rc1 were affected.
>
> x86_64 allnoconfig generates screenfuls of
>
> In file included from fs/signalfd.c:31:
> include/linux/syscalls.h:805:5: warning: "CONFIG_CLONE_BACKWARDS3" is not defined
>
>> --- a/include/linux/syscalls.h
>> +++ b/include/linux/syscalls.h
>> @@ -802,9 +802,14 @@ asmlinkage long sys_vfork(void);
>> asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, int,
>> int __user *);
>> #else
>> +#if CONFIG_CLONE_BACKWARDS3
>
> Presumably ifdef here will fix that. Please redo, retest and resend?

Yes,
I have got that email from Zero day testing system too.

Fixed in v4. I have also retest it for Microblaze.

Thanks,
Michal

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform



Attachments:
signature.asc (263.00 B)
OpenPGP digital signature