From: Sergei Zviagintsev Date: Wed, 17 Jun 2015 20:14:57 +0300 Subject: [PATCH] kdbus: optimize error path in kdbus_reply_new() Move cleanup code to separate location as it never executes on normal flow. This removes extra if-block and the need to initialize `ret'. Signed-off-by: Sergei Zviagintsev Reviewed-by: David Herrmann Reviewed-by: Djalal Harouni Signed-off-by: Greg Kroah-Hartman --- ipc/kdbus/reply.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ipc/kdbus/reply.c b/ipc/kdbus/reply.c index 9d823ebee71f..e6791d86ec92 100644 --- a/ipc/kdbus/reply.c +++ b/ipc/kdbus/reply.c @@ -37,7 +37,7 @@ struct kdbus_reply *kdbus_reply_new(struct kdbus_conn *reply_src, bool sync) { struct kdbus_reply *r; - int ret = 0; + int ret; if (atomic_inc_return(&reply_dst->request_count) > KDBUS_CONN_MAX_REQUESTS_PENDING) { @@ -64,13 +64,11 @@ struct kdbus_reply *kdbus_reply_new(struct kdbus_conn *reply_src, r->waiting = true; } -exit_dec_request_count: - if (ret < 0) { - atomic_dec(&reply_dst->request_count); - return ERR_PTR(ret); - } - return r; + +exit_dec_request_count: + atomic_dec(&reply_dst->request_count); + return ERR_PTR(ret); } static void __kdbus_reply_free(struct kref *kref)