From patchwork Thu Mar 3 14:55:53 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amir Vadai X-Patchwork-Id: 591474 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 02D1914178F for ; Fri, 4 Mar 2016 01:52:16 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758043AbcCCOwL (ORCPT ); Thu, 3 Mar 2016 09:52:11 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:36045 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758016AbcCCOwH (ORCPT ); Thu, 3 Mar 2016 09:52:07 -0500 Received: by mail-wm0-f68.google.com with SMTP id l68so4473308wml.3 for ; Thu, 03 Mar 2016 06:52:05 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Zq5l/fvsu2vMLIUKxaR/g/hHrFXDf0VkeVYUYMJZRfM=; b=b2Wys66mjGdXDdNeOmEGXjTxfmuFokIbZfXA1HkrYfPDbwYD9XM0Ulg2teAJxHP8vY S7v7J5ybdtClLiERmOTRlbcseEm4dSQE5CQJk+mBhxPw26KOfiR1prjhQ6ODFeT9YHS8 R0hy9KH63fYGpeUVV+BRcYOt10FozlJ0ULtCeAYc8DPAyPcwnNfLkP9zrIbFNJP2ZsNs kYiMALTqSzA0Y5ZFSpYiWIPBX0Cv2D+5b41FxYg2alw/w50pq338hGljwY/yL9zuu4AE Z5K5LipVmRWLQjy03xOoT14DJVMzsL+dXl9tFO4GZ4EloV+bMc/igSZAVDrIlqXVo77I 0tdw== X-Gm-Message-State: AD7BkJLr917LYtB6WMvh7WxC4QipUe+B1ulyP48ir5xmShoQ0ZN9ZnGIEMDX6Vi3uhqvgw== X-Received: by 10.28.14.140 with SMTP id 134mr6139031wmo.39.1457016724941; Thu, 03 Mar 2016 06:52:04 -0800 (PST) Received: from localhost.localdomain (212.116.172.4.static.012.net.il. [212.116.172.4]) by smtp.gmail.com with ESMTPSA id y3sm9304575wmy.17.2016.03.03.06.52.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 03 Mar 2016 06:52:04 -0800 (PST) From: Amir Vadai To: "David S. Miller" Cc: netdev@vger.kernel.org, John Fastabend , Jiri Pirko , Or Gerlitz , Saeed Mahameed , Hadar Har-Zion , Rony Efraim , Amir Vadai Subject: [PATCH net-next V2 03/10] net/sched: Macro instead of CONFIG_NET_CLS_ACT ifdef Date: Thu, 3 Mar 2016 16:55:53 +0200 Message-Id: <1457016960-27832-4-git-send-email-amir@vadai.me> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1457016960-27832-1-git-send-email-amir@vadai.me> References: <1457016960-27832-1-git-send-email-amir@vadai.me> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Introduce the macros tc_no_actions and tc_for_each_action to make code clearer. Suggested-by: Jiri Pirko Signed-off-by: Amir Vadai Acked-by: Jiri Pirko Acked-by: John Fastabend --- include/net/act_api.h | 21 ++++++++++++++++----- include/net/tc_act/tc_gact.h | 4 ++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/include/net/act_api.h b/include/net/act_api.h index 342be6c..2a19fe1 100644 --- a/include/net/act_api.h +++ b/include/net/act_api.h @@ -78,11 +78,6 @@ static inline void tcf_lastuse_update(struct tcf_t *tm) tm->lastuse = now; } -#ifdef CONFIG_NET_CLS_ACT - -#define ACT_P_CREATED 1 -#define ACT_P_DELETED 1 - struct tc_action { void *priv; const struct tc_action_ops *ops; @@ -92,6 +87,11 @@ struct tc_action { struct tcf_hashinfo *hinfo; }; +#ifdef CONFIG_NET_CLS_ACT + +#define ACT_P_CREATED 1 +#define ACT_P_DELETED 1 + struct tc_action_ops { struct list_head head; char kind[IFNAMSIZ]; @@ -171,5 +171,16 @@ int tcf_action_dump(struct sk_buff *skb, struct list_head *, int, int); int tcf_action_dump_old(struct sk_buff *skb, struct tc_action *a, int, int); int tcf_action_dump_1(struct sk_buff *skb, struct tc_action *a, int, int); int tcf_action_copy_stats(struct sk_buff *, struct tc_action *, int); + +#define tc_no_actions(_exts) \ + (list_empty(&(_exts)->actions)) + +#define tc_for_each_action(_a, _exts) \ + list_for_each_entry(a, &(_exts)->actions, list) +#else /* CONFIG_NET_CLS_ACT */ + +#define tc_no_actions(_exts) true +#define tc_for_each_action(_a, _exts) while (0) + #endif /* CONFIG_NET_CLS_ACT */ #endif diff --git a/include/net/tc_act/tc_gact.h b/include/net/tc_act/tc_gact.h index 04a3183..93c520b 100644 --- a/include/net/tc_act/tc_gact.h +++ b/include/net/tc_act/tc_gact.h @@ -16,9 +16,9 @@ struct tcf_gact { #define to_gact(a) \ container_of(a->priv, struct tcf_gact, common) -#ifdef CONFIG_NET_CLS_ACT static inline bool is_tcf_gact_shot(const struct tc_action *a) { +#ifdef CONFIG_NET_CLS_ACT struct tcf_gact *gact; if (a->ops && a->ops->type != TCA_ACT_GACT) @@ -28,7 +28,7 @@ static inline bool is_tcf_gact_shot(const struct tc_action *a) if (gact->tcf_action == TC_ACT_SHOT) return true; +#endif return false; } -#endif #endif /* __NET_TC_GACT_H */