Re: [microblaze-linux] [RESEND PATCH v2] microblaze: Fix clonesyscall

From: Rich Felker
Date: Mon Jul 29 2013 - 02:41:24 EST


On Mon, Jul 29, 2013 at 08:22:56AM +0200, Michal Simek wrote:
> Microblaze was assign to CLONE_BACKWARDS type where
> parent tid was passed via 3rd argument.
> Microblaze glibc is using 4th argument for it.
>
> Create new CLONE_BACKWARDS3 type where stack_size is passed
> via 3rd argument, parent thread id pointer via 4th,
> child thread id pointer via 5th and tls value as 6th
> argument
>
> Inconsistency was introduced by this patch:
> "microblaze: switch to generic fork/vfork/clone"
> (sha1: f3268edbe6fe0ce56e62c6d6b14640aeb04864b7)

I still don't think this is clear. I would suggest language like:

==
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.
==

And maybe add something about which versions were affected by the
breakage.

Rich
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/