[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20111025171601.c2365840409d17df161ca8b5@canb.auug.org.au>
Date: Tue, 25 Oct 2011 17:16:01 +1100
From: Stephen Rothwell <sfr@...b.auug.org.au>
To: James Bottomley <James.Bottomley@...senPartnership.com>
Cc: linux-next@...r.kernel.org, linux-kernel@...r.kernel.org,
Swen Schillig <swen@...t.ibm.com>,
Steffen Maier <maier@...ux.vnet.ibm.com>,
Jan Glauber <jang@...ux.vnet.ibm.com>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
Heiko Carstens <heiko.carstens@...ibm.com>
Subject: linux-next: manual merge of the scsi tree with the s390 tree
Hi James,
Today's linux-next merge of the scsi tree got a conflict in
drivers/s390/cio/qdio_main.c between commit 9c20b3dd8479 ("[S390] qdio:
EQBS retry after CCQ 96") from the s390 tree and commit dfe5bb506172
("[SCSI] qdio: base support for hardware data router with zfcp") from the
scsi tree.
I fixed it up (see below) and can carry the fix as necessary.
--
Cheers,
Stephen Rothwell sfr@...b.auug.org.au
diff --cc drivers/s390/cio/qdio_main.c
index a108e28,d2c1f1b..0000000
--- a/drivers/s390/cio/qdio_main.c
+++ b/drivers/s390/cio/qdio_main.c
@@@ -145,26 -151,16 +145,28 @@@ again
goto again;
}
- if (rc < 0) {
- DBF_ERROR("%4x EQBS ERROR", SCH_NO(q));
- DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
- q->handler(q->irq_ptr->cdev,
- QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
- q->nr, q->first_to_kick, count,
- q->irq_ptr->int_parm);
- return 0;
+ if (rc == 2) {
+ BUG_ON(tmp_count == count);
+ qperf_inc(q, eqbs_partial);
+ DBF_DEV_EVENT(DBF_WARN, q->irq_ptr, "EQBS part:%02x",
+ tmp_count);
+ /*
+ * Retry once, if that fails bail out and process the
+ * extracted buffers before trying again.
+ */
+ if (!retried++)
+ goto again;
+ else
+ return count - tmp_count;
}
- return count - tmp_count;
+
+ DBF_ERROR("%4x EQBS ERROR", SCH_NO(q));
+ DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
- q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
- 0, -1, -1, q->irq_ptr->int_parm);
++ q->handler(q->irq_ptr->cdev,
++ QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
++ q->nr, q->first_to_kick, count,
++ q->irq_ptr->int_parm);
+ return 0;
}
/**
@@@ -207,12 -198,17 +209,12 @@@ again
qperf_inc(q, sqbs_partial);
goto again;
}
- if (rc < 0) {
- DBF_ERROR("%4x SQBS ERROR", SCH_NO(q));
- DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
- q->handler(q->irq_ptr->cdev,
- QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
- q->nr, q->first_to_kick, count,
- q->irq_ptr->int_parm);
- return 0;
- }
- WARN_ON(tmp_count);
- return count - tmp_count;
+
+ DBF_ERROR("%4x SQBS ERROR", SCH_NO(q));
+ DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
+ q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
- 0, -1, -1, q->irq_ptr->int_parm);
++ q->nr, q->first_to_kick, count, q->irq_ptr->int_parm);
+ return 0;
}
/* returns number of examined buffers and their common state in *state */
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists