greybus: module: don't create duplicate module ids

If we somehow get a hotplug event for a module id that we already have
created[1], don't try to create it again, or sysfs will complain loudly.
Instead, abort the creation properly.

[1] If, for example, you happened to run a script on a greybus emulator
twice in a row...

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>
diff --git a/drivers/staging/greybus/module.c b/drivers/staging/greybus/module.c
index f9415c0..54e8f9e 100644
--- a/drivers/staging/greybus/module.c
+++ b/drivers/staging/greybus/module.c
@@ -70,6 +70,13 @@
 	struct gb_module *gmod;
 	int retval;
 
+	gmod = gb_module_find(hd, module_id);
+	if (gmod) {
+		dev_err(hd->parent, "Duplicate module id %d will not be created\n",
+			module_id);
+		return NULL;
+	}
+
 	gmod = kzalloc(sizeof(*gmod), GFP_KERNEL);
 	if (!gmod)
 		return NULL;