aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/block/dasd.c
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2006-02-20 21:28:14 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-02-20 23:00:12 -0500
commit49d9c81a699b57a5b6488f3a761669d05e116588 (patch)
treea26af993889b1fe6af95fcff7d911740b008db6c /drivers/s390/block/dasd.c
parentaa88861fc3184a7d830954661dd281de4ae8d2ba (diff)
[PATCH] s390: revert dasd eer module
Revert dasd eer module until we have a common understanding of how the interface should be. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/s390/block/dasd.c')
-rw-r--r--drivers/s390/block/dasd.c76
1 files changed, 1 insertions, 75 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index 06bb992a4c6c..af1d5b404cee 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -18,7 +18,6 @@
18#include <linux/slab.h> 18#include <linux/slab.h>
19#include <linux/buffer_head.h> 19#include <linux/buffer_head.h>
20#include <linux/hdreg.h> 20#include <linux/hdreg.h>
21#include <linux/notifier.h>
22 21
23#include <asm/ccwdev.h> 22#include <asm/ccwdev.h>
24#include <asm/ebcdic.h> 23#include <asm/ebcdic.h>
@@ -58,7 +57,6 @@ static void dasd_int_handler(struct ccw_device *, unsigned long, struct irb *);
58static void dasd_flush_ccw_queue(struct dasd_device *, int); 57static void dasd_flush_ccw_queue(struct dasd_device *, int);
59static void dasd_tasklet(struct dasd_device *); 58static void dasd_tasklet(struct dasd_device *);
60static void do_kick_device(void *data); 59static void do_kick_device(void *data);
61static void dasd_disable_eer(struct dasd_device *device);
62 60
63/* 61/*
64 * SECTION: Operations on the device structure. 62 * SECTION: Operations on the device structure.
@@ -153,8 +151,6 @@ dasd_state_new_to_known(struct dasd_device *device)
153static inline void 151static inline void
154dasd_state_known_to_new(struct dasd_device * device) 152dasd_state_known_to_new(struct dasd_device * device)
155{ 153{
156 /* disable extended error reporting for this device */
157 dasd_disable_eer(device);
158 /* Forget the discipline information. */ 154 /* Forget the discipline information. */
159 if (device->discipline) 155 if (device->discipline)
160 module_put(device->discipline->owner); 156 module_put(device->discipline->owner);
@@ -876,9 +872,6 @@ dasd_handle_state_change_pending(struct dasd_device *device)
876 struct dasd_ccw_req *cqr; 872 struct dasd_ccw_req *cqr;
877 struct list_head *l, *n; 873 struct list_head *l, *n;
878 874
879 /* first of all call extended error reporting */
880 dasd_write_eer_trigger(DASD_EER_STATECHANGE, device, NULL);
881
882 device->stopped &= ~DASD_STOPPED_PENDING; 875 device->stopped &= ~DASD_STOPPED_PENDING;
883 876
884 /* restart all 'running' IO on queue */ 877 /* restart all 'running' IO on queue */
@@ -1098,19 +1091,6 @@ restart:
1098 } 1091 }
1099 goto restart; 1092 goto restart;
1100 } 1093 }
1101
1102 /* first of all call extended error reporting */
1103 if (device->eer && cqr->status == DASD_CQR_FAILED) {
1104 dasd_write_eer_trigger(DASD_EER_FATALERROR,
1105 device, cqr);
1106
1107 /* restart request */
1108 cqr->status = DASD_CQR_QUEUED;
1109 cqr->retries = 255;
1110 device->stopped |= DASD_STOPPED_QUIESCE;
1111 goto restart;
1112 }
1113
1114 /* Process finished ERP request. */ 1094 /* Process finished ERP request. */
1115 if (cqr->refers) { 1095 if (cqr->refers) {
1116 __dasd_process_erp(device, cqr); 1096 __dasd_process_erp(device, cqr);
@@ -1248,8 +1228,7 @@ __dasd_start_head(struct dasd_device * device)
1248 cqr = list_entry(device->ccw_queue.next, struct dasd_ccw_req, list); 1228 cqr = list_entry(device->ccw_queue.next, struct dasd_ccw_req, list);
1249 /* check FAILFAST */ 1229 /* check FAILFAST */
1250 if (device->stopped & ~DASD_STOPPED_PENDING && 1230 if (device->stopped & ~DASD_STOPPED_PENDING &&
1251 test_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags) && 1231 test_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags)) {
1252 (!device->eer)) {
1253 cqr->status = DASD_CQR_FAILED; 1232 cqr->status = DASD_CQR_FAILED;
1254 dasd_schedule_bh(device); 1233 dasd_schedule_bh(device);
1255 } 1234 }
@@ -2005,9 +1984,6 @@ dasd_generic_notify(struct ccw_device *cdev, int event)
2005 switch (event) { 1984 switch (event) {
2006 case CIO_GONE: 1985 case CIO_GONE:
2007 case CIO_NO_PATH: 1986 case CIO_NO_PATH:
2008 /* first of all call extended error reporting */
2009 dasd_write_eer_trigger(DASD_EER_NOPATH, device, NULL);
2010
2011 if (device->state < DASD_STATE_BASIC) 1987 if (device->state < DASD_STATE_BASIC)
2012 break; 1988 break;
2013 /* Device is active. We want to keep it. */ 1989 /* Device is active. We want to keep it. */
@@ -2065,51 +2041,6 @@ dasd_generic_auto_online (struct ccw_driver *dasd_discipline_driver)
2065 put_driver(drv); 2041 put_driver(drv);
2066} 2042}
2067 2043
2068/*
2069 * notifications for extended error reports
2070 */
2071static struct notifier_block *dasd_eer_chain;
2072
2073int
2074dasd_register_eer_notifier(struct notifier_block *nb)
2075{
2076 return notifier_chain_register(&dasd_eer_chain, nb);
2077}
2078
2079int
2080dasd_unregister_eer_notifier(struct notifier_block *nb)
2081{
2082 return notifier_chain_unregister(&dasd_eer_chain, nb);
2083}
2084
2085/*
2086 * Notify the registered error reporting module of a problem
2087 */
2088void
2089dasd_write_eer_trigger(unsigned int id, struct dasd_device *device,
2090 struct dasd_ccw_req *cqr)
2091{
2092 if (device->eer) {
2093 struct dasd_eer_trigger temp;
2094 temp.id = id;
2095 temp.device = device;
2096 temp.cqr = cqr;
2097 notifier_call_chain(&dasd_eer_chain, DASD_EER_TRIGGER,
2098 (void *)&temp);
2099 }
2100}
2101
2102/*
2103 * Tell the registered error reporting module to disable error reporting for
2104 * a given device and to cleanup any private data structures on that device.
2105 */
2106static void
2107dasd_disable_eer(struct dasd_device *device)
2108{
2109 notifier_call_chain(&dasd_eer_chain, DASD_EER_DISABLE, (void *)device);
2110}
2111
2112
2113static int __init 2044static int __init
2114dasd_init(void) 2045dasd_init(void)
2115{ 2046{
@@ -2191,11 +2122,6 @@ EXPORT_SYMBOL_GPL(dasd_generic_set_online);
2191EXPORT_SYMBOL_GPL(dasd_generic_set_offline); 2122EXPORT_SYMBOL_GPL(dasd_generic_set_offline);
2192EXPORT_SYMBOL_GPL(dasd_generic_auto_online); 2123EXPORT_SYMBOL_GPL(dasd_generic_auto_online);
2193 2124
2194EXPORT_SYMBOL(dasd_register_eer_notifier);
2195EXPORT_SYMBOL(dasd_unregister_eer_notifier);
2196EXPORT_SYMBOL(dasd_write_eer_trigger);
2197
2198
2199/* 2125/*
2200 * Overrides for Emacs so that we follow Linus's tabbing style. 2126 * Overrides for Emacs so that we follow Linus's tabbing style.
2201 * Emacs will notice this stuff at the end of the file and automatically 2127 * Emacs will notice this stuff at the end of the file and automatically