]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[S390] qdio: reset outbound SBAL error states
authorJan Glauber <jang@linux.vnet.ibm.com>
Mon, 24 Oct 2011 09:47:56 +0000 (11:47 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 24 Oct 2011 09:47:36 +0000 (11:47 +0200)
Don't leave outbound SBALs in error state after a target full condition.
Reset the state to not initialized to make the error handling consistent
across all types of errors.

Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/qdio_main.c

index 980034191df138dd7b3ede51d0dbc9f5146081eb..7c85157da4b3f8313f67ba278f63f600f7d80d56 100644 (file)
@@ -432,7 +432,7 @@ static void process_buffer_error(struct qdio_q *q, int count)
                qperf_inc(q, target_full);
                DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "OUTFULL FTC:%02x",
                              q->first_to_check);
-               return;
+               goto set;
        }
 
        DBF_ERROR("%4x BUF ERROR", SCH_NO(q));
@@ -442,6 +442,7 @@ static void process_buffer_error(struct qdio_q *q, int count)
                  q->sbal[q->first_to_check]->element[14].sflags,
                  q->sbal[q->first_to_check]->element[15].sflags);
 
+set:
        /*
         * Interrupts may be avoided as long as the error is present
         * so change the buffer state immediately to avoid starvation.