From patchwork Tue Jan 16 17:20:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Aring X-Patchwork-Id: 861788 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=mojatatu-com.20150623.gappssmtp.com header.i=@mojatatu-com.20150623.gappssmtp.com header.b="EhbpTHe+"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zLcSZ4ffzz9t5b for ; Wed, 17 Jan 2018 04:21:02 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751254AbeAPRU7 (ORCPT ); Tue, 16 Jan 2018 12:20:59 -0500 Received: from mail-it0-f68.google.com ([209.85.214.68]:43373 "EHLO mail-it0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751118AbeAPRU5 (ORCPT ); Tue, 16 Jan 2018 12:20:57 -0500 Received: by mail-it0-f68.google.com with SMTP id u62so5753635ita.2 for ; Tue, 16 Jan 2018 09:20:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mojatatu-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=xwcgGhf6mNNwpAPlIpbEpG55ceh0WOROuktV+eBxFRs=; b=EhbpTHe+9uIR6rJ8PjRMeRz3j8+xHbtwTkITG3hg1AQAkbg1E/G9WX6hdu8tTCD1XW xgcNOc8HdjzdODC5IcCr8IsdD25zBAphRJxBXAc8fvq6LzqONCUzp+OvaQufRyH+R/4n N0WVgcN47jXeM4fvUUxnGrkEA0NlpcjWYynrO5UkQJ/AiV6iWwrG7SHmNJfp9Pazkvla lC1cxl7HwueLsmGPwFSicnrct4mFmluo7Qx82Gb2LXB4dAiZlsuoJJ7M7jLTAf4bdl6N 5XX6UN5NyXT/uYpFmAiDtYtrX+LgLQqxqsepzvB7quc5Bp+8zDkpSkAYtdWUfja/3xvZ j5Fg== 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=xwcgGhf6mNNwpAPlIpbEpG55ceh0WOROuktV+eBxFRs=; b=VPUECtdoSW7OR+/24po0dJZdawo3/343BxrfOYzvSvLWb4vZY5tSn2d6VntBV59QSg OHiCMSxm1D3rNqByl/YdqP9RLUwqjKQ35JezgI7vuA/CLkOBwBdZAzcsS8zqL0d8Y93F i+opN3OHAgU2mxTZyTdfE2RC8qP9XhZGk3YYmIh2DsNtxiaj1Og1bzO/bNDcpXOPw41i 3ss2NvAuqVRaKa98zomfNzjuDjSz4+q9Mxvku55FnRMno6wr/iu5zZvBQKHAUEOwqzO0 owVQZ97LD9kUCO9HlvFTEDL9J+OrKuE5FTDXxfaiAroebqZx3nAfwnu7u1iNjsIXbhHG zGmQ== X-Gm-Message-State: AKwxytfWuLEKHlqtoxMUmW9wv44f2qq8mBsuhNLkCFD8ZRh3PPhXOY8d /81UZR/fVNL7GHNa93LvRJt8vQ== X-Google-Smtp-Source: ACJfBoux11EOwuRqVfV+/JEFtvi/kMhficzNvSs/y4LQGklMvpgeuda6T981hGPLfTQdN7vumne8cA== X-Received: by 10.36.85.206 with SMTP id e197mr12324723itb.124.1516123256649; Tue, 16 Jan 2018 09:20:56 -0800 (PST) Received: from x220t.lan ([64.26.149.125]) by smtp.gmail.com with ESMTPSA id a13sm1353124itj.33.2018.01.16.09.20.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Jan 2018 09:20:56 -0800 (PST) From: Alexander Aring To: jhs@mojatatu.com Cc: xiyou.wangcong@gmail.com, jiri@resnulli.us, davem@davemloft.net, netdev@vger.kernel.org, kernel@mojatatu.com, Alexander Aring , David Ahern Subject: [PATCH net-next 6/8] net: sched: cls: add extack support for tcf_change_indev Date: Tue, 16 Jan 2018 12:20:25 -0500 Message-Id: <20180116172027.22128-7-aring@mojatatu.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180116172027.22128-1-aring@mojatatu.com> References: <20180116172027.22128-1-aring@mojatatu.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch adds extack handling for the tcf_change_indev function which is common used by TC classifier implementations. Cc: David Ahern Signed-off-by: Alexander Aring --- include/net/pkt_cls.h | 7 +++++-- net/sched/cls_flower.c | 7 ++++--- net/sched/cls_fw.c | 2 +- net/sched/cls_u32.c | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 0286d42d08ef..03f62be4e57e 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -549,13 +549,16 @@ static inline int tcf_valid_offset(const struct sk_buff *skb, #include static inline int -tcf_change_indev(struct net *net, struct nlattr *indev_tlv) +tcf_change_indev(struct net *net, struct nlattr *indev_tlv, + struct netlink_ext_ack *extack) { char indev[IFNAMSIZ]; struct net_device *dev; - if (nla_strlcpy(indev, indev_tlv, IFNAMSIZ) >= IFNAMSIZ) + if (nla_strlcpy(indev, indev_tlv, IFNAMSIZ) >= IFNAMSIZ) { + NL_SET_ERR_MSG(extack, "Interface name too long"); return -EINVAL; + } dev = __dev_get_by_name(net, indev); if (!dev) return -ENODEV; diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index a3ad5d24b0b9..9eb552257890 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -525,13 +525,14 @@ static void fl_set_key_ip(struct nlattr **tb, } static int fl_set_key(struct net *net, struct nlattr **tb, - struct fl_flow_key *key, struct fl_flow_key *mask) + struct fl_flow_key *key, struct fl_flow_key *mask, + struct netlink_ext_ack *extack) { __be16 ethertype; int ret = 0; #ifdef CONFIG_NET_CLS_IND if (tb[TCA_FLOWER_INDEV]) { - int err = tcf_change_indev(net, tb[TCA_FLOWER_INDEV]); + int err = tcf_change_indev(net, tb[TCA_FLOWER_INDEV], extack); if (err < 0) return err; key->indev_ifindex = err; @@ -840,7 +841,7 @@ static int fl_set_parms(struct net *net, struct tcf_proto *tp, tcf_bind_filter(tp, &f->res, base); } - err = fl_set_key(net, tb, &f->key, &mask->key); + err = fl_set_key(net, tb, &f->key, &mask->key, extack); if (err) return err; diff --git a/net/sched/cls_fw.c b/net/sched/cls_fw.c index bd21ed83eb07..94d159a8869a 100644 --- a/net/sched/cls_fw.c +++ b/net/sched/cls_fw.c @@ -239,7 +239,7 @@ static int fw_set_parms(struct net *net, struct tcf_proto *tp, #ifdef CONFIG_NET_CLS_IND if (tb[TCA_FW_INDEV]) { int ret; - ret = tcf_change_indev(net, tb[TCA_FW_INDEV]); + ret = tcf_change_indev(net, tb[TCA_FW_INDEV], extack); if (ret < 0) return ret; f->ifindex = ret; diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c index b2c83490cc73..78d0a320e7fa 100644 --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c @@ -803,7 +803,7 @@ static int u32_set_parms(struct net *net, struct tcf_proto *tp, #ifdef CONFIG_NET_CLS_IND if (tb[TCA_U32_INDEV]) { int ret; - ret = tcf_change_indev(net, tb[TCA_U32_INDEV]); + ret = tcf_change_indev(net, tb[TCA_U32_INDEV], extack); if (ret < 0) return -EINVAL; n->ifindex = ret;