From 26cda7b3e4bb06d4437c1d0d64d3036a5c298902 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Wed, 25 May 2011 23:08:09 +0200
Subject: [PATCH 42/69] Revert "mmc: test: add random fault injection in core.c"

This reverts commit e2f2d8fbcfd43b995f4c205e80ecbb35c8c2bb38.
---
 drivers/mmc/core/core.c    |   54 --------------------------------------------
 drivers/mmc/core/debugfs.c |    5 ----
 include/linux/mmc/host.h   |    4 +--
 lib/Kconfig.debug          |   11 ---------
 4 files changed, 1 insertions(+), 73 deletions(-)

diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 85296df..e88dd36 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -23,8 +23,6 @@
 #include <linux/log2.h>
 #include <linux/regulator/consumer.h>
 #include <linux/pm_runtime.h>
-#include <linux/fault-inject.h>
-#include <linux/random.h>
 
 #include <linux/mmc/card.h>
 #include <linux/mmc/host.h>
@@ -84,56 +82,6 @@ static void mmc_flush_scheduled_work(void)
 	flush_workqueue(workqueue);
 }
 
-#ifdef CONFIG_FAIL_MMC_REQUEST
-
-static DECLARE_FAULT_ATTR(fail_mmc_request);
-
-static int __init setup_fail_mmc_request(char *str)
-{
-	return setup_fault_attr(&fail_mmc_request, str);
-}
-__setup("fail_mmc_request=", setup_fail_mmc_request);
-
-static void mmc_should_fail_request(struct mmc_host *host,
-				    struct mmc_request *mrq)
-{
-	struct mmc_command *cmd = mrq->cmd;
-	struct mmc_data *data = mrq->data;
-	static const int data_errors[] = {
-		-ETIMEDOUT,
-		-EILSEQ,
-		-EIO,
-	};
-
-	if (!data)
-		return;
-
-	if (cmd->error || data->error || !host->make_it_fail ||
-	    !should_fail(&fail_mmc_request, data->blksz * data->blocks))
-		return;
-
-	data->error = data_errors[random32() % ARRAY_SIZE(data_errors)];
-	data->bytes_xfered = (random32() % (data->bytes_xfered >> 9)) << 9;
-}
-
-static int __init fail_mmc_request_debugfs(void)
-{
-	return init_fault_attr_dentries(&fail_mmc_request,
-					"fail_mmc_request");
-}
-
-late_initcall(fail_mmc_request_debugfs);
-
-#else /* CONFIG_FAIL_MMC_REQUEST */
-
-static inline void mmc_should_fail_request(struct mmc_host *host,
-					   struct mmc_data *data)
-{
-}
-
-#endif /* CONFIG_FAIL_MMC_REQUEST */
-
-
 /**
  *	mmc_request_done - finish processing an MMC request
  *	@host: MMC host which completed request
@@ -160,8 +108,6 @@ void mmc_request_done(struct mmc_host *host, struct mmc_request *mrq)
 		cmd->error = 0;
 		host->ops->request(host, mrq);
 	} else {
-		mmc_should_fail_request(host, mrq);
-
 		led_trigger_event(host->led, LED_OFF);
 
 		pr_debug("%s: req done (CMD%u): %d: %08x %08x %08x %08x\n",
diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c
index 588e76f..998797e 100644
--- a/drivers/mmc/core/debugfs.c
+++ b/drivers/mmc/core/debugfs.c
@@ -188,11 +188,6 @@ void mmc_add_host_debugfs(struct mmc_host *host)
 				root, &host->clk_delay))
 		goto err_node;
 #endif
-#ifdef CONFIG_FAIL_MMC_REQUEST
-	if (!debugfs_create_u8("make-it-fail", S_IRUSR | S_IWUSR,
-			       root, &host->make_it_fail))
-		goto err_node;
-#endif
 	return;
 
 err_node:
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 8b2b44b..c056a3d 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -251,9 +251,7 @@ struct mmc_host {
 #endif
 
 	struct dentry		*debugfs_root;
-#ifdef CONFIG_FAIL_MMC_REQUEST
-	u8			make_it_fail;
-#endif
+
 	unsigned long		private[0] ____cacheline_aligned;
 };
 
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 330fc70..c768bcd 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -1057,17 +1057,6 @@ config FAIL_IO_TIMEOUT
 	  Only works with drivers that use the generic timeout handling,
 	  for others it wont do anything.
 
-config FAIL_MMC_REQUEST
-	bool "Fault-injection capability for MMC IO"
-	select DEBUG_FS
-	depends on FAULT_INJECTION
-	help
-	  Provide fault-injection capability for MMC IO.
-	  This will make the mmc core return data errors. This is
-	  useful for testing the error handling in the mmc block device
-	  and how the mmc host driver handle retries from
-	  the block device.
-
 config FAULT_INJECTION_DEBUG_FS
 	bool "Debugfs entries for fault-injection capabilities"
 	depends on FAULT_INJECTION && SYSFS && DEBUG_FS
-- 
1.7.2.5

