All of lore.kernel.org
 help / color / mirror / Atom feed
* microblaze: clone syscall: Potentially ABI breaking by passing parent/child_tidptr - old glibc 2.3.6.
@ 2012-03-15 14:59 Michal Simek
  0 siblings, 0 replies; only message in thread
From: Michal Simek @ 2012-03-15 14:59 UTC (permalink / raw)
  To: LKML
  Cc: John Williams, Arnd Bergmann, Grant Likely, Ingo Molnar,
	Andrew Morton, Tejun Heo, Oleg Nesterov, Peter Zijlstra,
	John Linn

Hi All,

We have updated our toolchain to the latest & greatest based on an eglibc with ntpl for microblaze.
And I would like to check one thing with you to be sure that we don't break ABI compatibility.

In current kernel code (without ntpl), kernel sys_clone wrapper(in entry.S) clears 2 arguments (or setup them to NULL)
which is parent_tidptr and child_tidptr.
Obviously we have to use these two parameters to get things to work on eglibc that's why I have to remove
that clearing.

I have looked at the kernel code(fork.c and core.c files) and I haven't found any reason why
passing parent_tidptr and child_tidptr from glibc and not to clearing them in the kernel should break
old glibc toolchain and break ABI.

For old glibc if clone_flags is setup to (CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID | CLONE_CHILD_SETTID)
to get parent/child_tidptr use in the kernel (but both are NULL).
 From code I have seen it always ends with unsuccessful attempt to return value back to user space
because kernel ignores return values from put_user macros (It also means that put_user fails
because pointer is NULL).
For new case(with passing parent/child_tidptr) from old glibc, kernel will just do what it is expected
to do which is setup/clear proper values to provided pointers.

Also from man page if I compare both cases (with setup pointers to NULL and passing them from glibc)
kernel will setup/clear thread ID to proper location prepared by glibc.

My point is if there is any option if we start to pass parent/child_tidptr for old glibc that it will
break anything.

Can you correct my understanding?

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2012-03-15 14:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-15 14:59 microblaze: clone syscall: Potentially ABI breaking by passing parent/child_tidptr - old glibc 2.3.6 Michal Simek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.