Received: by 10.192.165.156 with SMTP id m28csp74085imm; Tue, 10 Apr 2018 16:44:14 -0700 (PDT) X-Google-Smtp-Source: AIpwx48Nh7I4TzpH6e/9CiMenjEJ0UDgryzHB56QOXBLweEkDHyaPr6b+7T2KwoyxWS37ouxWhP6 X-Received: by 2002:a17:902:24c:: with SMTP id 70-v6mr2491557plc.384.1523403854795; Tue, 10 Apr 2018 16:44:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523403854; cv=none; d=google.com; s=arc-20160816; b=N7SNK/zHvkYIdZAtJmdPhwp2vkdgxWqSjJKDTXukWc8+dy5bTEKkEIFKlIxZE9ioy5 z5/VHl+wHqNKkfICFyIU5OXI8DFfy4lqxz+EvGqKcZqCIzb9N85gW4Ijr8ECYtXWlDEz ZD91Dih0arXvkIHp16McN6wUK5XcnZse3q4j2BpcbyKSEyngNxphQ8AdP74RP9aYTGMi jOqQQscRX33qpltmijMpvwvkoZUa8i0bDZ/hgIFFDSzrv6rMrRBtRk71Fzif5h9B+d+E aKp0FWnXM8t5nyJ1VG3ZOEawBvw+QnLBLACz92eykucY44Kpt/tgsBdqIYpXkpTQxHVt /IpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=FAplxqT4zNK9+/08kjEMdRbHnuaE6vgoFAOINkw64zQ=; b=Idw1U0PQwc9zzOQ1AxJ7kJh7ep5fxnTKf+oDAwD2QTqY35f+IZDiXfaTmBzF/vbS4v uC8D++NrnrEtWUImTC1prA0ISM8zvUibaDux1d0VzB8VXrhxL6OtZhQcle5aGz0np0CH Gz5PAGPddf2uU92CHtH9PBTGgrrxwV/0xce5/HdZYE/NHCdnFC+Q94sAmht7Pc9njXTg QWzo300nHhzuVYNGXv6bGzdUyn+0h8I3i9YT3zu30LZylDLhTdXV2ndEKfXn0MZZv/TN IoO/knZZLKmHllbMff/sYmav7acArtPWVxwwHQgmwyDzy4KLBVtnm9aiC0ZRGfb/Xzok fl1g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b3-v6si3629557plc.329.2018.04.10.16.43.38; Tue, 10 Apr 2018 16:44:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753981AbeDJXjE (ORCPT + 99 others); Tue, 10 Apr 2018 19:39:04 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:37628 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753242AbeDJW0u (ORCPT ); Tue, 10 Apr 2018 18:26:50 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id DFA44CC4; Tue, 10 Apr 2018 22:26:49 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Nogah Frankel , Yuval Mintz , Jiri Pirko , "David S. Miller" , Sasha Levin Subject: [PATCH 4.15 026/168] net_sch: red: Fix the new offload indication Date: Wed, 11 Apr 2018 00:22:48 +0200 Message-Id: <20180410212801.312204330@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180410212800.144079021@linuxfoundation.org> References: <20180410212800.144079021@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.15-stable review patch. If anyone has any objections, please let me know. ------------------ From: Nogah Frankel [ Upstream commit 8234af2db3614d78b49e77ef46ea8cfab6586568 ] Update the offload flag, TCQ_F_OFFLOADED, in each dump call (and ignore the offloading function return value in relation to this flag). This is done because a qdisc is being initialized, and therefore offloaded before being grafted. Since the ability of the driver to offload the qdisc depends on its location, a qdisc can be offloaded and un-offloaded by graft calls, that doesn't effect the qdisc itself. Fixes: 428a68af3a7c ("net: sched: Move to new offload indication in RED" Signed-off-by: Nogah Frankel Reviewed-by: Yuval Mintz Acked-by: Jiri Pirko Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- net/sched/sch_red.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) --- a/net/sched/sch_red.c +++ b/net/sched/sch_red.c @@ -157,7 +157,6 @@ static int red_offload(struct Qdisc *sch .handle = sch->handle, .parent = sch->parent, }; - int err; if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_tc) return -EOPNOTSUPP; @@ -172,14 +171,7 @@ static int red_offload(struct Qdisc *sch opt.command = TC_RED_DESTROY; } - err = dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_RED, &opt); - - if (!err && enable) - sch->flags |= TCQ_F_OFFLOADED; - else - sch->flags &= ~TCQ_F_OFFLOADED; - - return err; + return dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_RED, &opt); } static void red_destroy(struct Qdisc *sch) @@ -294,12 +286,22 @@ static int red_dump_offload_stats(struct .stats.qstats = &sch->qstats, }, }; + int err; + + sch->flags &= ~TCQ_F_OFFLOADED; - if (!(sch->flags & TCQ_F_OFFLOADED)) + if (!tc_can_offload(dev) || !dev->netdev_ops->ndo_setup_tc) + return 0; + + err = dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_RED, + &hw_stats); + if (err == -EOPNOTSUPP) return 0; - return dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_QDISC_RED, - &hw_stats); + if (!err) + sch->flags |= TCQ_F_OFFLOADED; + + return err; } static int red_dump(struct Qdisc *sch, struct sk_buff *skb)