From: Bryan O'Donoghue Date: Mon, 14 Sep 2015 09:48:39 +0000 (+0100) Subject: greybus: loopback: ensure count decrement happens before sysfs_remove_groups X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=6de00a5f32e09b58879175f2942ebeac699d3534;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git greybus: loopback: ensure count decrement happens before sysfs_remove_groups This patches fixes a case where gb_dev.count is decremented too late in the exit() routine. Signed-off-by: Bryan O'Donoghue Reported-by: Viresh Kumar Reviewed-by: Viresh Kumar Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/loopback.c index 231d1d4c1104..33c21cf22687 100644 --- a/drivers/staging/greybus/loopback.c +++ b/drivers/staging/greybus/loopback.c @@ -952,14 +952,13 @@ static void gb_loopback_connection_exit(struct gb_connection *connection) connection->private = NULL; kfifo_free(&gb->kfifo_lat); kfifo_free(&gb->kfifo_ts); + gb_dev.count--; if (!gb_dev.count) sysfs_remove_groups(kobj, loopback_dev_groups); sysfs_remove_groups(&connection->dev.kobj, loopback_con_groups); debugfs_remove(gb->file); list_del(&gb->entry); kfree(gb); - gb_dev.count--; - mutex_unlock(&gb_dev.mutex); }