On Fri, Jun 24, 2016 at 10:21 AM, Linus Torvalds <torva...@linux-foundation.org> wrote: > > But as mentioned, I must have missed something. There were a number of > places where the code used the task_stack_page() and > task_thread_info() interchangably, which used to work and is no longer > true. There might simply be cases I missed.
.. and immediately as I wrote that, I went "Duh". One place I missed was free_thread_info(), which should now free the stack, not the ti pointer. But it does struct page *page = virt_to_page(ti); and frees that, which is bogus. It turns out that we do do free_thread_info(tsk->stack); which is bogus too, and undoes it, but I think I have a few new places to look at.. Linus