net/ibmvnic: Ignore H_FUNCTION return from H_EOI to tolerate XIVE mode
authorJuliet Kim <julietk@linux.vnet.ibm.com>
Wed, 20 Nov 2019 15:50:04 +0000 (10:50 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Nov 2019 20:37:15 +0000 (12:37 -0800)
Reversion of commit 11d49ce9f7946dfed4dcf5dbde865c78058b50ab
(“net/ibmvnic: Fix EOI when running in XIVE mode.”) leaves us
calling H_EOI even in XIVE mode. That will fail with H_FUNCTION
because H_EOI is not supported in that mode. That failure is
harmless. Ignore it so we can use common code for both XICS and
XIVE.

Signed-off-by: Juliet Kim <julietk@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ibmvnic.c

index 2b073a3c0b8474370e1ac072548bd68d0e4f7471..0686ded7ad3a282a4b8ef4d29086de89672001f3 100644 (file)
@@ -2881,7 +2881,10 @@ static int enable_scrq_irq(struct ibmvnic_adapter *adapter,
                u64 val = (0xff000000) | scrq->hw_irq;
 
                rc = plpar_hcall_norets(H_EOI, val);
-               if (rc)
+               /* H_EOI would fail with rc = H_FUNCTION when running
+                * in XIVE mode which is expected, but not an error.
+                */
+               if (rc && (rc != H_FUNCTION))
                        dev_err(dev, "H_EOI FAILED irq 0x%llx. rc=%ld\n",
                                val, rc);
        }