aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/include
diff options
context:
space:
mode:
authorJan Glauber <jang@linux.vnet.ibm.com>2012-05-09 10:27:34 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2012-05-16 08:42:36 -0400
commit1549d13f4c5f0ca77b66bd725287d0b3f877eb6b (patch)
tree5ba439915cc4cceb8930a18e9adf2aba34adc82f /arch/s390/include
parent050276ab8ce9f30c1d2d74c42a349ed54701905f (diff)
s390/qdio: Cleanup error handling to drivers
Various improvements of qdio error reporting to the upper-layer drivers (qeth, zfcp): - Split QDIO_ERROR_ACTIVATE_CHECK_CONDITION into: QDIO_ERROR_ACTIVATE: qdio termination interrupt QDIO_ERROR_GET_BUF_STATE: QIOASSIST eqbs error QDIO_ERROR_SET_BUF_STATE: QIOASSIST sqbs error Add QDIO_ERROR_FATAL / QDIO_ERROR_TEMPORARY masks to ease recovery decision in upper-layer drivers. - Don't (ab-)use qdio handler errors as return codes for do_QDIO but use standard error codes: -ENOBUFS: temporary target CC=2 condition -EBUSY: unresolved SIGA-W CC=2 busy condition -EIO: I/O error (CC=1, CC=3) - Remove unneeded memory clobber from SIGA-R - Remove EX_TABLE entry on SIGA-W, we want to see these errors Reviewed-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include')
-rw-r--r--arch/s390/include/asm/qdio.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/s390/include/asm/qdio.h b/arch/s390/include/asm/qdio.h
index 74528e27b37f..f039d86adf67 100644
--- a/arch/s390/include/asm/qdio.h
+++ b/arch/s390/include/asm/qdio.h
@@ -325,11 +325,13 @@ typedef void qdio_handler_t(struct ccw_device *, unsigned int, int,
325 int, int, unsigned long); 325 int, int, unsigned long);
326 326
327/* qdio errors reported to the upper-layer program */ 327/* qdio errors reported to the upper-layer program */
328#define QDIO_ERROR_SIGA_TARGET 0x02 328#define QDIO_ERROR_ACTIVATE 0x0001
329#define QDIO_ERROR_SIGA_ACCESS_EXCEPTION 0x10 329#define QDIO_ERROR_GET_BUF_STATE 0x0002
330#define QDIO_ERROR_SIGA_BUSY 0x20 330#define QDIO_ERROR_SET_BUF_STATE 0x0004
331#define QDIO_ERROR_ACTIVATE_CHECK_CONDITION 0x40 331#define QDIO_ERROR_SLSB_STATE 0x0100
332#define QDIO_ERROR_SLSB_STATE 0x80 332
333#define QDIO_ERROR_FATAL 0x00ff
334#define QDIO_ERROR_TEMPORARY 0xff00
333 335
334/* for qdio_cleanup */ 336/* for qdio_cleanup */
335#define QDIO_FLAG_CLEANUP_USING_CLEAR 0x01 337#define QDIO_FLAG_CLEANUP_USING_CLEAR 0x01