Messages in this thread |  | | From | Michael Ellerman <> | Subject | Re: [PATCH v5 3/9] powerpc: Prepare for moving thread_info into task_struct | Date | Sat, 06 Oct 2018 22:40:29 +1000 |
| |
Christophe Leroy <christophe.leroy@c-s.fr> writes:
> diff --git a/arch/powerpc/include/asm/livepatch.h b/arch/powerpc/include/asm/livepatch.h > index 47a03b9b528b..818451bf629c 100644 > --- a/arch/powerpc/include/asm/livepatch.h > +++ b/arch/powerpc/include/asm/livepatch.h > @@ -49,7 +49,7 @@ static inline void klp_init_thread_info(struct thread_info *ti) > ti->livepatch_sp = (unsigned long *)(ti + 1) + 1;
We need to do something about this.
Currently the thread_info sits at the low address of the stack, and we use the space immediately above that as a miniature upward growing stack for livepatching.
If we keep the livepatch_sp in the thread_info then we need to initialise it somewhere when the task starts running on a stack. And I don't know how that works if we end up running on the emergency stack for example.
So I'm not sure that makes much sense.
Instead we might need to keep the livepatch_sp on the stack page at the base, where thread_info currently lives.
That obviously sucks because you can still overflow into it and trash it, but it's no worse than what we have now for livepatching.
Need to think about it some more.
cheers
|  |