linux-next: manual merge of the scsi tree with the s390 tree

From: Stephen Rothwell
Date: Tue Oct 25 2011 - 02:16:23 EST


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@xxxxxxxxxxxxxxxx

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 */

Attachment: pgp00000.pgp
Description: PGP signature