Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dcc49d460c4052d2fa7ba44e81d3b814b799f802
Commit:     dcc49d460c4052d2fa7ba44e81d3b814b799f802
Parent:     5851fadce8824d5d4b8fd02c22ae098401f6489e
Author:     Ursula Braun <[EMAIL PROTECTED]>
AuthorDate: Mon Mar 19 13:18:12 2007 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Mon Mar 19 13:18:12 2007 +0100

    [S390] cio: qdio slsb setup
    
    Make sure set_slsb problems are handled correctly in
    qdio_do_qdio_fill_input() and qdio_do_qdio_fill_output.
    
    Signed-off-by: Ursula Braun <[EMAIL PROTECTED]>
    Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 drivers/s390/cio/qdio.c |   26 ++++++++++++++++++--------
 1 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c
index 5b1e3ff..05fac07 100644
--- a/drivers/s390/cio/qdio.c
+++ b/drivers/s390/cio/qdio.c
@@ -210,9 +210,11 @@ again:
                goto again;
        }
        if (rc < 0) {
-                QDIO_DBF_TEXT3(1,trace,"sqberr");
-                sprintf(dbf_text,"%2x,%2x,%d,%d",tmp_cnt,*cnt,ccq,q_no);
-                QDIO_DBF_TEXT3(1,trace,dbf_text);
+               QDIO_DBF_TEXT3(1,trace,"sqberr");
+               sprintf(dbf_text,"%2x,%2x",tmp_cnt,*cnt);
+               QDIO_DBF_TEXT3(1,trace,dbf_text);
+               sprintf(dbf_text,"%d,%d",ccq,q_no);
+               QDIO_DBF_TEXT3(1,trace,dbf_text);
                q->handler(q->cdev,QDIO_STATUS_ACTIVATE_CHECK_CONDITION|
                                QDIO_STATUS_LOOK_FOR_ERROR,
                                0, 0, 0, -1, -1, q->int_parm);
@@ -1250,7 +1252,6 @@ qdio_is_inbound_q_done(struct qdio_q *q)
        if (!no_used) {
                QDIO_DBF_TEXT4(0,trace,"inqisdnA");
                QDIO_DBF_HEX4(0,trace,&q,sizeof(void*));
-               QDIO_DBF_TEXT4(0,trace,dbf_text);
                return 1;
        }
        if (irq->is_qebsm) {
@@ -3371,10 +3372,15 @@ qdio_do_qdio_fill_input(struct qdio_q *q, unsigned int 
qidx,
                        unsigned int count, struct qdio_buffer *buffers)
 {
        struct qdio_irq *irq = (struct qdio_irq *) q->irq_ptr;
+       int tmp = 0;
+
        qidx &= (QDIO_MAX_BUFFERS_PER_Q - 1);
        if (irq->is_qebsm) {
-               while (count)
-                       set_slsb(q, &qidx, SLSB_CU_INPUT_EMPTY, &count);
+               while (count) {
+                       tmp = set_slsb(q, &qidx, SLSB_CU_INPUT_EMPTY, &count);
+                       if (!tmp)
+                               return;
+               }
                return;
        }
        for (;;) {
@@ -3390,11 +3396,15 @@ qdio_do_qdio_fill_output(struct qdio_q *q, unsigned int 
qidx,
                         unsigned int count, struct qdio_buffer *buffers)
 {
        struct qdio_irq *irq = (struct qdio_irq *) q->irq_ptr;
+       int tmp = 0;
 
        qidx &= (QDIO_MAX_BUFFERS_PER_Q - 1);
        if (irq->is_qebsm) {
-               while (count)
-                       set_slsb(q, &qidx, SLSB_CU_OUTPUT_PRIMED, &count);
+               while (count) {
+                       tmp = set_slsb(q, &qidx, SLSB_CU_OUTPUT_PRIMED, &count);
+                       if (!tmp)
+                               return;
+               }
                return;
        }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to