From: Torsten Duwe <duwe@lst.de>
To: Balbir Singh <bsingharora@gmail.com>
Cc: linuxppc-dev@ozlabs.org, pmladek@suse.com, jeyu@redhat.com,
jkosina@suse.cz, jikos@kernel.org, linux-kernel@vger.kernel.org,
rostedt@goodmis.org, kamalesh@linux.vnet.ibm.com,
live-patching@vger.kernel.org, mbenes@suse.cz
Subject: Re: [v5][PATCH] livepatch/ppc: Enable livepatching on powerpc
Date: Tue, 8 Mar 2016 11:45:52 +0100 [thread overview]
Message-ID: <20160308104552.GA16502@lst.de> (raw)
In-Reply-To: <1457422437-3357-1-git-send-email-bsingharora@gmail.com>
On Tue, Mar 08, 2016 at 06:33:57PM +1100, Balbir Singh wrote:
> Changelog v5:
> 1. Removed the mini-stack frame created for klp_return_helper.
> As a result of the mini-stack frame, function with > 8
> arguments could not be patched
Did you get my previous mails? Those functions only require special
care, the _can_ be patched. In general, writing replacement functions
always requires attention!
Have you *tested* this patch? Replacing a function in the kernel?
Replacing a function in a module? For local calls? For global calls?
I strongly doubt so because it does not work this way.
To be fair, my last mail still was not 100% correct, but the conclusion
that the mini frame is not needed at all is invalid. Please leave it as it
was, I'm working on a test / demonstrator for how to handle these.
> + * Why do we need this?
> + * After patching we need to return to a trampoline return function
> + * that guarantees that we restore the TOC and return to the correct
> + * caller back
> + */
> + std r2, 24(r1) /* save TOC now, unconditionally. */
> + subf r0, r2, r0 /* Calculate offset from current TOC */
> + stw r0, 12(r1) /* Of the final LR and save it in CR+4 */
> + bl 5f
> +5: mflr r12
> + addi r12, r12, (klp_return_helper + 4 - .)@l
> + std r12, LRSAVE(r1)
[...]
> + * maybe inserting a klp_return_helper frame or not.
> +*/
> +klp_return_helper:
> + ld r2, 24(r1) /* restore TOC (saved by ftrace_caller) */
> + lwa r0, 12(r1) /* Load from CR+4, offset of LR w.r.t TOC */
> + add r0, r0, r2 /* Add the offset to current TOC */
> + std r0, LRSAVE(r1) /* save the real return address */
> + mtlr r0
> + blr
> +#endif
NAKed-by: Torsten Duwe <duwe@suse.de>
Torsten
next prev parent reply other threads:[~2016-03-08 10:46 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-08 7:33 [v5][PATCH] livepatch/ppc: Enable livepatching on powerpc Balbir Singh
2016-03-08 10:45 ` Torsten Duwe [this message]
2016-03-08 13:52 ` Balbir Singh
2016-03-08 15:34 ` Torsten Duwe
2016-03-09 3:41 ` Balbir Singh
2016-03-09 16:10 ` Petr Mladek
2016-03-09 17:26 ` Torsten Duwe
2016-03-08 16:02 ` Petr Mladek
2016-03-09 3:37 ` Balbir Singh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160308104552.GA16502@lst.de \
--to=duwe@lst.de \
--cc=bsingharora@gmail.com \
--cc=jeyu@redhat.com \
--cc=jikos@kernel.org \
--cc=jkosina@suse.cz \
--cc=kamalesh@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=live-patching@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).