Messages in this thread | | | Subject | Re: [PATCH] x86/Hyper-V: Initialize Syn timer clock even when it's not available | From | Tianyu Lan <> | Date | Mon, 30 Mar 2020 22:14:56 +0800 |
| |
Sorry for wrong title. Please ignore it.
On 3/30/2020 10:09 PM, ltykernel@gmail.com wrote: > From: Tianyu Lan <Tianyu.Lan@microsoft.com> > > Current code initializes clock event data structure for syn timer > even when it's available or not. Fix it. > > Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com> > --- > drivers/hv/hv.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c > index 632d25674e7f..2e893768fc76 100644 > --- a/drivers/hv/hv.c > +++ b/drivers/hv/hv.c > @@ -212,13 +212,16 @@ int hv_synic_alloc(void) > tasklet_init(&hv_cpu->msg_dpc, > vmbus_on_msg_dpc, (unsigned long) hv_cpu); > > - hv_cpu->clk_evt = kzalloc(sizeof(struct clock_event_device), > - GFP_KERNEL); > - if (hv_cpu->clk_evt == NULL) { > - pr_err("Unable to allocate clock event device\n"); > - goto err; > + if (ms_hyperv.features & HV_MSR_SYNTIMER_AVAILABLE) { > + hv_cpu->clk_evt = > + kzalloc(sizeof(struct clock_event_device), > + GFP_KERNEL); > + if (hv_cpu->clk_evt == NULL) { > + pr_err("Unable to allocate clock event device\n"); > + goto err; > + } > + hv_init_clockevent_device(hv_cpu->clk_evt, cpu); > } > - hv_init_clockevent_device(hv_cpu->clk_evt, cpu); > > hv_cpu->synic_message_page = > (void *)get_zeroed_page(GFP_ATOMIC); >
| |