hv: init percpu_list in hv_synic_alloc()
Initializing hv_context.percpu_list in hv_synic_alloc() helps to prevent a crash in percpu_channel_enq() when not all CPUs were online during initialization and it naturally belongs there. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Cc: <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
421b8f20d3
commit
3c7630d350
@ -457,6 +457,8 @@ int hv_synic_alloc(void)
|
|||||||
pr_err("Unable to allocate post msg page\n");
|
pr_err("Unable to allocate post msg page\n");
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
INIT_LIST_HEAD(&hv_context.percpu_list[cpu]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -552,8 +554,6 @@ void hv_synic_init(void *arg)
|
|||||||
rdmsrl(HV_X64_MSR_VP_INDEX, vp_index);
|
rdmsrl(HV_X64_MSR_VP_INDEX, vp_index);
|
||||||
hv_context.vp_index[cpu] = (u32)vp_index;
|
hv_context.vp_index[cpu] = (u32)vp_index;
|
||||||
|
|
||||||
INIT_LIST_HEAD(&hv_context.percpu_list[cpu]);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Register the per-cpu clockevent source.
|
* Register the per-cpu clockevent source.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user