|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/hvm: do not register hpet mmio during s3 cycle
>>> On 07.11.17 at 21:39, <chanudete@xxxxxxxxxxxx> wrote:
> Do it once at domain creation (hpet_init).
>
> Sleep -> Resume cycles will end up crashing an HVM guest with hpet as
> the sequence during resume takes the path:
> -> hvm_s3_suspend
> -> hpet_reset
> -> hpet_deinit
> -> hpet_init
> -> register_mmio_handler
> -> hvm_next_io_handler
>
> register_mmio_handler will use a new io handler each time, until
> eventually it reaches NR_IO_HANDLERS, then hvm_next_io_handler calls
> domain_crash.
>
> Signed-off-by: Eric Chanudet <chanudete@xxxxxxxxxxxx>
This is certainly worthwhile to consider for 4.10 - please Cc
Julien on v2.
> +void hpet_reinit(struct domain *d)
static
> +{
> + HPETState *h = domain_vhpet(d);
> +
> + if ( !has_vhpet(d) )
> + return;
> +
> + hpet_set(h);
The local variable, being used only once, isn't needed.
> @@ -698,7 +713,7 @@ void hpet_deinit(struct domain *d)
> void hpet_reset(struct domain *d)
> {
> hpet_deinit(d);
> - hpet_init(d);
> + hpet_reinit(d);
> }
This being the only caller, it then becomes questionable whether
hpet_reinit() needs to be a separate function, or wouldn't better
be inlined here.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |