[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] livepatch: Move code from prepare_payload to own routine
commit ed32327715288fca9176e2fb24887c43a90fb845 Author: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> AuthorDate: Wed Aug 10 09:53:52 2016 -0400 Commit: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> CommitDate: Wed Sep 7 21:10:41 2016 -0400 livepatch: Move code from prepare_payload to own routine Specifically the code that is looking up f->old_addr - which can be in its own routine instead of having it part of prepare_payload. No functional change. Reviewed-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> --- xen/common/livepatch.c | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c index 0c564c2..a6010eb 100644 --- a/xen/common/livepatch.c +++ b/xen/common/livepatch.c @@ -230,6 +230,30 @@ static const char *livepatch_symbols_lookup(unsigned long addr, return n; } +/* Lookup function's old address if not already resolved. */ +static int resolve_old_address(struct livepatch_func *f, + const struct livepatch_elf *elf) +{ + if ( f->old_addr ) + return 0; + + f->old_addr = (void *)symbols_lookup_by_name(f->name); + if ( !f->old_addr ) + { + f->old_addr = (void *)livepatch_symbols_lookup_by_name(f->name); + if ( !f->old_addr ) + { + dprintk(XENLOG_ERR, LIVEPATCH "%s: Could not resolve old address of %s\n", + elf->name, f->name); + return -ENOENT; + } + } + dprintk(XENLOG_DEBUG, LIVEPATCH "%s: Resolved old address %s => %p\n", + elf->name, f->name, f->old_addr); + + return 0; +} + static struct payload *find_payload(const char *name) { struct payload *data, *found = NULL; @@ -497,23 +521,9 @@ static int prepare_payload(struct payload *payload, if ( rc ) return rc; - /* Lookup function's old address if not already resolved. */ - if ( !f->old_addr ) - { - f->old_addr = (void *)symbols_lookup_by_name(f->name); - if ( !f->old_addr ) - { - f->old_addr = (void *)livepatch_symbols_lookup_by_name(f->name); - if ( !f->old_addr ) - { - dprintk(XENLOG_ERR, LIVEPATCH "%s: Could not resolve old address of %s\n", - elf->name, f->name); - return -ENOENT; - } - } - dprintk(XENLOG_DEBUG, LIVEPATCH "%s: Resolved old address %s => %p\n", - elf->name, f->name, f->old_addr); - } + rc = resolve_old_address(f, elf); + if ( rc ) + return rc; } sec = livepatch_elf_sec_by_name(elf, ELF_BUILD_ID_NOTE); -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |