|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC v1 54/74] xen/pvshim: set correct domid value
>>> On 04.01.18 at 14:06, <wei.liu2@xxxxxxxxxx> wrote:
> @@ -94,6 +95,24 @@ void __init pv_shim_setup_dom(struct domain *d,
> l4_pgentry_t *l4start,
> #undef SET_AND_MAP_PARAM
> }
>
> +void pv_shim_shutdown(uint8_t reason)
> +{
> + /* XXX: handle suspend */
> + xen_hypercall_shutdown(reason);
> +}
Does this really need to be an out-of-line function? But yes, the
todo item probably warrants it.
> +domid_t get_dom0_domid(void)
What a strange name - to me Dom0's domain ID can only ever be
zero.
> +{
> + uint32_t eax, ebx, ecx, edx;
> +
> + if ( !pv_shim )
> + return 0;
> +
> + cpuid(hypervisor_cpuid_base() + 1, &eax, &ebx, &ecx, &edx);
> +
> + return ebx ?: 1;
> +}
Not having another way to obtain the domain ID, returning 1
here is nevertheless dangerous in case the client domain actually
means to use its domain ID instead of DOMID_SELF anywhere. At
the very least this should be stated clearly in the description
(serving as a hint that the CPUID change should be backported
by anyone wanting to use the shim on their hypervisors).
> @@ -576,11 +578,11 @@ static void noinline init_done(void)
>
> system_state = SYS_STATE_active;
>
> + domain_unpause_by_systemcontroller(dom0);
> +
> /* MUST be done prior to removing .init data. */
> unregister_init_virtual_region();
>
> - domain_unpause_by_systemcontroller(hardware_domain);
Why the re-ordering? Along the lines of the earlier comment,
using "dom0" as replacement (static) variable isn't very nice.
Please at least accompany its declaration by a comment.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |