android_kernel_oneplus_msm8998/init
Linus Torvalds 50d3f7d55a UPSTREAM: Clarify naming of thread info/stack allocators
We've had the thread info allocated together with the thread stack for
most architectures for a long time (since the thread_info was split off
from the task struct), but that is about to change.

But the patches that move the thread info to be off-stack (and a part of
the task struct instead) made it clear how confused the allocator and
freeing functions are.

Because the common case was that we share an allocation with the thread
stack and the thread_info, the two pointers were identical.  That
identity then meant that we would have things like

	ti = alloc_thread_info_node(tsk, node);
	...
	tsk->stack = ti;

which certainly _worked_ (since stack and thread_info have the same
value), but is rather confusing: why are we assigning a thread_info to
the stack? And if we move the thread_info away, the "confusing" code
just gets to be entirely bogus.

So remove all this confusion, and make it clear that we are doing the
stack allocation by renaming and clarifying the function names to be
about the stack.  The fact that the thread_info then shares the
allocation is an implementation detail, and not really about the
allocation itself.

This is a pure renaming and type fix: we pass in the same pointer, it's
just that we clarify what the pointer means.

The ia64 code that actually only has one single allocation (for all of
task_struct, thread_info and kernel thread stack) now looks a bit odd,
but since "tsk->stack" is actually not even used there, that oddity
doesn't matter.  It would be a separate thing to clean that up, I
intentionally left the ia64 changes as a pure brute-force renaming and
type change.

Acked-by: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Bug: 38331309
Change-Id: I870b5476fc900c9145134f9dd3ed18a32a490162
(cherry picked from commit b235beea9e996a4d36fed6cfef4801a3e7d7a9a5)
Signed-off-by: Zubin Mithra <zsm@google.com>
2017-08-09 15:23:22 +01:00
..
calibrate.c kernel: add calibration_delay_done() 2014-06-16 12:47:39 -06:00
do_mounts.c CHROMIUM: dm: boot time specification of dm= 2016-08-10 13:23:42 -07:00
do_mounts.h CHROMIUM: dm: boot time specification of dm= 2016-08-10 13:23:42 -07:00
do_mounts_dm.c ANDROID: Update init/do_mounts_dm.c to the latest ChromiumOS version. 2017-04-25 15:00:50 -04:00
do_mounts_initrd.c usermodehelper: split remaining calls to call_usermodehelper_fns() 2013-04-30 17:04:06 -07:00
do_mounts_md.c init: disable sparse checking of the mount.o source files 2012-05-31 17:49:27 -07:00
do_mounts_rd.c initramfs: support initramfs that is bigger than 2GiB 2014-08-08 15:57:26 -07:00
init_task.c sched/rt: Move rt specific bits into new header file 2013-02-07 20:51:08 +01:00
initramfs.c initramfs: Add skip_initramfs command line option 2016-02-16 13:54:10 -08:00
Kconfig ANDROID: sched/walt: fix build failure if FAIR_GROUP_SCHED=n 2017-01-02 20:45:10 +05:30
main.c UPSTREAM: Clarify naming of thread info/stack allocators 2017-08-09 15:23:22 +01:00
Makefile CHROMIUM: dm: boot time specification of dm= 2016-08-10 13:23:42 -07:00
noinitramfs.c initramfs: Add skip_initramfs command line option 2016-02-16 13:54:10 -08:00
version.c copy address of proc_ns_ops into ns_common 2014-12-04 14:34:47 -05:00