From 8267616b3ef73b22c9ed5b87905c13fc332fe507 Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Tue, 9 Jun 2015 17:42:57 -0500 Subject: [PATCH] greybus: bundle: check for duplicate bundle ids Check at bundle creation time to ensure we're not creating a bundle with an id that's the same as one that's already been created. Signed-off-by: Alex Elder Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/bundle.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/staging/greybus/bundle.c b/drivers/staging/greybus/bundle.c index a6b1b347097a..6e9d03ac7e35 100644 --- a/drivers/staging/greybus/bundle.c +++ b/drivers/staging/greybus/bundle.c @@ -165,6 +165,16 @@ struct gb_bundle *gb_bundle_create(struct gb_interface *intf, u8 bundle_id, struct gb_bundle *bundle; int retval; + /* + * Reject any attempt to reuse a bundle id. We initialize + * these serially, so there's no need to worry about keeping + * the interface bundle list locked here. + */ + if (gb_bundle_find(intf, bundle_id)) { + pr_err("duplicate bundle id 0x%02hhx\n", bundle_id); + return NULL; + } + bundle = kzalloc(sizeof(*bundle), GFP_KERNEL); if (!bundle) return NULL; -- 2.39.5