On 04/27/2018 08:36 AM, David Hildenbrand wrote: > Move the Multiple-epoch facility handling into it and rename it to > kvm_s390_get_tod_clock(). > > This leaves us with: > - kvm_s390_set_tod_clock() > - kvm_s390_get_tod_clock() > - kvm_s390_get_tod_clock_fast() > > So all Multiple-epoch facility is hidden in these functions. > > Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> Aside from the one nit described below, looks good to me! Reviewed-by: Collin Walling <walling@xxxxxxxxxxxxx> > --- > arch/s390/kvm/kvm-s390.c | 22 +++++++++------------- > 1 file changed, 9 insertions(+), 13 deletions(-) > > diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c > index b3eee3cc6e78..fb753b9439fa 100644 > --- a/arch/s390/kvm/kvm-s390.c > +++ b/arch/s390/kvm/kvm-s390.c > @@ -1033,8 +1033,8 @@ static int kvm_s390_set_tod(struct kvm *kvm, struct kvm_device_attr *attr) > return ret; > } > > -static void kvm_s390_get_tod_clock_ext(struct kvm *kvm, > - struct kvm_s390_vm_tod_clock *gtod) > +static void kvm_s390_get_tod_clock(struct kvm *kvm, > + struct kvm_s390_vm_tod_clock *gtod) Nit: add one more whitespace for the second line of parameters > { > struct kvm_s390_tod_clock_ext htod; > > @@ -1043,10 +1043,12 @@ static void kvm_s390_get_tod_clock_ext(struct kvm *kvm, > get_tod_clock_ext((char *)&htod); > > gtod->tod = htod.tod + kvm->arch.epoch; > - gtod->epoch_idx = htod.epoch_idx + kvm->arch.epdx; > - > - if (gtod->tod < htod.tod) > - gtod->epoch_idx += 1; > + gtod->epoch_idx = 0; > + if (test_kvm_facility(kvm, 139)) { > + gtod->epoch_idx = htod.epoch_idx + kvm->arch.epdx; > + if (gtod->tod < htod.tod) > + gtod->epoch_idx += 1; > + } > > preempt_enable(); > } > @@ -1055,13 +1057,7 @@ static int kvm_s390_get_tod_ext(struct kvm *kvm, struct kvm_device_attr *attr) > { > struct kvm_s390_vm_tod_clock gtod; > > - memset(>od, 0, sizeof(gtod)); > - > - if (test_kvm_facility(kvm, 139)) > - kvm_s390_get_tod_clock_ext(kvm, >od); > - else > - gtod.tod = kvm_s390_get_tod_clock_fast(kvm); > - > + kvm_s390_get_tod_clock(kvm, >od); > if (copy_to_user((void __user *)attr->addr, >od, sizeof(gtod))) > return -EFAULT; > > -- Respectfully, - Collin Walling