summary refs log tree commit diff
path: root/drivers/mmc/core/bus.c
diff options
context:
space:
mode:
authorPierre Ossman <drzeus@drzeus.cx>2007-06-17 11:18:46 +0200
committerPierre Ossman <drzeus@drzeus.cx>2007-09-23 20:52:20 +0200
commit9eb3a94d022e6c233c0b22ec54516d35d2e87eb9 (patch)
tree9fbef79c6d0440597bc43443de310df166c6de46 /drivers/mmc/core/bus.c
parent3b38bea0d976513970f947806b08b9faca418e7a (diff)
downloadlinux-9eb3a94d022e6c233c0b22ec54516d35d2e87eb9.tar.gz
mmc: whip bus uevent handler into shape
Make the mmc bus uevent callback look like all other subsystems.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/mmc/core/bus.c')
-rw-r--r--drivers/mmc/core/bus.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
index 9be11ec05d86..1cc11714916f 100644
--- a/drivers/mmc/core/bus.c
+++ b/drivers/mmc/core/bus.c
@@ -62,31 +62,34 @@ mmc_bus_uevent(struct device *dev, char **envp, int num_envp, char *buf,
 		int buf_size)
 {
 	struct mmc_card *card = dev_to_mmc_card(dev);
-	int retval = 0, i = 0, length = 0;
-
-#define add_env(fmt,val) do {					\
-	retval = add_uevent_var(envp, num_envp, &i,		\
-				buf, buf_size, &length,		\
-				fmt, val);			\
-	if (retval)						\
-		return retval;					\
-} while (0);
+	const char *type;
+	int i = 0, length = 0;
 
 	switch (card->type) {
 	case MMC_TYPE_MMC:
-		add_env("MMC_TYPE=%s", "MMC");
+		type = "MMC";
 		break;
 	case MMC_TYPE_SD:
-		add_env("MMC_TYPE=%s", "SD");
+		type = "SD";
 		break;
 	case MMC_TYPE_SDIO:
-		add_env("MMC_TYPE=%s", "SDIO");
+		type = "SDIO";
 		break;
+	default:
+		type = NULL;
 	}
 
-	add_env("MMC_NAME=%s", mmc_card_name(card));
+	if (type) {
+		if (add_uevent_var(envp, num_envp, &i,
+				buf, buf_size, &length,
+				"MMC_TYPE=%s", type))
+			return -ENOMEM;
+	}
 
-#undef add_env
+	if (add_uevent_var(envp, num_envp, &i,
+			buf, buf_size, &length,
+			"MMC_NAME=%s", mmc_card_name(card)))
+		return -ENOMEM;
 
 	envp[i] = NULL;