From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-Id: <20081127103131.672503551@de.ibm.com> References: <20081127103020.528516828@de.ibm.com> Date: Thu, 27 Nov 2008 11:30:34 +0100 From: Martin Schwidefsky Subject: [patch 14/60] qdio: improve error handling for unexpected buffer states Content-Disposition: inline; filename=113-qdio-error-handling.diff Sender: linux-kernel-owner@vger.kernel.org List-Archive: List-Post: To: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Cc: Heiko Carstens , Jan Glauber , Martin Schwidefsky List-ID: From: Jan Glauber In case of a qdio internal problem regarding the buffer handling advance the queue and report the problem with WARN_ON instead of getting stuck. Signed-off-by: Jan Glauber Signed-off-by: Martin Schwidefsky --- drivers/s390/cio/qdio_main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) Index: quilt-2.6/drivers/s390/cio/qdio_main.c =================================================================== --- quilt-2.6.orig/drivers/s390/cio/qdio_main.c +++ quilt-2.6/drivers/s390/cio/qdio_main.c @@ -476,9 +476,12 @@ check_next: atomic_sub(count, &q->nr_buf_used); break; case SLSB_CU_INPUT_EMPTY: + DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "in nop"); + break; case SLSB_P_INPUT_NOT_INIT: case SLSB_P_INPUT_ACK: - DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "in nop"); + WARN_ON(1); + q->first_to_check++; break; default: BUG(); @@ -648,6 +651,9 @@ check_next: DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "out primed:%1d", q->nr); break; case SLSB_P_OUTPUT_NOT_INIT: + WARN_ON(1); + q->first_to_check++; + break; case SLSB_P_OUTPUT_HALTED: break; default: -- blue skies, Martin. "Reality continues to ruin my life." - Calvin.