> From: Tianyu Lan <ltykernel@xxxxxxxxx> > Sent: Wednesday, August 16, 2023 8:59 AM > [...] > @@ -378,6 +378,36 @@ static void __init hv_get_partition_id(void) > local_irq_restore(flags); > } > > +static u8 __init get_vtl(void) > +{ > + u64 control = HV_HYPERCALL_REP_COMP_1 | > HVCALL_GET_VP_REGISTERS; > + struct hv_get_vp_registers_input *input; > + struct hv_get_vp_registers_output *output; > + unsigned long flags; > + u64 ret = 0; Nitpick: we don't have to initialize 'ret' here. Reviewed-by: Dexuan Cui <decui@xxxxxxxxxxxxx> > + > + local_irq_save(flags); > + input = *this_cpu_ptr(hyperv_pcpu_input_arg); > + output = (struct hv_get_vp_registers_output *)input; > + > + memset(input, 0, struct_size(input, element, 1)); > + input->header.partitionid = HV_PARTITION_ID_SELF; > + input->header.vpindex = HV_VP_INDEX_SELF; > + input->header.inputvtl = 0; > + input->element[0].name0 = HV_X64_REGISTER_VSM_VP_STATUS; > + > + ret = hv_do_hypercall(control, input, output); 'ret' is always initialized here. > + if (hv_result_success(ret)) { > + ret = output->as64.low & HV_X64_VTL_MASK; > + } else { > + pr_err("Failed to get VTL(%lld) and set VTL to zero by > default.\n", ret); > + ret = 0; > + } > + > + local_irq_restore(flags); > + return ret; > +}