From patchwork Tue Jan 16 00:30: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: 861152 X-Patchwork-Delegate: bpf@iogearbox.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="yAJniwHt"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zLB4W5KP2z9sNV for ; Tue, 16 Jan 2018 11:32:11 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751112AbeAPAcJ (ORCPT ); Mon, 15 Jan 2018 19:32:09 -0500 Received: from mail-pl0-f68.google.com ([209.85.160.68]:44634 "EHLO mail-pl0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750844AbeAPAbn (ORCPT ); Mon, 15 Jan 2018 19:31:43 -0500 Received: by mail-pl0-f68.google.com with SMTP id f8so2815687plk.11 for ; Mon, 15 Jan 2018 16:31:42 -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=r4e9kNGFIGbZhPWwFw18V0BgJdTQMgpjTncxQ584HAQ=; b=yAJniwHtWp7N57B133Oy+1Dhhj5D4zC6QXAb/ZUU7GwYE4Ai+LgcnmKLmtkFKAtKfK fEAmO9hai2iX3VW7SplzqYliHSPukWASqiSjDAECI/OxAHddrCYKdxTP9uJvOOUE7VIB 6wJANMfsyxJzoHRisVMgxlo6Jl++wOlhodOTMg0SmIjQD1pWbvanu5Ft7PJr8w4jM7UZ 6+pM4BrqCKwURRj/QLJpIX3/YtjPV0Efob3KNiPB5LMzKgaBOs4BZSpFesuqcWh+tdrf QCRJIaN86HS3wOa/pOpTKq2WaohdczSXFQwBvMPgbUJlniI/yz4B8CFWZY68+g+va0Mk lk4g== 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=r4e9kNGFIGbZhPWwFw18V0BgJdTQMgpjTncxQ584HAQ=; b=TmwBKv1sJdFKyXLDhbU49MRrHK0v0QsZF/WwaW+bvhXo3pE0gpWM64UBpjnnEvRETk 7FZE5NYwzprnAhq145OaL8/QG96YhgSPkUKgdBWcZtHCzOlm0PhhyoJiKnlXGyRzuJHQ WLkt1hjCsT/SBhI7UgE+hOwE42kRCwiIoppwYvWinNwkYnMo8OoG7NZsDxrHfZQ0Q1I7 ZXWkGbny2RXmkMYOqJVrn5m6urrPjtXsOXyhnOCPWt8cNFjyLo+nO2tU2ckL9dhv0cGV iJ+/7XJPNpJc70qjLfUSDjSvP0VoSohpdI7SdXiu5+prJBooHpxTHLS7wnoBIWcxEQQ/ NkKw== X-Gm-Message-State: AKwxyteg+GKGYdxkA5+SefGJZhcVs6LufJI71893AQiSFF0lHP+44vU4 UbzAoT9p0l9d8flBVLPDKtGAGg== X-Google-Smtp-Source: ACJfBotLYExQSX5LdXWmocvEi2tqoHcUh4a/fdEijy02uKNOWWhEdV6U7ZUREChSEFCk7jUwDC6ZSg== X-Received: by 10.84.179.129 with SMTP id b1mr2002321plc.20.1516062702638; Mon, 15 Jan 2018 16:31:42 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id o64sm752839pga.1.2018.01.15.16.31.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 15 Jan 2018 16:31:42 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, daniel@iogearbox.net, alexei.starovoitov@gmail.com, netdev@vger.kernel.org Cc: dsahern@gmail.com, oss-drivers@netronome.com, jiri@resnulli.us, john.fastabend@gmail.com, jhs@mojatatu.com, gerlitz.or@gmail.com, aring@mojatatu.com, xiyou.wangcong@gmail.com, Quentin Monnet Subject: [PATCH bpf-next 07/11] net: sched: create tc_can_offload_extack() wrapper Date: Mon, 15 Jan 2018 16:30:23 -0800 Message-Id: <20180116003027.9405-8-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180116003027.9405-1-jakub.kicinski@netronome.com> References: <20180116003027.9405-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Quentin Monnet Create a wrapper around tc_can_offload() that takes an additional extack pointer argument in order to output an error message if TC offload is disabled on the device. In this way, the error message is handled by the core and can be the same for all drivers. Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski --- include/net/pkt_cls.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index c88c61234cb3..a3ad6a5a2d12 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -644,6 +644,17 @@ static inline bool tc_can_offload(const struct net_device *dev) return dev->features & NETIF_F_HW_TC; } +static inline bool tc_can_offload_extack(const struct net_device *dev, + struct netlink_ext_ack *extack) +{ + bool can = tc_can_offload(dev); + + if (!can) + NL_SET_ERR_MSG(extack, "TC offload is disabled on net device"); + + return can; +} + static inline bool tc_skip_hw(u32 flags) { return (flags & TCA_CLS_FLAGS_SKIP_HW) ? true : false;