Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49d9c81a authored by Heiko Carstens's avatar Heiko Carstens Committed by Linus Torvalds
Browse files

[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: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent aa88861f
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -55,21 +55,13 @@ config DASD_DIAG
	  Disks under VM.  If you are not running under VM or unsure what it is,
	  say "N".

config DASD_EER
	tristate "Extended error reporting (EER)"
	depends on DASD
	help
	  This driver provides a character device interface to the
          DASD extended error reporting. This is only needed if you want to
          use applications written for the EER facility.

config DASD_CMB
	tristate "Compatibility interface for DASD channel measurement blocks"
	depends on DASD
	help
	  This driver provides an additional interface to the channel
          measurement facility, which is normally accessed though sysfs, with
          a set of ioctl functions specific to the dasd driver.
	  This driver provides an additional interface to the channel measurement
	  facility, which is normally accessed though sysfs, with a set of
	  ioctl functions specific to the dasd driver.
	  This is only needed if you want to use applications written for
	  linux-2.4 dasd channel measurement facility interface.

+0 −2
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@
dasd_eckd_mod-objs := dasd_eckd.o dasd_3990_erp.o dasd_9343_erp.o
dasd_fba_mod-objs  := dasd_fba.o dasd_3370_erp.o dasd_9336_erp.o
dasd_diag_mod-objs := dasd_diag.o
dasd_eer_mod-objs := dasd_eer.o
dasd_mod-objs      := dasd.o dasd_ioctl.o dasd_proc.o dasd_devmap.o \
			dasd_genhd.o dasd_erp.o

@@ -14,6 +13,5 @@ obj-$(CONFIG_DASD_DIAG) += dasd_diag_mod.o
obj-$(CONFIG_DASD_ECKD) += dasd_eckd_mod.o
obj-$(CONFIG_DASD_FBA)  += dasd_fba_mod.o
obj-$(CONFIG_DASD_CMB)  += dasd_cmb.o
obj-$(CONFIG_DASD_EER)  += dasd_eer.o
obj-$(CONFIG_BLK_DEV_XPRAM) += xpram.o
obj-$(CONFIG_DCSSBLK) += dcssblk.o
+1 −75
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@
#include <linux/slab.h>
#include <linux/buffer_head.h>
#include <linux/hdreg.h>
#include <linux/notifier.h>

#include <asm/ccwdev.h>
#include <asm/ebcdic.h>
@@ -58,7 +57,6 @@ static void dasd_int_handler(struct ccw_device *, unsigned long, struct irb *);
static void dasd_flush_ccw_queue(struct dasd_device *, int);
static void dasd_tasklet(struct dasd_device *);
static void do_kick_device(void *data);
static void dasd_disable_eer(struct dasd_device *device);

/*
 * SECTION: Operations on the device structure.
@@ -153,8 +151,6 @@ dasd_state_new_to_known(struct dasd_device *device)
static inline void
dasd_state_known_to_new(struct dasd_device * device)
{
	/* disable extended error reporting for this device */
	dasd_disable_eer(device);
	/* Forget the discipline information. */
	if (device->discipline)
		module_put(device->discipline->owner);
@@ -876,9 +872,6 @@ dasd_handle_state_change_pending(struct dasd_device *device)
	struct dasd_ccw_req *cqr;
	struct list_head *l, *n;

	/* first of all call extended error reporting */
	dasd_write_eer_trigger(DASD_EER_STATECHANGE, device, NULL);

	device->stopped &= ~DASD_STOPPED_PENDING;

        /* restart all 'running' IO on queue */
@@ -1098,19 +1091,6 @@ __dasd_process_ccw_queue(struct dasd_device * device,
			}
			goto restart;
		}

		/* first of all call extended error reporting */
		if (device->eer && cqr->status == DASD_CQR_FAILED) {
			dasd_write_eer_trigger(DASD_EER_FATALERROR,
					       device, cqr);

			/* restart request  */
			cqr->status = DASD_CQR_QUEUED;
			cqr->retries = 255;
			device->stopped |= DASD_STOPPED_QUIESCE;
			goto restart;
		}

		/* Process finished ERP request. */
		if (cqr->refers) {
			__dasd_process_erp(device, cqr);
@@ -1248,8 +1228,7 @@ __dasd_start_head(struct dasd_device * device)
	cqr = list_entry(device->ccw_queue.next, struct dasd_ccw_req, list);
        /* check FAILFAST */
	if (device->stopped & ~DASD_STOPPED_PENDING &&
	    test_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags) &&
	    (!device->eer)) {
	    test_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags)) {
		cqr->status = DASD_CQR_FAILED;
		dasd_schedule_bh(device);
	}
@@ -2005,9 +1984,6 @@ dasd_generic_notify(struct ccw_device *cdev, int event)
	switch (event) {
	case CIO_GONE:
	case CIO_NO_PATH:
		/* first of all call extended error reporting */
		dasd_write_eer_trigger(DASD_EER_NOPATH, device, NULL);

		if (device->state < DASD_STATE_BASIC)
			break;
		/* Device is active. We want to keep it. */
@@ -2065,51 +2041,6 @@ dasd_generic_auto_online (struct ccw_driver *dasd_discipline_driver)
	put_driver(drv);
}

/*
 * notifications for extended error reports
 */
static struct notifier_block *dasd_eer_chain;

int
dasd_register_eer_notifier(struct notifier_block *nb)
{
	return notifier_chain_register(&dasd_eer_chain, nb);
}

int
dasd_unregister_eer_notifier(struct notifier_block *nb)
{
	return notifier_chain_unregister(&dasd_eer_chain, nb);
}

/*
 * Notify the registered error reporting module of a problem
 */
void
dasd_write_eer_trigger(unsigned int id, struct dasd_device *device,
		       struct dasd_ccw_req *cqr)
{
	if (device->eer) {
		struct dasd_eer_trigger temp;
		temp.id = id;
		temp.device = device;
		temp.cqr = cqr;
		notifier_call_chain(&dasd_eer_chain, DASD_EER_TRIGGER,
				    (void *)&temp);
	}
}

/*
 * Tell the registered error reporting module to disable error reporting for
 * a given device and to cleanup any private data structures on that device.
 */
static void
dasd_disable_eer(struct dasd_device *device)
{
	notifier_call_chain(&dasd_eer_chain, DASD_EER_DISABLE, (void *)device);
}


static int __init
dasd_init(void)
{
@@ -2191,11 +2122,6 @@ EXPORT_SYMBOL_GPL(dasd_generic_set_online);
EXPORT_SYMBOL_GPL(dasd_generic_set_offline);
EXPORT_SYMBOL_GPL(dasd_generic_auto_online);

EXPORT_SYMBOL(dasd_register_eer_notifier);
EXPORT_SYMBOL(dasd_unregister_eer_notifier);
EXPORT_SYMBOL(dasd_write_eer_trigger);


/*
 * Overrides for Emacs so that we follow Linus's tabbing style.
 * Emacs will notice this stuff at the end of the file and automatically
+0 −3
Original line number Diff line number Diff line
@@ -1108,9 +1108,6 @@ dasd_3990_handle_env_data(struct dasd_ccw_req * erp, char *sense)
		case 0x0B:
			DEV_MESSAGE(KERN_WARNING, device, "%s",
				    "FORMAT F - Volume is suspended duplex");
			/* call extended error reporting (EER) */
			dasd_write_eer_trigger(DASD_EER_PPRCSUSPEND, device,
					       erp->refers);
			break;
		case 0x0C:
			DEV_MESSAGE(KERN_WARNING, device, "%s",
+0 −1
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@
#define DASD_ECKD_CCW_PSF		 0x27
#define DASD_ECKD_CCW_RSSD		 0x3e
#define DASD_ECKD_CCW_LOCATE_RECORD	 0x47
#define DASD_ECKD_CCW_SNSS               0x54
#define DASD_ECKD_CCW_DEFINE_EXTENT	 0x63
#define DASD_ECKD_CCW_WRITE_MT		 0x85
#define DASD_ECKD_CCW_READ_MT		 0x86
Loading