ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / drivers / s390 / block / dasd_9336_erp.c
1 /* 
2  * File...........: linux/drivers/s390/block/dasd_9336_erp.c
3  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
4  * Bugreports.to..: <Linux390@de.ibm.com>
5  * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2000
6  *
7  * $Revision: 1.8 $
8  */
9
10 #define PRINTK_HEADER "dasd_erp(9336)"
11
12 #include "dasd_int.h"
13
14
15 /*
16  * DASD_9336_ERP_EXAMINE 
17  *
18  * DESCRIPTION
19  *   Checks only for fatal/no/recover error. 
20  *   A detailed examination of the sense data is done later outside
21  *   the interrupt handler.
22  *
23  *   The logic is based on the 'IBM 3880 Storage Control Reference' manual
24  *   'Chapter 7. 9336 Sense Data'.
25  *
26  * RETURN VALUES
27  *   dasd_era_none      no error 
28  *   dasd_era_fatal     for all fatal (unrecoverable errors)
29  *   dasd_era_recover   for all others.
30  */
31 dasd_era_t
32 dasd_9336_erp_examine(struct dasd_ccw_req * cqr, struct irb * irb)
33 {
34         /* check for successful execution first */
35         if (irb->scsw.cstat == 0x00 &&
36             irb->scsw.dstat == (DEV_STAT_CHN_END | DEV_STAT_DEV_END))
37                 return dasd_era_none;
38
39         /* examine the 24 byte sense data */
40         return dasd_era_recover;
41
42 }                               /* END dasd_9336_erp_examine */
43
44 /*
45  * Overrides for Emacs so that we follow Linus's tabbing style.
46  * Emacs will notice this stuff at the end of the file and automatically
47  * adjust the settings for this buffer only.  This must remain at the end
48  * of the file.
49  * ---------------------------------------------------------------------------
50  * Local variables:
51  * c-indent-level: 4 
52  * c-brace-imaginary-offset: 0
53  * c-brace-offset: -4
54  * c-argdecl-indent: 4
55  * c-label-offset: -4
56  * c-continued-statement-offset: 4
57  * c-continued-brace-offset: 0
58  * indent-tabs-mode: 1
59  * tab-width: 8
60  * End:
61  */