s390/qdio: fix WARN_ON_ONCE condition
authorEugene Crosser <Eugene.Crosser@ru.ibm.com>
Tue, 6 Oct 2015 13:12:29 +0000 (15:12 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 7 Oct 2015 11:52:06 +0000 (04:52 -0700)
If HiperSockets Completion Queueing is enabled, qdio always
issues a warning, since the condition is always met.
This patch fixes the condition in WARN_ON_ONCE that was always
true.

Signed-off-by: Eugene Crosser <Eugene.Crosser@ru.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/cio/qdio_main.c

index 848e3b64ea6e3004d8c2da9f4ed2868ff25305e0..4bb5262f7aee705e7bf3b74c5ee950632dfbfd5a 100644 (file)
@@ -319,6 +319,8 @@ static int qdio_siga_output(struct qdio_q *q, unsigned int *busy_bit,
        int retries = 0, cc;
        unsigned long laob = 0;
 
+       WARN_ON_ONCE(aob && ((queue_type(q) != QDIO_IQDIO_QFMT) ||
+                            !q->u.out.use_cq));
        if (q->u.out.use_cq && aob != 0) {
                fc = QDIO_SIGA_WRITEQ;
                laob = aob;
@@ -329,8 +331,6 @@ static int qdio_siga_output(struct qdio_q *q, unsigned int *busy_bit,
                fc |= QDIO_SIGA_QEBSM_FLAG;
        }
 again:
-       WARN_ON_ONCE((aob && queue_type(q) != QDIO_IQDIO_QFMT) ||
-               (aob && fc != QDIO_SIGA_WRITEQ));
        cc = do_siga_output(schid, q->mask, busy_bit, fc, laob);
 
        /* hipersocket busy condition */