Thread (21 messages) flat view 21 messages, 9 authors, 2016-03-08

Re: [PATCH][v4] livepatch/ppc: Enable livepatching on powerpc

From: Torsten Duwe <hidden>
Date: 2016-03-04 19:22:26
Also in: lkml

On Fri, Mar 04, 2016 at 07:16:57PM +0100, Torsten Duwe wrote:
On Fri, Mar 04, 2016 at 02:01:37PM +0100, Petr Mladek wrote:
quoted
Do I understand it correctly that we could not patch functions that
pass arguments on the stack with this implementation? If yes, how hard
would be to get it working, please? At least, it would be great to
catch this problem and handle it with grace. Otherwise, it might
be hard to debug.
No, those functions only require special attention.
So far it's correct. It's been a while since I wrote that code.
I needed _any_ location to store the caller's TOC;
and the stack is thread-safe and recursion-safe.
The current caller's frame is already full so I had
to create a new one.
Correction: the TOC can be stored in the caller's stack frame at
the usual location. Only the restore instruction is a problem.
A patch function could e.g. grab that TOC value in a
prologue and then pop that stack frame. Or it could
add those 32 bytes to the assumed arguments' stack offsets.
So one solution could be to call the patch function via a small
trampoline or pre-prologue that just pops that frame, and have
the patch function restore R2 manually at the end.

Sorry for the confusion,

	Torsten
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help