Livepatch expected at some point to be able to print the
build-id during bootup, which it did not. The reason is
that xen_build_init and livepatch_init are both __initcall
type routines. This meant that when livepatch_init called
xen_build_id, it would return -ENODATA as build_id_len was
not setup yet (b/c xen_build_init would be called later).
The original patch fixed this by calling xen_build_init in
livepatch_init which allows us to print the build-id of
the hypervisor.
However the x86 maintainers pointed out that build-id
is independent of Livepatch and in fact should print
regardless whether Livepatch is enabled or not.
Therefore this patch moves the logic of printing the build-id
to version.c.
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
static int __init livepatch_init(void)
{
- const void *binary_id;
- unsigned int len;
-
- if ( !xen_build_id(&binary_id, &len) )
- printk(XENLOG_INFO LIVEPATCH ": build-id: %*phN\n", len, binary_id);
-
register_keyhandler('x', livepatch_printall, "print livepatch info", 1);
arch_livepatch_init();
}
}
#endif
+ if ( !rc )
+ printk(XENLOG_INFO "build-id: %*phN\n", build_id_len, build_id_p);
return rc;
}