From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jakub Kicinski Subject: [PATCH net-next 1/7] net: sched: gred: separate error and non-error path in gred_change() Date: Wed, 14 Nov 2018 22:23:45 -0800 Message-ID: <20181115062351.22763-2-jakub.kicinski@netronome.com> References: <20181115062351.22763-1-jakub.kicinski@netronome.com> Cc: netdev@vger.kernel.org, jiri@resnulli.us, xiyou.wangcong@gmail.com, jhs@mojatatu.com, oss-drivers@netronome.com, Jakub Kicinski To: davem@davemloft.net Return-path: Received: from mail-qk1-f195.google.com ([209.85.222.195]:42457 "EHLO mail-qk1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726574AbeKOQai (ORCPT ); Thu, 15 Nov 2018 11:30:38 -0500 Received: by mail-qk1-f195.google.com with SMTP id m5so30206607qka.9 for ; Wed, 14 Nov 2018 22:24:08 -0800 (PST) In-Reply-To: <20181115062351.22763-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org List-ID: We will soon want to add more code to the non-error path, separate it from the error handling flow. Signed-off-by: Jakub Kicinski Reviewed-by: John Hurley --- net/sched/sch_gred.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/net/sched/sch_gred.c b/net/sched/sch_gred.c index 4a042abf844c..22110be9d285 100644 --- a/net/sched/sch_gred.c +++ b/net/sched/sch_gred.c @@ -423,12 +423,11 @@ static int gred_change(struct Qdisc *sch, struct nlattr *opt, max_P = tb[TCA_GRED_MAX_P] ? nla_get_u32(tb[TCA_GRED_MAX_P]) : 0; - err = -EINVAL; ctl = nla_data(tb[TCA_GRED_PARMS]); stab = nla_data(tb[TCA_GRED_STAB]); if (ctl->DP >= table->DPs) - goto errout; + return -EINVAL; if (gred_rio_mode(table)) { if (ctl->prio == 0) { @@ -450,7 +449,7 @@ static int gred_change(struct Qdisc *sch, struct nlattr *opt, err = gred_change_vq(sch, ctl->DP, ctl, prio, stab, max_P, &prealloc); if (err < 0) - goto errout_locked; + goto err_unlock_free; if (gred_rio_mode(table)) { gred_disable_wred_mode(table); @@ -458,12 +457,13 @@ static int gred_change(struct Qdisc *sch, struct nlattr *opt, gred_enable_wred_mode(table); } - err = 0; + sch_tree_unlock(sch); + kfree(prealloc); + return 0; -errout_locked: +err_unlock_free: sch_tree_unlock(sch); kfree(prealloc); -errout: return err; } -- 2.17.1