diff mbox series

[v5,1/7] s390/uv: Always export uv_info

Message ID 20230615100533.3996107-2-seiden@linux.ibm.com (mailing list archive)
State New, archived
Headers show
Series [v5,1/7] s390/uv: Always export uv_info | expand

Commit Message

Steffen Eiden June 15, 2023, 10:05 a.m. UTC
KVM needs the struct's values to be able to provide PV support.

The uvdevice is currently guest only and will need the struct's values
for call support checking and potential future expansions.

As uv.c is only compiled with CONFIG_PGSTE or
CONFIG_PROTECTED_VIRTUALIZATION_GUEST we don't need a second check in
the code. Users of uv_info will need to fence for these two config
options for the time being.

Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
---
 arch/s390/kernel/uv.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Comments

Janosch Frank June 16, 2023, 8:56 a.m. UTC | #1
On 6/15/23 12:05, Steffen Eiden wrote:
> KVM needs the struct's values to be able to provide PV support.
> 
> The uvdevice is currently guest only and will need the struct's values
> for call support checking and potential future expansions.
> 
> As uv.c is only compiled with CONFIG_PGSTE or
> CONFIG_PROTECTED_VIRTUALIZATION_GUEST we don't need a second check in
> the code. Users of uv_info will need to fence for these two config
> options for the time being.
> 
> Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
> 
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>

In the long term we'll remove the config checks and always compile uv.o 
in kernel/ and boot/ so we won't be running in these issues again.
diff mbox series

Patch

diff --git a/arch/s390/kernel/uv.c b/arch/s390/kernel/uv.c
index 4ada621a2c46..5da3879001bb 100644
--- a/arch/s390/kernel/uv.c
+++ b/arch/s390/kernel/uv.c
@@ -23,12 +23,20 @@ 
 int __bootdata_preserved(prot_virt_guest);
 #endif
 
+/*
+ * uv_info contains both host and guest information but it's currently only
+ * expected to be used within modules if it's the KVM module or for
+ * any PV guest module.
+ *
+ * The kernel itself will write these values once in uv_query_info()
+ * and then make some of them readable via a sysfs interface.
+ */
 struct uv_info __bootdata_preserved(uv_info);
+EXPORT_SYMBOL(uv_info);
 
 #if IS_ENABLED(CONFIG_KVM)
 int __bootdata_preserved(prot_virt_host);
 EXPORT_SYMBOL(prot_virt_host);
-EXPORT_SYMBOL(uv_info);
 
 static int __init uv_init(phys_addr_t stor_base, unsigned long stor_len)
 {