RE: [PATCH v3 1/4] drivers/clocksource/hyper-v: Introduce a pointer to TSC page

From: Michael Kelley (LINUX)
Date: Thu Nov 03 2022 - 16:58:31 EST


From: Stanislav Kinsburskii <skinsburskii@xxxxxxxxxxxxxxxxxxx> Sent: Thursday, November 3, 2022 10:59 AM
>
> Will be used later keep the address of the remapped page for the root
> partition as it will be Microsoft Hypervisor defined (and thus won't be a
> static address).
>
> Signed-off-by: Stanislav Kinsburskiy <stanislav.kinsburskiy@xxxxxxxxx>
> CC: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx>
> CC: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
> CC: Wei Liu <wei.liu@xxxxxxxxxx>
> CC: Dexuan Cui <decui@xxxxxxxxxxxxx>
> CC: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
> CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> CC: linux-hyperv@xxxxxxxxxxxxxxx
> CC: linux-kernel@xxxxxxxxxxxxxxx
> ---
> drivers/clocksource/hyperv_timer.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
> index 18de1f439ffd..b0b5df576e17 100644
> --- a/drivers/clocksource/hyperv_timer.c
> +++ b/drivers/clocksource/hyperv_timer.c
> @@ -367,9 +367,11 @@ static union {
> u8 reserved[PAGE_SIZE];
> } tsc_pg __aligned(PAGE_SIZE);
>
> +static struct ms_hyperv_tsc_page *tsc_page = &tsc_pg.page;
> +
> struct ms_hyperv_tsc_page *hv_get_tsc_page(void)
> {
> - return &tsc_pg.page;
> + return tsc_page;
> }
> EXPORT_SYMBOL_GPL(hv_get_tsc_page);
>
> @@ -407,7 +409,7 @@ static void suspend_hv_clock_tsc(struct clocksource *arg)
>
> static void resume_hv_clock_tsc(struct clocksource *arg)
> {
> - phys_addr_t phys_addr = virt_to_phys(&tsc_pg);
> + phys_addr_t phys_addr = virt_to_phys(tsc_page);
> union hv_reference_tsc_msr tsc_msr;
>
> /* Re-enable the TSC page */
>

Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>