From: Viresh Kumar Date: Mon, 7 Sep 2015 10:31:20 +0000 (+0530) Subject: greybus: manifest: release cport descriptors to avoid 'excess descriptors' warning X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=4317f874f48d14fbd5b1d408336843dbe129ab3e;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git greybus: manifest: release cport descriptors to avoid 'excess descriptors' warning If we fail to initialize a cport of a bundle, we abort the entire bundle. But that leads to following (unnecessary) warnings as few of the cport descriptors, belonging to the aborted bundle were never parsed: "greybus: excess descriptors in interface manifest" Fix that by releasing all cport descriptors for the aborted bundle. Signed-off-by: Viresh Kumar Reviewed-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/manifest.c b/drivers/staging/greybus/manifest.c index eda0f55580e3..2264ec5914f9 100644 --- a/drivers/staging/greybus/manifest.c +++ b/drivers/staging/greybus/manifest.c @@ -258,6 +258,19 @@ print_error_exit: GREYBUS_PROTOCOL_CONTROL); exit: + /* + * Free all cports for this bundle to avoid 'excess descriptors' + * warnings. + */ + list_for_each_entry_safe(desc, next, &intf->manifest_descs, links) { + struct greybus_descriptor_cport *desc_cport = desc->data; + + if (desc->type != GREYBUS_TYPE_CPORT) + continue; + if (desc_cport->bundle == bundle_id) + release_manifest_descriptor(desc); + } + return 0; /* Error; count should also be 0 */ }