Re: [PATCH v7 09/22] s390: vfio-ap: register matrix device with VFIO mdev framework

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/27/2018 07:26 AM, Halil Pasic wrote:


On 07/27/2018 01:17 PM, Cornelia Huck wrote:
On Fri, 27 Jul 2018 13:13:40 +0200
Halil Pasic <pasic@xxxxxxxxxxxxx> wrote:

@@ -65,6 +66,21 @@ static int vfio_ap_matrix_dev_create(void)
   {
       int ret;
   +    mutex_init(&matrix_dev.lock);
+    INIT_LIST_HEAD(&matrix_dev.mdev_list);
+
+    /* Test if PQAP(QCI) instruction is available */
+    if (test_facility(12)) {
+        ret = ap_qci(&matrix_dev.info);
+        if (ret && (ret != -EOPNOTSUPP)) {

So, is facility 12 a pre-req for PQAP(QCI)? Can the code work if
matrix_dev.info is not populated?

Yes and yes. It's basically only used in vfio_ap_matrix_init() and it
has fallbacks.

Ok. So facility 12 is required but not sufficient for PQAP(QCI) to be
available? (Just asking as I cannot check the doc; if it works with
fallbacks I'm fine.)

I took a look at the ap_qci() function. It returns:

    0:           success
    -EOPNOTSUPP: returned when an exception occurs executing the
                 PQAP(QCI) instruction

I conclude that if STFLE.12 is set, then the PQAP(QCI) instruction
should work. If -ENOPNOTSUPP is returned, then this would be a
serious error and I think we should return an error from this function.



AFAIR it should be sufficient in our case. My guess is that the non 0
return code stands for program exceptions that are not related to the
availability of QCI.




--
To unsubscribe from this list: send the line "unsubscribe linux-s390" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux