On Fri, Jul 15, 2022 at 12:18 PM Janosch Frank <fran...@linux.ibm.com> wrote:
> On 7/15/22 10:10, Marc-André Lureau wrote: > [...] > >> ms->pv = true; > >> > >> + rc = s390_pv_query_info(); > >> + if (rc) { > >> + goto out_err; > >> > > > > Maybe it's not necessary to make it fatal on error? > > > > lgtm otherwise > > Hmm, yes and no. > The info API is fenced by the dump CAP so I don't ever expect an error > here but on the other hand an optional info API fail might not warrant > an error. > > I see. You could explain more explicitly in the commit messages and/or comments the kernel version/requirements. > > > > > >> + } > >> + > >> /* Set SE header and unpack */ > >> rc = s390_ipl_prepare_pv_header(); > >> if (rc) { > >> diff --git a/include/hw/s390x/pv.h b/include/hw/s390x/pv.h > >> index 1f1f545bfc..6fa55bf70e 100644 > >> --- a/include/hw/s390x/pv.h > >> +++ b/include/hw/s390x/pv.h > >> @@ -38,6 +38,7 @@ static inline bool s390_is_pv(void) > >> return ccw->pv; > >> } > >> > >> +int s390_pv_query_info(void); > >> int s390_pv_vm_enable(void); > >> void s390_pv_vm_disable(void); > >> int s390_pv_set_sec_parms(uint64_t origin, uint64_t length); > >> @@ -46,8 +47,13 @@ void s390_pv_prep_reset(void); > >> int s390_pv_verify(void); > >> void s390_pv_unshare(void); > >> void s390_pv_inject_reset_error(CPUState *cs); > >> +uint64_t kvm_s390_pv_dmp_get_size_cpu(void); > >> +uint64_t kvm_s390_pv_dmp_get_size_mem(void); > >> +uint64_t kvm_s390_pv_dmp_get_size_complete(void); > >> +bool kvm_s390_pv_info_basic_valid(void); > >> #else /* CONFIG_KVM */ > >> static inline bool s390_is_pv(void) { return false; } > >> +static inline int s390_pv_query_info(void) { return 0; } > >> static inline int s390_pv_vm_enable(void) { return 0; } > >> static inline void s390_pv_vm_disable(void) {} > >> static inline int s390_pv_set_sec_parms(uint64_t origin, uint64_t > length) > >> { return 0; } > >> @@ -56,6 +62,10 @@ static inline void s390_pv_prep_reset(void) {} > >> static inline int s390_pv_verify(void) { return 0; } > >> static inline void s390_pv_unshare(void) {} > >> static inline void s390_pv_inject_reset_error(CPUState *cs) {}; > >> +static inline uint64_t kvm_s390_pv_dmp_get_size_cpu(void) { return 0; } > >> +static inline uint64_t kvm_s390_pv_dmp_get_size_mem(void) { return 0; } > >> +static inline uint64_t kvm_s390_pv_dmp_get_size_complete(void) { return > >> 0; } > >> +static inline bool kvm_s390_pv_info_basic_valid(void) { return false; } > >> #endif /* CONFIG_KVM */ > >> > >> int s390_pv_kvm_init(ConfidentialGuestSupport *cgs, Error **errp); > >> -- > >> 2.34.1 > >> > >> > >> > > > > -- Marc-André Lureau