From: Greg Kroah-Hartman Date: Fri, 24 Oct 2014 10:46:15 +0000 (+0800) Subject: greybus: module: don't create duplicate module ids X-Git-Tag: v5.15~12752^2~378^2~21^2~1960 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=066799c18ff476642858fb0e4050c5c600c47e4c;p=platform%2Fkernel%2Flinux-starfive.git 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 Reviewed-by: Alex Elder --- 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 *gb_module_create(struct greybus_host_device *hd, u8 module_id) 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;