From patchwork Wed Jan 24 20:54:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865473 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="CtpkoAOK"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcs62tB4z9s7s for ; Thu, 25 Jan 2018 07:56:10 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932629AbeAXU4H (ORCPT ); Wed, 24 Jan 2018 15:56:07 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:40192 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932843AbeAXUzM (ORCPT ); Wed, 24 Jan 2018 15:55:12 -0500 Received: by mail-pg0-f65.google.com with SMTP id g16so3553460pgn.7 for ; Wed, 24 Jan 2018 12:55:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=YcdxwaR3+xuhPQRH5c81cMJcfwqZkGLsmo20v55ywQA=; b=CtpkoAOKeQ0qWjmPaOdAptS6di52+3Y4XABtYXInbv95WtG6bMxyZJ7tUunMpmTm+Y rYY+nqfG/aLuX7g2Cp4QUa564NPpCb1r3/b8LPo2vE38x01F7Z+VlzmPoOsp3XFdZU4t AUajKgVH96ETOK0Y/u9f7QewL1OOUE9ax6J8Yoj7JZm11yQ6tR/8gpV7V4o2HUucU/3O rHjV8lqTy6XYSTsEpEPbWH29wcCFOOYyUdf7rZJZQetX7ghDS6Xw/fUDxXLMHthWcYjO 9mX+vrp7fGv4G8iFCzn5dNcyxH3gIRdvzq1rvVQsv4cWfaQZn6L8qo2n3SxpVKnY3Rt0 YQow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=YcdxwaR3+xuhPQRH5c81cMJcfwqZkGLsmo20v55ywQA=; b=fvQ7O3xBbUiq98Ghp6syNquHuCCzcIDNYeQA38UlFnUwlSTD40d1lvzEcViZs8xmwd +HIlH9tCYM0Y6O4RXR6qzTkNxkDL80Ex4dTkbaiye4LMLkp92fGuEF2IgmQhBEHsJwb0 q+kedeOASqKzzpyNGETPhFZ77vw8+ROuiEhBsjV5YQZlDAmNWYUby2pdresiO3GmnEcC qcq7bW2hjqgusad5f3FLKs/Wlsmp2yOTum5C1Xii2AdhOUiW3WAXEYPfB38exloSXvKe 0VNcwCI2kG8tVsBiUldxEGdgRFfzcSG8YOxWIJmYMlamrrmIefu2hYpVcgUGemgu3coR 3iOw== X-Gm-Message-State: AKwxytdd6aaMO4IfuI31gcY/unuWVrGqon4Xqb32EL6oG8DOSyVOxeid /sHktPzwGZBietPXyR7fMS1now== X-Google-Smtp-Source: AH8x2275Onp4RT4AMADYX7YcVu9X3+dN0NpihFpfMOl5/D9eJK+yR6vZF7tOFx2nxpY8gjZuA8HczQ== X-Received: by 2002:a17:902:6809:: with SMTP id h9-v6mr9269843plk.46.1516827311164; Wed, 24 Jan 2018 12:55:11 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:10 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 01/12] net: sched: propagate extack to cls->destroy callbacks Date: Wed, 24 Jan 2018 12:54:13 -0800 Message-Id: <20180124205424.6976-2-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Propagate extack to cls->destroy callbacks when called from non-error paths. On error paths pass NULL to avoid overwriting the failure message. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- include/net/sch_generic.h | 3 ++- net/sched/cls_api.c | 15 ++++++++------- net/sched/cls_basic.c | 2 +- net/sched/cls_bpf.c | 3 ++- net/sched/cls_cgroup.c | 3 ++- net/sched/cls_flow.c | 2 +- net/sched/cls_flower.c | 2 +- net/sched/cls_fw.c | 2 +- net/sched/cls_matchall.c | 2 +- net/sched/cls_route.c | 2 +- net/sched/cls_rsvp.h | 2 +- net/sched/cls_tcindex.c | 3 ++- net/sched/cls_u32.c | 2 +- 13 files changed, 24 insertions(+), 19 deletions(-) diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index cd1be1f25c36..eac43e8ca96d 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -233,7 +233,8 @@ struct tcf_proto_ops { const struct tcf_proto *, struct tcf_result *); int (*init)(struct tcf_proto*); - void (*destroy)(struct tcf_proto*); + void (*destroy)(struct tcf_proto *tp, + struct netlink_ext_ack *extack); void* (*get)(struct tcf_proto*, u32 handle); int (*change)(struct net *net, struct sk_buff *, diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index f5d293416f46..bcb4ccb5f894 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c @@ -172,9 +172,10 @@ static struct tcf_proto *tcf_proto_create(const char *kind, u32 protocol, return ERR_PTR(err); } -static void tcf_proto_destroy(struct tcf_proto *tp) +static void tcf_proto_destroy(struct tcf_proto *tp, + struct netlink_ext_ack *extack) { - tp->ops->destroy(tp); + tp->ops->destroy(tp, extack); module_put(tp->ops->owner); kfree_rcu(tp, rcu); } @@ -223,7 +224,7 @@ static void tcf_chain_flush(struct tcf_chain *chain) tcf_chain_head_change(chain, NULL); while (tp) { RCU_INIT_POINTER(chain->filter_chain, tp->next); - tcf_proto_destroy(tp); + tcf_proto_destroy(tp, NULL); tp = rtnl_dereference(chain->filter_chain); tcf_chain_put(chain); } @@ -1182,7 +1183,7 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n, tcf_chain_tp_remove(chain, &chain_info, tp); tfilter_notify(net, skb, n, tp, block, q, parent, fh, RTM_DELTFILTER, false); - tcf_proto_destroy(tp); + tcf_proto_destroy(tp, extack); err = 0; goto errout; } @@ -1200,7 +1201,7 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n, case RTM_NEWTFILTER: if (n->nlmsg_flags & NLM_F_EXCL) { if (tp_created) - tcf_proto_destroy(tp); + tcf_proto_destroy(tp, NULL); NL_SET_ERR_MSG(extack, "Filter already exists"); err = -EEXIST; goto errout; @@ -1214,7 +1215,7 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n, goto errout; if (last) { tcf_chain_tp_remove(chain, &chain_info, tp); - tcf_proto_destroy(tp); + tcf_proto_destroy(tp, extack); } goto errout; case RTM_GETTFILTER: @@ -1240,7 +1241,7 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n, RTM_NEWTFILTER, false); } else { if (tp_created) - tcf_proto_destroy(tp); + tcf_proto_destroy(tp, NULL); } errout: diff --git a/net/sched/cls_basic.c b/net/sched/cls_basic.c index 6088be65d167..d333f5c5101d 100644 --- a/net/sched/cls_basic.c +++ b/net/sched/cls_basic.c @@ -112,7 +112,7 @@ static void basic_delete_filter(struct rcu_head *head) tcf_queue_work(&f->work); } -static void basic_destroy(struct tcf_proto *tp) +static void basic_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) { struct basic_head *head = rtnl_dereference(tp->root); struct basic_filter *f, *n; diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c index c11e0fe23a17..a562b9a39e71 100644 --- a/net/sched/cls_bpf.c +++ b/net/sched/cls_bpf.c @@ -314,7 +314,8 @@ static int cls_bpf_delete(struct tcf_proto *tp, void *arg, bool *last, return 0; } -static void cls_bpf_destroy(struct tcf_proto *tp) +static void cls_bpf_destroy(struct tcf_proto *tp, + struct netlink_ext_ack *extack) { struct cls_bpf_head *head = rtnl_dereference(tp->root); struct cls_bpf_prog *prog, *tmp; diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c index 1b54fbfca414..762da5c0cf5e 100644 --- a/net/sched/cls_cgroup.c +++ b/net/sched/cls_cgroup.c @@ -143,7 +143,8 @@ static int cls_cgroup_change(struct net *net, struct sk_buff *in_skb, return err; } -static void cls_cgroup_destroy(struct tcf_proto *tp) +static void cls_cgroup_destroy(struct tcf_proto *tp, + struct netlink_ext_ack *extack) { struct cls_cgroup_head *head = rtnl_dereference(tp->root); diff --git a/net/sched/cls_flow.c b/net/sched/cls_flow.c index 64c24b488058..cd5fe383afdd 100644 --- a/net/sched/cls_flow.c +++ b/net/sched/cls_flow.c @@ -600,7 +600,7 @@ static int flow_init(struct tcf_proto *tp) return 0; } -static void flow_destroy(struct tcf_proto *tp) +static void flow_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) { struct flow_head *head = rtnl_dereference(tp->root); struct flow_filter *f, *next; diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 727c10378f37..213be0e6f1d1 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -315,7 +315,7 @@ static void fl_destroy_rcu(struct rcu_head *rcu) schedule_work(&head->work); } -static void fl_destroy(struct tcf_proto *tp) +static void fl_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) { struct cls_fl_head *head = rtnl_dereference(tp->root); struct cls_fl_filter *f, *next; diff --git a/net/sched/cls_fw.c b/net/sched/cls_fw.c index 94d159a8869a..8b207723fbc2 100644 --- a/net/sched/cls_fw.c +++ b/net/sched/cls_fw.c @@ -149,7 +149,7 @@ static void fw_delete_filter(struct rcu_head *head) tcf_queue_work(&f->work); } -static void fw_destroy(struct tcf_proto *tp) +static void fw_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) { struct fw_head *head = rtnl_dereference(tp->root); struct fw_filter *f; diff --git a/net/sched/cls_matchall.c b/net/sched/cls_matchall.c index d990d2a52c6d..2de2338f4030 100644 --- a/net/sched/cls_matchall.c +++ b/net/sched/cls_matchall.c @@ -114,7 +114,7 @@ static int mall_replace_hw_filter(struct tcf_proto *tp, return 0; } -static void mall_destroy(struct tcf_proto *tp) +static void mall_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) { struct cls_mall_head *head = rtnl_dereference(tp->root); diff --git a/net/sched/cls_route.c b/net/sched/cls_route.c index 55467c30d524..21a03a8ee029 100644 --- a/net/sched/cls_route.c +++ b/net/sched/cls_route.c @@ -281,7 +281,7 @@ static void route4_delete_filter(struct rcu_head *head) tcf_queue_work(&f->work); } -static void route4_destroy(struct tcf_proto *tp) +static void route4_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) { struct route4_head *head = rtnl_dereference(tp->root); int h1, h2; diff --git a/net/sched/cls_rsvp.h b/net/sched/cls_rsvp.h index 5cc0df690cff..4f1297657c27 100644 --- a/net/sched/cls_rsvp.h +++ b/net/sched/cls_rsvp.h @@ -322,7 +322,7 @@ static void rsvp_delete_filter(struct tcf_proto *tp, struct rsvp_filter *f) __rsvp_delete_filter(f); } -static void rsvp_destroy(struct tcf_proto *tp) +static void rsvp_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) { struct rsvp_head *data = rtnl_dereference(tp->root); int h1, h2; diff --git a/net/sched/cls_tcindex.c b/net/sched/cls_tcindex.c index 01a163e0b6aa..b49cc990a000 100644 --- a/net/sched/cls_tcindex.c +++ b/net/sched/cls_tcindex.c @@ -581,7 +581,8 @@ static void tcindex_walk(struct tcf_proto *tp, struct tcf_walker *walker) } } -static void tcindex_destroy(struct tcf_proto *tp) +static void tcindex_destroy(struct tcf_proto *tp, + struct netlink_ext_ack *extack) { struct tcindex_data *p = rtnl_dereference(tp->root); struct tcf_walker walker; diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c index 7030240f8826..98cabe835fd8 100644 --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c @@ -638,7 +638,7 @@ static bool ht_empty(struct tc_u_hnode *ht) return true; } -static void u32_destroy(struct tcf_proto *tp) +static void u32_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) { struct tc_u_common *tp_c = tp->data; struct tc_u_hnode *root_ht = rtnl_dereference(tp->root); From patchwork Wed Jan 24 20:54:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865461 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="Wl3z6mo4"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcr732rFz9t1t for ; Thu, 25 Jan 2018 07:55:19 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932474AbeAXUzP (ORCPT ); Wed, 24 Jan 2018 15:55:15 -0500 Received: from mail-pg0-f67.google.com ([74.125.83.67]:34211 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932507AbeAXUzN (ORCPT ); Wed, 24 Jan 2018 15:55:13 -0500 Received: by mail-pg0-f67.google.com with SMTP id r19so3562204pgn.1 for ; Wed, 24 Jan 2018 12:55:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=LGmSQqYzNoS5e1CiQfc4gH6awaiBkg3WZcALej4pzrY=; b=Wl3z6mo4rA5OLQsR3d7sEYbALh9PYb4pGMxPvVieS3V4gzWFO0eyhKBPHLDUbkEZEP ORy/gdS03TQW9BLSdaNA5f4QQA5LMYkWk2E6T/E87dxNEeK3Fgal1fLQ82ZmuJwZJ2RX 0lNRxTtNrKY92fgJkLyPCdY971wpsvpmaYyJ68BErNdWJQjoN0O8pf/oYD/pUcohYuAE xgiUZNIY4bnXPT7ksPv6H4emmgh5kJZ87vbz8SyT7FYwkCf9DE8WsW3XlxrOkl+9408B BG37KOvskmpzlwvUzEtdylCCx+9OIdBMfCajIcnSf14tA1LjlhYzAvF9pF6jC4mswH5L JN5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=LGmSQqYzNoS5e1CiQfc4gH6awaiBkg3WZcALej4pzrY=; b=D4tsEkOmKlXjPF2iVfp5KpTDHExxlMpCryvQFVJgCzR7GR+KoI9wYDK5LQERKmGwOA 6hYbH9beMa3JU7hgILiZQQ/XRyX/P/2ctAOI+KE8ArI79LvizpGX0PFAhNqVXoINp6nB RmXgJwF3xzlrqCg3l9rn0lzwx8A6CffKZFvKns2zRDyfzF+09D2Qw8qBGKPv27x4fM/G NgiVwW6uOXWvOVEuZwDNirlwL4wqla+mjt7iwT3n0dMbVcJJAlMZ4Wuna7Wi0aoqx6sT WnierjIUEQ2pSmx6tGR6N1fo8rhQrUw1KpYfFiV5lCYOQ31ybI75Zm4wwuPHULT8lFJF 3OKg== X-Gm-Message-State: AKwxytdLdVTwX+2FkLmxgCwo2nLp5qi4o0eRWLhSb0JhJMQsOzTUv0xM BfiP7nN5kRZ1jhTRrOFS1fiYEg== X-Google-Smtp-Source: AH8x224JhAHEakVlytb7gIWyLCzjBbGXY5j1qGLYplX2gvJEX8tZkl6Lf3cgAo4vblmK/tMUOSJRAQ== X-Received: by 10.99.96.210 with SMTP id u201mr11815994pgb.248.1516827312747; Wed, 24 Jan 2018 12:55:12 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:12 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 02/12] net: sched: prepare for reimplementation of tc_cls_common_offload_init() Date: Wed, 24 Jan 2018 12:54:14 -0800 Message-Id: <20180124205424.6976-3-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Rename the tc_cls_common_offload_init() helper function to tc_cls_common_offload_init_deprecated() and add a new implementation which also takes flags argument. We will only set extack if flags indicate that offload is forced (skip_sw) otherwise driver errors should be ignored, as they don't influence the overall filter installation. Note that we need the tc_skip_hw() helper for new version, therefore it is added later in the file. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- include/net/pkt_cls.h | 18 +++++++++++++++--- net/sched/cls_bpf.c | 4 ++-- net/sched/cls_flower.c | 6 +++--- net/sched/cls_matchall.c | 4 ++-- net/sched/cls_u32.c | 8 ++++---- 5 files changed, 26 insertions(+), 14 deletions(-) diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 2f8f16a4d88e..08815fe9314d 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -606,9 +606,9 @@ struct tc_cls_common_offload { }; static inline void -tc_cls_common_offload_init(struct tc_cls_common_offload *cls_common, - const struct tcf_proto *tp, - struct netlink_ext_ack *extack) +tc_cls_common_offload_init_deprecated(struct tc_cls_common_offload *cls_common, + const struct tcf_proto *tp, + struct netlink_ext_ack *extack) { cls_common->chain_index = tp->chain->index; cls_common->protocol = tp->protocol; @@ -694,6 +694,18 @@ static inline bool tc_in_hw(u32 flags) return (flags & TCA_CLS_FLAGS_IN_HW) ? true : false; } +static inline void +tc_cls_common_offload_init(struct tc_cls_common_offload *cls_common, + const struct tcf_proto *tp, u32 flags, + struct netlink_ext_ack *extack) +{ + cls_common->chain_index = tp->chain->index; + cls_common->protocol = tp->protocol; + cls_common->prio = tp->prio; + if (tc_skip_sw(flags)) + cls_common->extack = extack; +} + enum tc_fl_command { TC_CLSFLOWER_REPLACE, TC_CLSFLOWER_DESTROY, diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c index a562b9a39e71..0bffb189d646 100644 --- a/net/sched/cls_bpf.c +++ b/net/sched/cls_bpf.c @@ -159,7 +159,7 @@ static int cls_bpf_offload_cmd(struct tcf_proto *tp, struct cls_bpf_prog *prog, skip_sw = prog && tc_skip_sw(prog->gen_flags); obj = prog ?: oldprog; - tc_cls_common_offload_init(&cls_bpf.common, tp, extack); + tc_cls_common_offload_init_deprecated(&cls_bpf.common, tp, extack); cls_bpf.command = TC_CLSBPF_OFFLOAD; cls_bpf.exts = &obj->exts; cls_bpf.prog = prog ? prog->filter : NULL; @@ -227,7 +227,7 @@ static void cls_bpf_offload_update_stats(struct tcf_proto *tp, struct tcf_block *block = tp->chain->block; struct tc_cls_bpf_offload cls_bpf = {}; - tc_cls_common_offload_init(&cls_bpf.common, tp, NULL); + tc_cls_common_offload_init_deprecated(&cls_bpf.common, tp, NULL); cls_bpf.command = TC_CLSBPF_STATS; cls_bpf.exts = &prog->exts; cls_bpf.prog = prog->filter; diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 213be0e6f1d1..3f2654ca8ff7 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -223,7 +223,7 @@ static void fl_hw_destroy_filter(struct tcf_proto *tp, struct cls_fl_filter *f) struct tc_cls_flower_offload cls_flower = {}; struct tcf_block *block = tp->chain->block; - tc_cls_common_offload_init(&cls_flower.common, tp, NULL); + tc_cls_common_offload_init_deprecated(&cls_flower.common, tp, NULL); cls_flower.command = TC_CLSFLOWER_DESTROY; cls_flower.cookie = (unsigned long) f; @@ -243,7 +243,7 @@ static int fl_hw_replace_filter(struct tcf_proto *tp, bool skip_sw = tc_skip_sw(f->flags); int err; - tc_cls_common_offload_init(&cls_flower.common, tp, extack); + tc_cls_common_offload_init_deprecated(&cls_flower.common, tp, extack); cls_flower.command = TC_CLSFLOWER_REPLACE; cls_flower.cookie = (unsigned long) f; cls_flower.dissector = dissector; @@ -272,7 +272,7 @@ static void fl_hw_update_stats(struct tcf_proto *tp, struct cls_fl_filter *f) struct tc_cls_flower_offload cls_flower = {}; struct tcf_block *block = tp->chain->block; - tc_cls_common_offload_init(&cls_flower.common, tp, NULL); + tc_cls_common_offload_init_deprecated(&cls_flower.common, tp, NULL); cls_flower.command = TC_CLSFLOWER_STATS; cls_flower.cookie = (unsigned long) f; cls_flower.exts = &f->exts; diff --git a/net/sched/cls_matchall.c b/net/sched/cls_matchall.c index 2de2338f4030..a9a535a7a431 100644 --- a/net/sched/cls_matchall.c +++ b/net/sched/cls_matchall.c @@ -76,7 +76,7 @@ static void mall_destroy_hw_filter(struct tcf_proto *tp, struct tc_cls_matchall_offload cls_mall = {}; struct tcf_block *block = tp->chain->block; - tc_cls_common_offload_init(&cls_mall.common, tp, NULL); + tc_cls_common_offload_init_deprecated(&cls_mall.common, tp, NULL); cls_mall.command = TC_CLSMATCHALL_DESTROY; cls_mall.cookie = cookie; @@ -94,7 +94,7 @@ static int mall_replace_hw_filter(struct tcf_proto *tp, bool skip_sw = tc_skip_sw(head->flags); int err; - tc_cls_common_offload_init(&cls_mall.common, tp, extack); + tc_cls_common_offload_init_deprecated(&cls_mall.common, tp, extack); cls_mall.command = TC_CLSMATCHALL_REPLACE; cls_mall.exts = &head->exts; cls_mall.cookie = cookie; diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c index 98cabe835fd8..e2e8d08c4a0d 100644 --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c @@ -491,7 +491,7 @@ static void u32_clear_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h) struct tcf_block *block = tp->chain->block; struct tc_cls_u32_offload cls_u32 = {}; - tc_cls_common_offload_init(&cls_u32.common, tp, NULL); + tc_cls_common_offload_init_deprecated(&cls_u32.common, tp, NULL); cls_u32.command = TC_CLSU32_DELETE_HNODE; cls_u32.hnode.divisor = h->divisor; cls_u32.hnode.handle = h->handle; @@ -509,7 +509,7 @@ static int u32_replace_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h, bool offloaded = false; int err; - tc_cls_common_offload_init(&cls_u32.common, tp, extack); + tc_cls_common_offload_init_deprecated(&cls_u32.common, tp, extack); cls_u32.command = TC_CLSU32_NEW_HNODE; cls_u32.hnode.divisor = h->divisor; cls_u32.hnode.handle = h->handle; @@ -534,7 +534,7 @@ static void u32_remove_hw_knode(struct tcf_proto *tp, struct tc_u_knode *n) struct tcf_block *block = tp->chain->block; struct tc_cls_u32_offload cls_u32 = {}; - tc_cls_common_offload_init(&cls_u32.common, tp, NULL); + tc_cls_common_offload_init_deprecated(&cls_u32.common, tp, NULL); cls_u32.command = TC_CLSU32_DELETE_KNODE; cls_u32.knode.handle = n->handle; @@ -550,7 +550,7 @@ static int u32_replace_hw_knode(struct tcf_proto *tp, struct tc_u_knode *n, bool skip_sw = tc_skip_sw(flags); int err; - tc_cls_common_offload_init(&cls_u32.common, tp, extack); + tc_cls_common_offload_init_deprecated(&cls_u32.common, tp, extack); cls_u32.command = TC_CLSU32_REPLACE_KNODE; cls_u32.knode.handle = n->handle; cls_u32.knode.fshift = n->fshift; From patchwork Wed Jan 24 20:54:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865472 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="IW2FJLTr"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcs44N9wz9s7s for ; Thu, 25 Jan 2018 07:56:08 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932376AbeAXU4G (ORCPT ); Wed, 24 Jan 2018 15:56:06 -0500 Received: from mail-pg0-f66.google.com ([74.125.83.66]:43401 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932497AbeAXUzO (ORCPT ); Wed, 24 Jan 2018 15:55:14 -0500 Received: by mail-pg0-f66.google.com with SMTP id n17so3546538pgf.10 for ; Wed, 24 Jan 2018 12:55:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sdG3S349yv4k0hq0Q2gEI80EjQY1qKpNhL/rLuRW8yo=; b=IW2FJLTrbWP5VGi5jluJmASh73HDpcDR5poOtUd+C7D+ZfYpqASJAxAfo/mPJgpofH fS5bjgZN9P9FvDPlm0BYQwegXdBu9l8rh5A+hcXKcX1lFNXiXyLBKyYgmBLuHMuKQ+Hv MgFPpMaA6pUHbyKgTr0OoAntW/Kmhg9vjwODD9Rr5yZ+eqLc9+yyyahnXA0fL7UbdbMg Xd7svcmDksWnSryqoiEXELU0SS8H2YOguJdNpSG2IiTP0Dhm59+72eXO3C7619S2G0Kw UwsiAxJPA1BaWQkRCXtyoVnTHETiOSrooRdASaiBAC/TbJtEEtMOjiSOMIzNHQQF8LL2 fW7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=sdG3S349yv4k0hq0Q2gEI80EjQY1qKpNhL/rLuRW8yo=; b=tALXpBGtTt1e5SY7pFHnM/JJxLWxz2P2sN+YHLE51oVwpTW8U+nTZIJOKlDh6UUh4T 60LZC3m1s0sW/ccvgNZIjpVOLsitMdhqxHaOHyi+xu85DEkyBz7KswqS6clQ7muGL4PS 6lpXWssdJ+mGHnMfd3gKEyrCb8AsA3mpubSAp+kvCyzuJn0wM09K/ex9d7d9ngIN4vMc gzqveN/ReHz1gfVVneW+rGG4XBX8k9e/gjlKBzf7G2KVKYBfrZAJFVm2kFGQhdKg0oPK 0c5FBa4QIENC9nc2E5EjRgNVb8FNXFC8zc50cYQcUlon20G4Mou7mJMBi7FQNDSeEF1p 9qSw== X-Gm-Message-State: AKwxytfxvwt61+1H0kIgFOA1RBJ1W1l5IiIFSGbiWUPb6JXw2uWvKyiO 4j7Aiz3q38o7rYnR6Td0w5kYfw== X-Google-Smtp-Source: AH8x226y1yZDqkKE7003K+1KQnu8mYXaES8R0cJeZeCxJiE49vcMEw7Gizg4s3xWZ+LPnSeepF8SXQ== X-Received: by 10.99.125.78 with SMTP id m14mr11842789pgn.383.1516827314349; Wed, 24 Jan 2018 12:55:14 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:13 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 03/12] cls_bpf: remove gen_flags from bpf_offload Date: Wed, 24 Jan 2018 12:54:15 -0800 Message-Id: <20180124205424.6976-4-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org cls_bpf now guarantees that only device-bound programs are allowed with skip_sw. The drivers no longer pay attention to flags on filter load, therefore the bpf_offload member can be removed. If flags are needed again they should probably be added to struct tc_cls_common_offload instead. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- include/net/pkt_cls.h | 1 - net/sched/cls_bpf.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 08815fe9314d..85cee929b9ce 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -748,7 +748,6 @@ struct tc_cls_bpf_offload { struct bpf_prog *oldprog; const char *name; bool exts_integrated; - u32 gen_flags; }; struct tc_mqprio_qopt_offload { diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c index 0bffb189d646..b8f953d00c46 100644 --- a/net/sched/cls_bpf.c +++ b/net/sched/cls_bpf.c @@ -166,7 +166,6 @@ static int cls_bpf_offload_cmd(struct tcf_proto *tp, struct cls_bpf_prog *prog, cls_bpf.oldprog = oldprog ? oldprog->filter : NULL; cls_bpf.name = obj->bpf_name; cls_bpf.exts_integrated = obj->exts_integrated; - cls_bpf.gen_flags = obj->gen_flags; if (oldprog) tcf_block_offload_dec(block, &oldprog->gen_flags); @@ -233,7 +232,6 @@ static void cls_bpf_offload_update_stats(struct tcf_proto *tp, cls_bpf.prog = prog->filter; cls_bpf.name = prog->bpf_name; cls_bpf.exts_integrated = prog->exts_integrated; - cls_bpf.gen_flags = prog->gen_flags; tc_setup_cb_call(block, NULL, TC_SETUP_CLSBPF, &cls_bpf, false); } From patchwork Wed Jan 24 20:54:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865462 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="GI/Ivp8t"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcrC1fHKz9s7s for ; Thu, 25 Jan 2018 07:55:23 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932892AbeAXUzW (ORCPT ); Wed, 24 Jan 2018 15:55:22 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:42593 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932507AbeAXUzQ (ORCPT ); Wed, 24 Jan 2018 15:55:16 -0500 Received: by mail-pg0-f68.google.com with SMTP id q67so3549966pga.9 for ; Wed, 24 Jan 2018 12:55:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=jipmaDdU/QtZsTEvRQhcedt3TEimog9mN4MqvUr9tiQ=; b=GI/Ivp8to9O+5WOYbagerr5AFoOas8ytCqmo+lonL6MugInopQpf+y8oyuhcUyfiXK TxuMOTR06Vl6XN4wym2mH8/eenjKR0BE2+O2Ls660jbMrIRs/UfSAIGzlBCst2oXWaIG qQwh67JP9fsNe95XZS2CyJxyPpUplmsFKF3l/qhRtJb6B6Jj49LWd1dcpBtAZvQ2lwRg B3uFis7KoDi1RP0lMitZuMt8ox66nj5STlRJUCO+xExz7pIsErfDmd+hOWB22kZL/Ury /Sr8FJDxLUgLbd8FK7kZn0+cU7ko0PZXDQFSkxcnehcoP1oDtFn+IF3T0bKC5PDQyhhW JEow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=jipmaDdU/QtZsTEvRQhcedt3TEimog9mN4MqvUr9tiQ=; b=fwhuUkxmGN6kXcsqZ6F3rfABHH/Mk2EonOkBGFQqyLDvmYi9EXYSzgwjaDtT1ehl/S ChXk+YR2UMFxIbgeMlyx/wJ6A2p1YpASh1hJkzgDdFe/MVi6L1MlsUQCm4gpmXI2v4jM P3hyeJAmKodmtldaCOcfZUJQhGG70QgANU1jDv1PZJ4RivF/TspFpP8uZtsFteyl+1ix d8YcBLuMaFjIMUfXB7VLxffBi3cuCOLGFDTnAYNF0fyn3/WNqM4KDERjUoDn+9sbNrGc Hal9rqpfcSY6R6xvfr2pF2cEtlBxnuWJsXqhY5jIIH2ZQ7X2dOhdXBpz59W39VX4ancE /qAw== X-Gm-Message-State: AKwxytcdVO/3d5k6XKglHCb8ch8svwvavUtsD0sRxgXtOJ/xoEc2VoCi o79r2zup8JMzM1taZaWBFu1aew== X-Google-Smtp-Source: AH8x225N1aSjtpo0ZJ2vRaLdbiv0FD+yM43Jjv+sO/L5lNqEDBKIjxM+9WBejdR+sDmQ4jNv0QrR1Q== X-Received: by 10.99.110.205 with SMTP id j196mr11428695pgc.54.1516827316205; Wed, 24 Jan 2018 12:55:16 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:15 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 04/12] cls_bpf: pass offload flags to tc_cls_common_offload_init() Date: Wed, 24 Jan 2018 12:54:16 -0800 Message-Id: <20180124205424.6976-5-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Pass offload flags to the new implementation of tc_cls_common_offload_init(). Extack will now only be set if user requested skip_sw. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- net/sched/cls_bpf.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c index b8f953d00c46..323b01f76a4c 100644 --- a/net/sched/cls_bpf.c +++ b/net/sched/cls_bpf.c @@ -159,7 +159,8 @@ static int cls_bpf_offload_cmd(struct tcf_proto *tp, struct cls_bpf_prog *prog, skip_sw = prog && tc_skip_sw(prog->gen_flags); obj = prog ?: oldprog; - tc_cls_common_offload_init_deprecated(&cls_bpf.common, tp, extack); + tc_cls_common_offload_init(&cls_bpf.common, tp, obj->gen_flags, + extack); cls_bpf.command = TC_CLSBPF_OFFLOAD; cls_bpf.exts = &obj->exts; cls_bpf.prog = prog ? prog->filter : NULL; @@ -226,7 +227,7 @@ static void cls_bpf_offload_update_stats(struct tcf_proto *tp, struct tcf_block *block = tp->chain->block; struct tc_cls_bpf_offload cls_bpf = {}; - tc_cls_common_offload_init_deprecated(&cls_bpf.common, tp, NULL); + tc_cls_common_offload_init(&cls_bpf.common, tp, prog->gen_flags, NULL); cls_bpf.command = TC_CLSBPF_STATS; cls_bpf.exts = &prog->exts; cls_bpf.prog = prog->filter; From patchwork Wed Jan 24 20:54:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865469 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="u2Nx7+0Z"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcrr1f71z9s7s for ; Thu, 25 Jan 2018 07:55:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932884AbeAXUzV (ORCPT ); Wed, 24 Jan 2018 15:55:21 -0500 Received: from mail-pg0-f67.google.com ([74.125.83.67]:36632 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932864AbeAXUzS (ORCPT ); Wed, 24 Jan 2018 15:55:18 -0500 Received: by mail-pg0-f67.google.com with SMTP id k68so3561899pga.3 for ; Wed, 24 Jan 2018 12:55:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1COmkCPqacBILWI6vfMfy7W4xD4J2AXUuE80gGk9p58=; b=u2Nx7+0Z2JR9z5+M0GiYSHz2TUOQGUiiNcIbOtmSuL2WAs3ORTM2JUGGsyBe9vxC+N eO+S9xTScF66WEihhgVBfqKt3kcV+RmL0MfpGCa7b37Rmzf0uSAwcejfJ3SCFb48J2Nt UCMvOj589vqb6LnVs62D45bPb3zK/KwbJs0wfT2XjDnJzYYOqShSHlSw/FKHVbGsnajX ghcqwY61ElYjKBnoVkH/Bdy6W2XNdD8BltFB9wN58ydiX+IBKAmOXIdAKUnSXxkdsxBR 18B5tAXuGEj6uOCP5gSka1e9c6SqD8IjxZpe05KlPSeqWZBvv2oGt4/mzOYS7e9c1WkC kAqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=1COmkCPqacBILWI6vfMfy7W4xD4J2AXUuE80gGk9p58=; b=t0OswexAJnMEufchcJXYOdb920q7m+8Acw4mToLWAmjR0I8Af5FNqRjrx075D1K+JJ ojMfV2T8S+gNjM7ps+T79ov5JE3F5TlmTpXNpNApBqn4ijyrF0EHNOkEmWHnacIgLWGZ olU2thVg60J7nmoXOVnXYmgX9HjN6fpkaHAeFj+icq8Sxrn6rrvruJyPmYv/D4DhKZ0O LbMrjuCxICTr/UgvJtXQOUVLpGx6HHSqhRdnhENqbJRTc6vjoiTUwzrSPsLTa+tMYHJ9 IvrcCL6TkL23UUbb9/CdSJHFCZpnFC6fxzdrlkrxMbOTMfAOMIapVJ5K3gO7p16rx2kf 7TOA== X-Gm-Message-State: AKwxytdx+xkd6w2grRuG85Gn8FVaG0BpL7CG+9dCoMMieNZa4RLpDRCW BduZxbASwnaZOzn/w+uhIhc+7A== X-Google-Smtp-Source: AH8x224elM7S+XRJDBYybYLz3Yu75y07Mym3FAeN3TEMYTcbWKTTmZ6cr8gXhT2O+usv+WjAh9v6Uw== X-Received: by 10.98.62.150 with SMTP id y22mr14031601pfj.92.1516827317869; Wed, 24 Jan 2018 12:55:17 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:17 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 05/12] cls_bpf: propagate extack to offload delete callback Date: Wed, 24 Jan 2018 12:54:17 -0800 Message-Id: <20180124205424.6976-6-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Propagate extack on removal of offloaded filter. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- net/sched/cls_bpf.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c index 323b01f76a4c..8e5326bc6440 100644 --- a/net/sched/cls_bpf.c +++ b/net/sched/cls_bpf.c @@ -212,11 +212,12 @@ static int cls_bpf_offload(struct tcf_proto *tp, struct cls_bpf_prog *prog, } static void cls_bpf_stop_offload(struct tcf_proto *tp, - struct cls_bpf_prog *prog) + struct cls_bpf_prog *prog, + struct netlink_ext_ack *extack) { int err; - err = cls_bpf_offload_cmd(tp, NULL, prog, NULL); + err = cls_bpf_offload_cmd(tp, NULL, prog, extack); if (err) pr_err("Stopping hardware offload failed: %d\n", err); } @@ -289,12 +290,13 @@ static void cls_bpf_delete_prog_rcu(struct rcu_head *rcu) tcf_queue_work(&prog->work); } -static void __cls_bpf_delete(struct tcf_proto *tp, struct cls_bpf_prog *prog) +static void __cls_bpf_delete(struct tcf_proto *tp, struct cls_bpf_prog *prog, + struct netlink_ext_ack *extack) { struct cls_bpf_head *head = rtnl_dereference(tp->root); idr_remove_ext(&head->handle_idr, prog->handle); - cls_bpf_stop_offload(tp, prog); + cls_bpf_stop_offload(tp, prog, extack); list_del_rcu(&prog->link); tcf_unbind_filter(tp, &prog->res); if (tcf_exts_get_net(&prog->exts)) @@ -308,7 +310,7 @@ static int cls_bpf_delete(struct tcf_proto *tp, void *arg, bool *last, { struct cls_bpf_head *head = rtnl_dereference(tp->root); - __cls_bpf_delete(tp, arg); + __cls_bpf_delete(tp, arg, extack); *last = list_empty(&head->plist); return 0; } @@ -320,7 +322,7 @@ static void cls_bpf_destroy(struct tcf_proto *tp, struct cls_bpf_prog *prog, *tmp; list_for_each_entry_safe(prog, tmp, &head->plist, link) - __cls_bpf_delete(tp, prog); + __cls_bpf_delete(tp, prog, extack); idr_destroy(&head->handle_idr); kfree_rcu(head, rcu); From patchwork Wed Jan 24 20:54:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865471 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="jMtWP6yr"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcrx12DSz9s7s for ; Thu, 25 Jan 2018 07:56:01 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932319AbeAXUz6 (ORCPT ); Wed, 24 Jan 2018 15:55:58 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:46216 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932487AbeAXUzU (ORCPT ); Wed, 24 Jan 2018 15:55:20 -0500 Received: by mail-pf0-f194.google.com with SMTP id y5so4055486pff.13 for ; Wed, 24 Jan 2018 12:55:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=HUnT89OzrMI0023cGz2/SB3VEKN8M1CigltP/oMCFTY=; b=jMtWP6yrpcPp3vuu6Yo48mjyxtkrK3ekMvIYdh/otPkWj53UI2FUUkySBDAEGGv76O HX/242dKHtPbHy4TCHld9K5rhLbxc1+2XGNIqRIJIojZEA0ZSx8MqcYBAECbftIOAKYj igBPPvIOT/h+6+GnXj0GZht7bAzmYtiQueL+6/tbGr08OHQP1oHK19izpbP5kcBz6TYR rU6gcJ5r4R3zdfnO5VByR65u+fj6kvvZgMvz+o6BNytiqQt3ei+9NDfpEVb17TEsSL3N beopCscnyz7sAjRUWcTdLO6d8QR9177ND05eA5aXdVrqjAADP8CbO649ac+A6f3ZWOXV CH+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=HUnT89OzrMI0023cGz2/SB3VEKN8M1CigltP/oMCFTY=; b=hQ6g0NO9XBx2h5GtnibyvsOIZwjz25+FnWMdH3v9xFkPdmduCWx6Q4x4LW4RJDj0BO ksGvKEVX+1ypT0WkH8eLbJtiQS0X1NLH/Om/kw/g8g22bWJxcsRr1LoCZYzCAPBDV8F3 35GpFDyM8GSi60rETG+4S2XRrhkQ9DUS6nLOVp2p2LJNjJjUmVPS8wGJDOaMHYQu1K4Y Qlah9My196nnYmJwsAB8+hY7DHIpkrsakoxQoLDPL3P7tBBQ6CujgpHQ6rZr6Did0EbD EesfcGYoFontk3BMKjFuwxJvyBJHXD2eLaDrn3ngNqq/xHReBJqjOFnTQoXO0GdUXqx0 s1Ew== X-Gm-Message-State: AKwxytchA7GLdI0G8Zv4buTdZVi+UzTzRNm+9wGz5icz56ocEIGdlwOc KJja9/TeP5yiAOFn2mDBih8TDg== X-Google-Smtp-Source: AH8x226jRsjfDiZr67ULOhyavzw5LzMatVW+3lHUqt1RuyDssiFeTWjf3MVdLeJsUz8vw0mKTJeb7w== X-Received: by 10.101.96.6 with SMTP id m6mr2598283pgu.131.1516827319447; Wed, 24 Jan 2018 12:55:19 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:18 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 06/12] cls_matchall: pass offload flags to tc_cls_common_offload_init() Date: Wed, 24 Jan 2018 12:54:18 -0800 Message-Id: <20180124205424.6976-7-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Pass offload flags to the new implementation of tc_cls_common_offload_init(). Extack will now only be set if user requested skip_sw. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- net/sched/cls_matchall.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/sched/cls_matchall.c b/net/sched/cls_matchall.c index a9a535a7a431..b0b8627b53d2 100644 --- a/net/sched/cls_matchall.c +++ b/net/sched/cls_matchall.c @@ -76,7 +76,7 @@ static void mall_destroy_hw_filter(struct tcf_proto *tp, struct tc_cls_matchall_offload cls_mall = {}; struct tcf_block *block = tp->chain->block; - tc_cls_common_offload_init_deprecated(&cls_mall.common, tp, NULL); + tc_cls_common_offload_init(&cls_mall.common, tp, head->flags, NULL); cls_mall.command = TC_CLSMATCHALL_DESTROY; cls_mall.cookie = cookie; @@ -94,7 +94,7 @@ static int mall_replace_hw_filter(struct tcf_proto *tp, bool skip_sw = tc_skip_sw(head->flags); int err; - tc_cls_common_offload_init_deprecated(&cls_mall.common, tp, extack); + tc_cls_common_offload_init(&cls_mall.common, tp, head->flags, extack); cls_mall.command = TC_CLSMATCHALL_REPLACE; cls_mall.exts = &head->exts; cls_mall.cookie = cookie; From patchwork Wed Jan 24 20:54:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865463 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="obvC3yYH"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcrH75YJz9s7s for ; Thu, 25 Jan 2018 07:55:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932920AbeAXUz0 (ORCPT ); Wed, 24 Jan 2018 15:55:26 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:42599 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932864AbeAXUzV (ORCPT ); Wed, 24 Jan 2018 15:55:21 -0500 Received: by mail-pg0-f65.google.com with SMTP id q67so3550088pga.9 for ; Wed, 24 Jan 2018 12:55:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=nfGCYmDqNbGb/MtDdtRL9wqPcUHaPFz3D+Oeh28ySzc=; b=obvC3yYH9Mm5dzdz24vtksEqw7xBUpIGykMkGwDerxK2LgTCLEZBZg/CUoI/br0bVn LUBYki+fqIO45SxlvfOr1bjk73m4vF652R9EAdwQ8oiem5Nxvu2ayCrUsrWhZ3hS0XNX XGLA04ANfQXjZ9zQIAxFbEIUR1n0x63ee8Ce4WaDyoFdDtnxFZtPTXD8YEKYPC4BliuA J3isoqsPmmgoi+jHVaUjwl+oK01x+4lFxDGm+41krFbH7ZmdN18U2S/c8YD6Hx+13x2k +3nbu3Nc3Vy/fIQ3NAJGY8AINtzoLl0hp0OenjwNOPbWVdQNSA3uzgDOvUGrmybuzxhE rLGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=nfGCYmDqNbGb/MtDdtRL9wqPcUHaPFz3D+Oeh28ySzc=; b=F1Wn86+62851SmjzFUGxyGsNg/YEQckzcIxR4Gh1vyLk5ITegVCFVE7DF7VuIthI64 N62X1hgerGMMDanR22fhHXWdQ6z7HYFUQLBcb7a+UdGU6e0R3BmNNCFt4s1L/vZOp02N ONEgPjvxxiUKvwOQ12Ua+nj/cW8jDG+B0T8dpZVWfrmnvabYCHKFjkctnejoSdbtrTFx g2/slnsIcwaIQneQ0jR/2WiFLlHxLYvWIVLqQqBzirCqu5q5XXjx9AtmTZWtTmHXxfGZ t8IC01EklY29PWQTCMKA1fFsB2v/oDc6e1DUZOcLcUro6loCYE/ve6mI6/oRW+8sus8i dMfQ== X-Gm-Message-State: AKwxyteOIYPLpQndHuME+0GGgAl1pnymlK/L8kjcCHEyBlSa5uvAv86G DeoMcbrjEJ5bdZor/ptVl4vS9w== X-Google-Smtp-Source: AH8x224MTXwsqu0AjNSNdcrzZwV4+9xFqydy897kPxECuxhg1U4yDKoUCBYdWUR9xomAJMxLSlD2ug== X-Received: by 10.98.238.2 with SMTP id e2mr14065561pfi.206.1516827321044; Wed, 24 Jan 2018 12:55:21 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:20 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 07/12] cls_matchall: propagate extack to delete callback Date: Wed, 24 Jan 2018 12:54:19 -0800 Message-Id: <20180124205424.6976-8-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Propagate extack on removal of offloaded filter. Don't pass extack from error paths. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- net/sched/cls_matchall.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/net/sched/cls_matchall.c b/net/sched/cls_matchall.c index b0b8627b53d2..2ba721a590a7 100644 --- a/net/sched/cls_matchall.c +++ b/net/sched/cls_matchall.c @@ -71,12 +71,13 @@ static void mall_destroy_rcu(struct rcu_head *rcu) static void mall_destroy_hw_filter(struct tcf_proto *tp, struct cls_mall_head *head, - unsigned long cookie) + unsigned long cookie, + struct netlink_ext_ack *extack) { struct tc_cls_matchall_offload cls_mall = {}; struct tcf_block *block = tp->chain->block; - tc_cls_common_offload_init(&cls_mall.common, tp, head->flags, NULL); + tc_cls_common_offload_init(&cls_mall.common, tp, head->flags, extack); cls_mall.command = TC_CLSMATCHALL_DESTROY; cls_mall.cookie = cookie; @@ -102,7 +103,7 @@ static int mall_replace_hw_filter(struct tcf_proto *tp, err = tc_setup_cb_call(block, NULL, TC_SETUP_CLSMATCHALL, &cls_mall, skip_sw); if (err < 0) { - mall_destroy_hw_filter(tp, head, cookie); + mall_destroy_hw_filter(tp, head, cookie, NULL); return err; } else if (err > 0) { tcf_block_offload_inc(block, &head->flags); @@ -122,7 +123,7 @@ static void mall_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) return; if (!tc_skip_hw(head->flags)) - mall_destroy_hw_filter(tp, head, (unsigned long) head); + mall_destroy_hw_filter(tp, head, (unsigned long) head, extack); if (tcf_exts_get_net(&head->exts)) call_rcu(&head->rcu, mall_destroy_rcu); From patchwork Wed Jan 24 20:54:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865466 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="Zv0kP4q1"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcrX6Jv1z9s7s for ; Thu, 25 Jan 2018 07:55:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932904AbeAXUzZ (ORCPT ); Wed, 24 Jan 2018 15:55:25 -0500 Received: from mail-pg0-f66.google.com ([74.125.83.66]:42602 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932507AbeAXUzX (ORCPT ); Wed, 24 Jan 2018 15:55:23 -0500 Received: by mail-pg0-f66.google.com with SMTP id q67so3550127pga.9 for ; Wed, 24 Jan 2018 12:55:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qYwOifevKWYxCELbbKuLD/OMI5/j2lrpsFv8ALXPW6Y=; b=Zv0kP4q1SJDXzjodzp5wApbHd3LCNi7VkQSi3qidl7STDDAiT5E7QgCSNAqn5wGRQA ZBjNRVxCRF4YDXXpNk4dgJFoPY6DI3LfE4Kh0+jfC9NcFPAOo8zjeqH8/Pb1DVZc7aUP hWt7kzCwOzFYHFYNcDKUer655d9tegofCJTPvYctC/9hwmDpyar2oZ8R59LhQWyXsz5p pLt9esKEg5dAs1ChM7INWNEyAVaczCQmxQpKT+PLC9IqdPMiY7U2vMtWq38ZniXeB8Md NZ9CItC/n/oQmiYkrej9tD7DRMq/bwlpgG4FN3ePPmgouvtIOjo4UaRsswf5jacvAxlX 1oMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qYwOifevKWYxCELbbKuLD/OMI5/j2lrpsFv8ALXPW6Y=; b=RDeSNbggXEl0ydc1xrnH1BTUFnjiK+DocnDiq3J0n9iXRS7EPZY1oEz8EU29JuHCAS VpRcmJADut1IwgesuZAi5wbgAONTVUQxQsatHsTd4CflmErBZ1tYz0wxTATqiU98FpPy G+wB708L0OJf6ylkclw/68z4inCrOxFORy6LJDPT1XFc/zqDQAxUJ031LYybcd/97OT5 WVI2HatlCa9tvDzDayvXtZatOOJLiVYPQKiS0kBz2nnnJJJpsZGWeGC5hN1zsr03rf22 AhIXR8KG27s0EdheGloq+8ZBsh+jDj5uwG/LaJMp+j+DuhGJon6CNVC1NFZuFRsAcUf6 G/RQ== X-Gm-Message-State: AKwxytdPM+WKsmXrKcz8tZNSH/iETHVmGMD70fJVRkWrhcyFmuFjXKy5 cXPAbdtJxVuaE+f7UhU9Y671mg== X-Google-Smtp-Source: AH8x227MGOfciIZOKEEk9xG8Us6/R07c0qNUfd4w9OPgOh9ACUBQcW2dAbp2ggdE5B3ygDk0fYrsaw== X-Received: by 2002:a17:902:1a2:: with SMTP id b31-v6mr8452736plb.28.1516827322618; Wed, 24 Jan 2018 12:55:22 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:22 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 08/12] cls_flower: pass offload flags to tc_cls_common_offload_init() Date: Wed, 24 Jan 2018 12:54:20 -0800 Message-Id: <20180124205424.6976-9-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Pass offload flags to the new implementation of tc_cls_common_offload_init(). Extack will now only be set if user requested skip_sw. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- net/sched/cls_flower.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 3f2654ca8ff7..79aa5049f028 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -223,7 +223,7 @@ static void fl_hw_destroy_filter(struct tcf_proto *tp, struct cls_fl_filter *f) struct tc_cls_flower_offload cls_flower = {}; struct tcf_block *block = tp->chain->block; - tc_cls_common_offload_init_deprecated(&cls_flower.common, tp, NULL); + tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, NULL); cls_flower.command = TC_CLSFLOWER_DESTROY; cls_flower.cookie = (unsigned long) f; @@ -243,7 +243,7 @@ static int fl_hw_replace_filter(struct tcf_proto *tp, bool skip_sw = tc_skip_sw(f->flags); int err; - tc_cls_common_offload_init_deprecated(&cls_flower.common, tp, extack); + tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, extack); cls_flower.command = TC_CLSFLOWER_REPLACE; cls_flower.cookie = (unsigned long) f; cls_flower.dissector = dissector; @@ -272,7 +272,7 @@ static void fl_hw_update_stats(struct tcf_proto *tp, struct cls_fl_filter *f) struct tc_cls_flower_offload cls_flower = {}; struct tcf_block *block = tp->chain->block; - tc_cls_common_offload_init_deprecated(&cls_flower.common, tp, NULL); + tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, NULL); cls_flower.command = TC_CLSFLOWER_STATS; cls_flower.cookie = (unsigned long) f; cls_flower.exts = &f->exts; From patchwork Wed Jan 24 20:54:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865468 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="KIP/j0QC"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcrl1Dqcz9s7s for ; Thu, 25 Jan 2018 07:55:51 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932921AbeAXUzs (ORCPT ); Wed, 24 Jan 2018 15:55:48 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:33028 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932894AbeAXUzY (ORCPT ); Wed, 24 Jan 2018 15:55:24 -0500 Received: by mail-pg0-f68.google.com with SMTP id u1so3563024pgr.0 for ; Wed, 24 Jan 2018 12:55:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ne7xaf4EE2KN+ygAr3a+pe0UFCC5ajnEwMb/vdYNkh8=; b=KIP/j0QCxYIS0eUBXvTihv2S2ezX40piKX0RWceLjYs5kxPQOqnftb8NIuafVd+7Jy XIRmO8wCURmfqBp2HDWEOtEe/am909P7EoPP//whHyAw+H4KMe+cQUgkJENRMCetTlIf YDR4TLOhRk5yGn9Bjc51H8Va7IT2RVAbLFxibIJ2Tb+wtfqFoej48+IO6/NY0ZsBUmyC 1FQCoPvsSWYIGm/B02QJhm4a3bz/0Z5UgG/VE4JuMovfxvgUXFHLCXWemj1w7FE3+79Q hrPp+WTGavBoN9l9zVg/Afgkk6A0Jwf9xnwuAoIAB3deBmBnv3YcBVV78vbBWGpyohuK sdYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ne7xaf4EE2KN+ygAr3a+pe0UFCC5ajnEwMb/vdYNkh8=; b=qIYZ/O5D1zhnp4YFv9+ctM3n6+1z08O4lLZi7xYnmre2Be5taqRYapNHc4k19vgzNl v1YpCas7c1nGFEHKxOBaufpJpsPE51t+m54UgzvVjyG2rIHaPHSOSxgFzfDAAGmiX0G6 gK6GTVmlhgLRPQDiVuA5l+YO7suZP6OgbcvOV7vpeoE2EsTh92t2hC4d3iwN0gq3CEHk lYmswGUZTMGI+vcOBtZabISZKwvxd7Lt7CW7ZROVMkn4rT0X/cBAYeBktlruNGJTxweA eHTBEaXwteuX0oysipRwxCOKjzkFQkyCZddoLlzGbLcG0c+HSCpPiaN4g791c8udQddv 9EbQ== X-Gm-Message-State: AKwxytecC4R3qePkH1Ib4Qma/FAfSNvF0pokyjt4CHiVuuAtkSpAdtls d8mG5ydpmZ+jMSki8zriTaqvyA== X-Google-Smtp-Source: AH8x2251/ermNuqScTbRoVKOhMUZBzRGPLjf+PPpfG1dpLWPzafeOVcYImEURb2Yv+IN/12OeOD/zA== X-Received: by 2002:a17:902:51a9:: with SMTP id y38-v6mr9369188plh.223.1516827324438; Wed, 24 Jan 2018 12:55:24 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:24 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 09/12] cls_flower: propagate extack to delete callback Date: Wed, 24 Jan 2018 12:54:21 -0800 Message-Id: <20180124205424.6976-10-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Propagate extack on removal of offloaded filter. Don't pass extack from error paths. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- net/sched/cls_flower.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 79aa5049f028..dc9acaafc0a8 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -218,12 +218,13 @@ static void fl_destroy_filter(struct rcu_head *head) tcf_queue_work(&f->work); } -static void fl_hw_destroy_filter(struct tcf_proto *tp, struct cls_fl_filter *f) +static void fl_hw_destroy_filter(struct tcf_proto *tp, struct cls_fl_filter *f, + struct netlink_ext_ack *extack) { struct tc_cls_flower_offload cls_flower = {}; struct tcf_block *block = tp->chain->block; - tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, NULL); + tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, extack); cls_flower.command = TC_CLSFLOWER_DESTROY; cls_flower.cookie = (unsigned long) f; @@ -255,7 +256,7 @@ static int fl_hw_replace_filter(struct tcf_proto *tp, err = tc_setup_cb_call(block, &f->exts, TC_SETUP_CLSFLOWER, &cls_flower, skip_sw); if (err < 0) { - fl_hw_destroy_filter(tp, f); + fl_hw_destroy_filter(tp, f, NULL); return err; } else if (err > 0) { tcf_block_offload_inc(block, &f->flags); @@ -282,14 +283,15 @@ static void fl_hw_update_stats(struct tcf_proto *tp, struct cls_fl_filter *f) &cls_flower, false); } -static void __fl_delete(struct tcf_proto *tp, struct cls_fl_filter *f) +static void __fl_delete(struct tcf_proto *tp, struct cls_fl_filter *f, + struct netlink_ext_ack *extack) { struct cls_fl_head *head = rtnl_dereference(tp->root); idr_remove_ext(&head->handle_idr, f->handle); list_del_rcu(&f->list); if (!tc_skip_hw(f->flags)) - fl_hw_destroy_filter(tp, f); + fl_hw_destroy_filter(tp, f, extack); tcf_unbind_filter(tp, &f->res); if (tcf_exts_get_net(&f->exts)) call_rcu(&f->rcu, fl_destroy_filter); @@ -321,7 +323,7 @@ static void fl_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) struct cls_fl_filter *f, *next; list_for_each_entry_safe(f, next, &head->filters, list) - __fl_delete(tp, f); + __fl_delete(tp, f, extack); idr_destroy(&head->handle_idr); __module_get(THIS_MODULE); @@ -958,7 +960,7 @@ static int fl_change(struct net *net, struct sk_buff *in_skb, rhashtable_remove_fast(&head->ht, &fold->ht_node, head->ht_params); if (!tc_skip_hw(fold->flags)) - fl_hw_destroy_filter(tp, fold); + fl_hw_destroy_filter(tp, fold, NULL); } *arg = fnew; @@ -997,7 +999,7 @@ static int fl_delete(struct tcf_proto *tp, void *arg, bool *last, if (!tc_skip_sw(f->flags)) rhashtable_remove_fast(&head->ht, &f->ht_node, head->ht_params); - __fl_delete(tp, f); + __fl_delete(tp, f, extack); *last = list_empty(&head->filters); return 0; } From patchwork Wed Jan 24 20:54:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865464 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="0VWB3QJW"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcrL5Wvvz9s7s for ; Thu, 25 Jan 2018 07:55:30 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932933AbeAXUz2 (ORCPT ); Wed, 24 Jan 2018 15:55:28 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:40225 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932864AbeAXUz0 (ORCPT ); Wed, 24 Jan 2018 15:55:26 -0500 Received: by mail-pg0-f68.google.com with SMTP id g16so3553938pgn.7 for ; Wed, 24 Jan 2018 12:55:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=E0yEVcwO88J8E5hJX5bGbavvJ1eFhpD/FZsqu8RL/vo=; b=0VWB3QJWmqvwtg+Wolq+9pv2ffUAdZSikWxpEjLS+QNNr4K7dFR6aZG1eIHTmCpan1 kafFHHOdlPI5R0ddblRDxYdHbGQig4GTYaRh6whL0FD6d/BrJn+Zf7pArqNl1ucPQeUw xRo//NWjQyyXZnxDgLTE1XO3cprYiMd8N0DsByWiDhQXmjSZmVCQQRqzTOa1fVX+Vcgu Op9JlNobBRiKGIRGE/PouMbBCx/jWbgJskZg8WPHqUMW4dkOngQshoZZDzdxYTFiwQMr RzHl4vqG1hvfwxENt3nW55Os3WnZTRMt4KTuGcRjRxY1kQiCvdvp3EepCvT8X8imWvRe lXVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=E0yEVcwO88J8E5hJX5bGbavvJ1eFhpD/FZsqu8RL/vo=; b=q0zsm3/6TU34FYIWTlpF/I8V1DeHXoOnxEdMvRuTliWs43aKR1D7zrES/OGq20Zy/F S1gtdZnznZ8XcIc+gtyapsVtH7UHCOediB6dqkNXfIs6qRt70328bRgUhgUxGbu6Xthn TeHJ1oq61HNPU17fm9sWaa8rKGsyW9qjaYVKQn1YiET3f51fR7pynj4/KYno2BL5nHXq kLTEIOZwK8o8NDXwEIQ5SNEqGUseMqGF42OX2vG1S44/kg7sLSDJRN9RW/XFdjr3KUbI llHnrebecV/NlzeFFTCuIvXQZGBvdiLREJa9nUM3+xK8rehzt7w/SbVFzq4aQtD17vTE QtpQ== X-Gm-Message-State: AKwxytchiF9gassiDef1WxwwWsWrcPqDqNAjudtgQejREiRUs8e11nIP RoI9EHI7weRaViAzwEsjSjVhWw== X-Google-Smtp-Source: AH8x226c/3ciPxC8EVUsHshqw3e56b0clmNsbrH9wYF24n1Hh+bV8C2vsqRjayY3suXuRnVkrAddnA== X-Received: by 2002:a17:902:8f8b:: with SMTP id z11-v6mr9354854plo.43.1516827326015; Wed, 24 Jan 2018 12:55:26 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:25 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 10/12] cls_u32: pass offload flags to tc_cls_common_offload_init() Date: Wed, 24 Jan 2018 12:54:22 -0800 Message-Id: <20180124205424.6976-11-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Pass offload flags to the new implementation of tc_cls_common_offload_init(). Extack will now only be set if user requested skip_sw. hnodes need to hold onto the flags now to be able to reuse them on filter removal. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- net/sched/cls_u32.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c index e2e8d08c4a0d..21e84abe4226 100644 --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c @@ -87,6 +87,7 @@ struct tc_u_hnode { unsigned int divisor; struct idr handle_idr; struct rcu_head rcu; + u32 flags; /* The 'ht' field MUST be the last field in structure to allow for * more entries allocated at end of structure. */ @@ -491,7 +492,7 @@ static void u32_clear_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h) struct tcf_block *block = tp->chain->block; struct tc_cls_u32_offload cls_u32 = {}; - tc_cls_common_offload_init_deprecated(&cls_u32.common, tp, NULL); + tc_cls_common_offload_init(&cls_u32.common, tp, h->flags, NULL); cls_u32.command = TC_CLSU32_DELETE_HNODE; cls_u32.hnode.divisor = h->divisor; cls_u32.hnode.handle = h->handle; @@ -509,7 +510,7 @@ static int u32_replace_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h, bool offloaded = false; int err; - tc_cls_common_offload_init_deprecated(&cls_u32.common, tp, extack); + tc_cls_common_offload_init(&cls_u32.common, tp, flags, extack); cls_u32.command = TC_CLSU32_NEW_HNODE; cls_u32.hnode.divisor = h->divisor; cls_u32.hnode.handle = h->handle; @@ -534,7 +535,7 @@ static void u32_remove_hw_knode(struct tcf_proto *tp, struct tc_u_knode *n) struct tcf_block *block = tp->chain->block; struct tc_cls_u32_offload cls_u32 = {}; - tc_cls_common_offload_init_deprecated(&cls_u32.common, tp, NULL); + tc_cls_common_offload_init(&cls_u32.common, tp, n->flags, NULL); cls_u32.command = TC_CLSU32_DELETE_KNODE; cls_u32.knode.handle = n->handle; @@ -550,7 +551,7 @@ static int u32_replace_hw_knode(struct tcf_proto *tp, struct tc_u_knode *n, bool skip_sw = tc_skip_sw(flags); int err; - tc_cls_common_offload_init_deprecated(&cls_u32.common, tp, extack); + tc_cls_common_offload_init(&cls_u32.common, tp, flags, extack); cls_u32.command = TC_CLSU32_REPLACE_KNODE; cls_u32.knode.handle = n->handle; cls_u32.knode.fshift = n->fshift; @@ -1015,6 +1016,7 @@ static int u32_change(struct net *net, struct sk_buff *in_skb, ht->handle = handle; ht->prio = tp->prio; idr_init(&ht->handle_idr); + ht->flags = flags; err = u32_replace_hw_hnode(tp, ht, flags, extack); if (err) { From patchwork Wed Jan 24 20:54:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865467 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="uj2+pKiV"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcrZ6hQgz9s7s for ; Thu, 25 Jan 2018 07:55:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932951AbeAXUzk (ORCPT ); Wed, 24 Jan 2018 15:55:40 -0500 Received: from mail-pf0-f195.google.com ([209.85.192.195]:41750 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932921AbeAXUz2 (ORCPT ); Wed, 24 Jan 2018 15:55:28 -0500 Received: by mail-pf0-f195.google.com with SMTP id c6so4062528pfi.8 for ; Wed, 24 Jan 2018 12:55:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=SPKQCtJ5i5DRTHa5xWcI3s0xmY7yfKqlvJj4VU3bu68=; b=uj2+pKiVYbeESrpPSoJRxstN+Ofw203QFTlcvVqeqDyWeFd62uc6970Nh2NmBU2ibd r/cMiG+XkfcCEopWZewAO4+0CUAovr3ZzHEsSX48Au+QuKJVgMFWoCQHoykxpNVSIEmg WGxIbSo9WQdZru9oKcVuP4A3Qpunsq3/jorbavzcgWoU/sMvqUZKkFdxTQnqfgQVmrKs X8dgMWPqwXvdzQLUCbmiuywRNJGZTekiAIRyYd8i72VEaYqP5SQts35N8G308XcYOxy9 EyhsATuh4fCtDZ7FffpMAhtFrlzvBblB2JXmv/boY7ESz2avMFaMuu5OtnTJdxYPaznr HEeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=SPKQCtJ5i5DRTHa5xWcI3s0xmY7yfKqlvJj4VU3bu68=; b=njp4wEJwx2zN5CtwP3Z+8YWjzxka2QLUDu/vcKm0yR0yuDa1XrGehOaVmPTcgOUX/N D3TgEOQ+Abb0Lg18tnOjWBeP0erAC813ISi3HsF1wNWHIKyk21G2HfOgi/VfoEeZqiPZ NFthFIVeEp3CfOuPxlT32tIMtycf6Y0wd1PMfwl41Y5whHlSSynMdKpQ+xgWjgiIS1gy CJ4RA0YokvLvqzhaBQkvnIlJyw0L6VGG5wWjszLGj9/YlKwT42fu29PNkp5dEYKxabTK NNHZ/9KA2IW6b+6LhP5xbsJdqkro8uuNgLWZbwM8qUkja8r5QEkW/+JTJNcMm6khR40D OfgA== X-Gm-Message-State: AKwxytdGRPb2W5FF7bniehFQqkRSzWXLqOYdT8bZEtGlvhnrMDB/j2Z5 jZgz0fzz31My9LGAyrv20IraYA== X-Google-Smtp-Source: AH8x226I1x5Erir5vGs7OIaR66eU9ELEsgS1HfrE2efrAcy68IHvsfKWWE4cnni795dScv5NziHDcA== X-Received: by 10.99.154.73 with SMTP id e9mr9872691pgo.26.1516827327598; Wed, 24 Jan 2018 12:55:27 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:27 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 11/12] cls_u32: propagate extack to delete callback Date: Wed, 24 Jan 2018 12:54:23 -0800 Message-Id: <20180124205424.6976-12-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Propagate extack on removal of offloaded filter. Don't pass extack from error paths. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- net/sched/cls_u32.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c index 21e84abe4226..60c892c36a60 100644 --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c @@ -487,12 +487,13 @@ static int u32_delete_key(struct tcf_proto *tp, struct tc_u_knode *key) return 0; } -static void u32_clear_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h) +static void u32_clear_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h, + struct netlink_ext_ack *extack) { struct tcf_block *block = tp->chain->block; struct tc_cls_u32_offload cls_u32 = {}; - tc_cls_common_offload_init(&cls_u32.common, tp, h->flags, NULL); + tc_cls_common_offload_init(&cls_u32.common, tp, h->flags, extack); cls_u32.command = TC_CLSU32_DELETE_HNODE; cls_u32.hnode.divisor = h->divisor; cls_u32.hnode.handle = h->handle; @@ -518,7 +519,7 @@ static int u32_replace_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h, err = tc_setup_cb_call(block, NULL, TC_SETUP_CLSU32, &cls_u32, skip_sw); if (err < 0) { - u32_clear_hw_hnode(tp, h); + u32_clear_hw_hnode(tp, h, NULL); return err; } else if (err > 0) { offloaded = true; @@ -530,12 +531,13 @@ static int u32_replace_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h, return 0; } -static void u32_remove_hw_knode(struct tcf_proto *tp, struct tc_u_knode *n) +static void u32_remove_hw_knode(struct tcf_proto *tp, struct tc_u_knode *n, + struct netlink_ext_ack *extack) { struct tcf_block *block = tp->chain->block; struct tc_cls_u32_offload cls_u32 = {}; - tc_cls_common_offload_init(&cls_u32.common, tp, n->flags, NULL); + tc_cls_common_offload_init(&cls_u32.common, tp, n->flags, extack); cls_u32.command = TC_CLSU32_DELETE_KNODE; cls_u32.knode.handle = n->handle; @@ -569,7 +571,7 @@ static int u32_replace_hw_knode(struct tcf_proto *tp, struct tc_u_knode *n, err = tc_setup_cb_call(block, NULL, TC_SETUP_CLSU32, &cls_u32, skip_sw); if (err < 0) { - u32_remove_hw_knode(tp, n); + u32_remove_hw_knode(tp, n, NULL); return err; } else if (err > 0) { tcf_block_offload_inc(block, &n->flags); @@ -581,7 +583,8 @@ static int u32_replace_hw_knode(struct tcf_proto *tp, struct tc_u_knode *n, return 0; } -static void u32_clear_hnode(struct tcf_proto *tp, struct tc_u_hnode *ht) +static void u32_clear_hnode(struct tcf_proto *tp, struct tc_u_hnode *ht, + struct netlink_ext_ack *extack) { struct tc_u_knode *n; unsigned int h; @@ -591,7 +594,7 @@ static void u32_clear_hnode(struct tcf_proto *tp, struct tc_u_hnode *ht) RCU_INIT_POINTER(ht->ht[h], rtnl_dereference(n->next)); tcf_unbind_filter(tp, &n->res); - u32_remove_hw_knode(tp, n); + u32_remove_hw_knode(tp, n, extack); idr_remove_ext(&ht->handle_idr, n->handle); if (tcf_exts_get_net(&n->exts)) call_rcu(&n->rcu, u32_delete_key_freepf_rcu); @@ -601,7 +604,8 @@ static void u32_clear_hnode(struct tcf_proto *tp, struct tc_u_hnode *ht) } } -static int u32_destroy_hnode(struct tcf_proto *tp, struct tc_u_hnode *ht) +static int u32_destroy_hnode(struct tcf_proto *tp, struct tc_u_hnode *ht, + struct netlink_ext_ack *extack) { struct tc_u_common *tp_c = tp->data; struct tc_u_hnode __rcu **hn; @@ -609,14 +613,14 @@ static int u32_destroy_hnode(struct tcf_proto *tp, struct tc_u_hnode *ht) WARN_ON(ht->refcnt); - u32_clear_hnode(tp, ht); + u32_clear_hnode(tp, ht, extack); hn = &tp_c->hlist; for (phn = rtnl_dereference(*hn); phn; hn = &phn->next, phn = rtnl_dereference(*hn)) { if (phn == ht) { - u32_clear_hw_hnode(tp, ht); + u32_clear_hw_hnode(tp, ht, extack); idr_destroy(&ht->handle_idr); idr_remove_ext(&tp_c->handle_idr, ht->handle); RCU_INIT_POINTER(*hn, ht->next); @@ -647,7 +651,7 @@ static void u32_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) WARN_ON(root_ht == NULL); if (root_ht && --root_ht->refcnt == 0) - u32_destroy_hnode(tp, root_ht); + u32_destroy_hnode(tp, root_ht, extack); if (--tp_c->refcnt == 0) { struct tc_u_hnode *ht; @@ -658,7 +662,7 @@ static void u32_destroy(struct tcf_proto *tp, struct netlink_ext_ack *extack) ht; ht = rtnl_dereference(ht->next)) { ht->refcnt--; - u32_clear_hnode(tp, ht); + u32_clear_hnode(tp, ht, extack); } while ((ht = rtnl_dereference(tp_c->hlist)) != NULL) { @@ -685,7 +689,7 @@ static int u32_delete(struct tcf_proto *tp, void *arg, bool *last, goto out; if (TC_U32_KEY(ht->handle)) { - u32_remove_hw_knode(tp, (struct tc_u_knode *)ht); + u32_remove_hw_knode(tp, (struct tc_u_knode *)ht, extack); ret = u32_delete_key(tp, (struct tc_u_knode *)ht); goto out; } @@ -697,7 +701,7 @@ static int u32_delete(struct tcf_proto *tp, void *arg, bool *last, if (ht->refcnt == 1) { ht->refcnt--; - u32_destroy_hnode(tp, ht); + u32_destroy_hnode(tp, ht, extack); } else { NL_SET_ERR_MSG_MOD(extack, "Can not delete in-use filter"); return -EBUSY; From patchwork Wed Jan 24 20:54:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 865465 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="TBtJ/xS5"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zRcrR0p03z9s7s for ; Thu, 25 Jan 2018 07:55:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932238AbeAXUzc (ORCPT ); Wed, 24 Jan 2018 15:55:32 -0500 Received: from mail-pg0-f66.google.com ([74.125.83.66]:42613 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932864AbeAXUz3 (ORCPT ); Wed, 24 Jan 2018 15:55:29 -0500 Received: by mail-pg0-f66.google.com with SMTP id q67so3550312pga.9 for ; Wed, 24 Jan 2018 12:55:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=j5a4ucIilfz+5Nkp7TY1sfIPlss54eAzMhEMe6f3TrQ=; b=TBtJ/xS5jrOVPJZe2kHSdgUxYCjX40XSNAENV7It1Rd8EWA6cxNmp5YBBzpMsA24uk ifndtKWklmwZp/Kt7Be09bCmNcKhVS2gC2rvio4YRNzlxafzC9jFqbBXUfdt6OETxdr/ OThqUjhOz34gM3pwQb9Ln3pQO01TBvVrhsCQ3Ss27aPE1ErNNkqPaOQqsilGQ6ks2ohA JdifFeBMsSyIunHWR68zvVsBA96BO9zDYdpiwpS1mcFATDzveGrY69FGGo8mfJdtqlKK 6fkrZ9Ckvvg5Rxyb5Iv44h7TtE7Q6LXbGVbcr8HxpdGrewohxAfgUXZdVVpRyPHtLTE/ QHzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=j5a4ucIilfz+5Nkp7TY1sfIPlss54eAzMhEMe6f3TrQ=; b=b5g4GbiLNNKojK9YjpKjNrlyV7gYKb2g8dwptCX52agnS8XkwL9k4fjSJZyLA4dHJh CH3g2NU8HJGLafO6cxPVLvGzsaqzCCQbDJw9p7tvyymw/Dhr5f8/7Xvvm6dmOR4GJKXe 7te7bCwCy1cxzPgN/ZgjFFNU05N3HBO/o+Z8bm8GvTp7yR5QbaMw4SKjOEdIsKfgvwTM 5GgtYsKoMVxQ2ZZYv8+RI/gJMUuqBrgpD4STbNdlOu05JH1bHP+N6s5mQzH0tFzhziEc 46dGU7Trg4gxQ7HBwYDaEcJkrj0qBfVxcZlHyHsDRoGLYcMa/BU+0vbDYW6dOV/pZzBu 3MHA== X-Gm-Message-State: AKwxytfKcqaobnkyjWltjJg6Js+vb58jZjLeKB3rR0+oUwnPGVY4c2H1 WRjxWA9pQXm26v4EuM8egujX5Q== X-Google-Smtp-Source: AH8x224KHZ5FxmRbn1vii6OvfjHkH+/LqSXgwMqM4OjTznihxFsWTpHa0u//dd3DPCOB2cBLLfRkeQ== X-Received: by 10.99.111.193 with SMTP id k184mr11273040pgc.378.1516827329147; Wed, 24 Jan 2018 12:55:29 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id g13sm15305612pfe.50.2018.01.24.12.55.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 12:55:28 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us, dsahern@gmail.com, daniel@iogearbox.net, john.fastabend@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, aring@mojatatu.com, Jakub Kicinski Subject: [PATCH net-next v2 12/12] net: sched: remove tc_cls_common_offload_init_deprecated() Date: Wed, 24 Jan 2018 12:54:24 -0800 Message-Id: <20180124205424.6976-13-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124205424.6976-1-jakub.kicinski@netronome.com> References: <20180124205424.6976-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org All users are now converted to tc_cls_common_offload_init(). Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- include/net/pkt_cls.h | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 85cee929b9ce..1a41513cec7f 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -605,17 +605,6 @@ struct tc_cls_common_offload { struct netlink_ext_ack *extack; }; -static inline void -tc_cls_common_offload_init_deprecated(struct tc_cls_common_offload *cls_common, - const struct tcf_proto *tp, - struct netlink_ext_ack *extack) -{ - cls_common->chain_index = tp->chain->index; - cls_common->protocol = tp->protocol; - cls_common->prio = tp->prio; - cls_common->extack = extack; -} - struct tc_cls_u32_knode { struct tcf_exts *exts; struct tc_u32_sel *sel;