[PATCH 3/5] hw/s390x/pv: Simplify s390_is_pv() for user emulation

Philippe Mathieu-Daudé posted 5 patches 3 years, 1 month ago
Maintainers: Halil Pasic <pasic@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Thomas Huth <thuth@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, David Hildenbrand <david@redhat.com>, Ilya Leoshkevich <iii@linux.ibm.com>, Eric Farman <farman@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>, Paolo Bonzini <pbonzini@redhat.com>, Peter Xu <peterx@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>
There is a newer version of this series
[PATCH 3/5] hw/s390x/pv: Simplify s390_is_pv() for user emulation
Posted by Philippe Mathieu-Daudé 3 years, 1 month ago
Protected Virtualization is irrelevant in user emulation.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/hw/s390x/pv.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/hw/s390x/pv.h b/include/hw/s390x/pv.h
index 5bca5bcaf1..a4814ce303 100644
--- a/include/hw/s390x/pv.h
+++ b/include/hw/s390x/pv.h
@@ -12,6 +12,12 @@
 #ifndef HW_S390_PV_H
 #define HW_S390_PV_H
 
+#ifdef CONFIG_USER_ONLY
+
+static inline bool s390_is_pv(void) { return false; }
+
+#else /* !CONFIG_USER_ONLY */
+
 #include "sysemu/kvm.h"
 
 #ifdef CONFIG_KVM
@@ -79,4 +85,6 @@ static inline int kvm_s390_dump_completion_data(void *buff) { return 0; }
 int s390_pv_kvm_init(ConfidentialGuestSupport *cgs, Error **errp);
 int s390_pv_init(ConfidentialGuestSupport *cgs, Error **errp);
 
+#endif /* CONFIG_USER_ONLY */
+
 #endif /* HW_S390_PV_H */
-- 
2.38.1


Re: [PATCH 3/5] hw/s390x/pv: Simplify s390_is_pv() for user emulation
Posted by Philippe Mathieu-Daudé 3 years, 1 month ago
On 16/12/22 23:04, Philippe Mathieu-Daudé wrote:
> Protected Virtualization is irrelevant in user emulation.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   include/hw/s390x/pv.h | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/include/hw/s390x/pv.h b/include/hw/s390x/pv.h
> index 5bca5bcaf1..a4814ce303 100644
> --- a/include/hw/s390x/pv.h
> +++ b/include/hw/s390x/pv.h
> @@ -12,6 +12,12 @@
>   #ifndef HW_S390_PV_H
>   #define HW_S390_PV_H
>   
> +#ifdef CONFIG_USER_ONLY
> +
> +static inline bool s390_is_pv(void) { return false; }

This change is because I'm trying to get ride of:

../target/s390x/cpu_features.c: In function ‘s390_fill_feat_block’:
../target/s390x/cpu_features.c:112:10: error: implicit declaration of 
function ‘s390_is_pv’ [-Werror=implicit-function-declaration]
   112 |     if (!s390_is_pv()) {
       |          ^~~~~~~~~~
../target/s390x/cpu_features.c:112:10: error: nested extern declaration 
of ‘s390_is_pv’ [-Werror=nested-externs]

../target/s390x/cpu_models.c: In function ‘s390_has_feat’:
../target/s390x/cpu_models.c:239:9: error: implicit declaration of 
function ‘s390_is_pv’ [-Werror=implicit-function-declaration]
   239 |     if (s390_is_pv()) {
       |         ^~~~~~~~~~
../target/s390x/cpu_models.c:239:9: error: nested extern declaration of 
‘s390_is_pv’ [-Werror=nested-externs]

without including <sysemu/kvm.h> in common code. Common code shouldn't
include hw/ header...

I'll respin guarding more code against CONFIG_USER_ONLY.