[SRU][B][D][Patch 6/9] KVM: s390: provide query function for instructions returning 32 byte
frank.heimes at canonical.com
frank.heimes at canonical.com
Tue Jul 16 06:54:36 UTC 2019
From: Christian Borntraeger <borntraeger at de.ibm.com>
BugLink: https://bugs.launchpad.net/bugs/1836153
Some of the new features have a 32byte response for the query function.
Provide a new wrapper similar to __cpacf_query. We might want to factor
this out if other users come up, as of today there is none. So let us
keep the function within KVM.
Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com>
Reviewed-by: Collin Walling <walling at linux.ibm.com>
Reviewed-by: David Hildenbrand <david at redhat.com>
(cherry picked from commit d668139718a9e2260702777bd8d86d71c30b6539)
Signed-off-by: Frank Heimes <frank.heimes at canonical.com>
---
arch/s390/kvm/kvm-s390.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 0dbb31b..995d229 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -297,6 +297,19 @@ static inline int plo_test_bit(unsigned char nr)
return cc == 0;
}
+static inline void __insn32_query(unsigned int opcode, u8 query[32])
+{
+ register unsigned long r0 asm("0") = 0; /* query function */
+ register unsigned long r1 asm("1") = (unsigned long) query;
+
+ asm volatile(
+ /* Parameter regs are ignored */
+ " .insn rrf,%[opc] << 16,2,4,6,0\n"
+ : "=m" (*query)
+ : "d" (r0), "a" (r1), [opc] "i" (opcode)
+ : "cc");
+}
+
static void kvm_s390_cpu_feat_init(void)
{
int i;
--
2.7.4
More information about the kernel-team
mailing list