From patchwork Tue Jan 16 00:30: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: 861146 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="z2qLGIRw"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zLB463vsNz9sCZ for ; Tue, 16 Jan 2018 11:31:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750916AbeAPAbq (ORCPT ); Mon, 15 Jan 2018 19:31:46 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:39491 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750868AbeAPAbo (ORCPT ); Mon, 15 Jan 2018 19:31:44 -0500 Received: by mail-pg0-f65.google.com with SMTP id w17so2833498pgv.6 for ; Mon, 15 Jan 2018 16:31:43 -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=K4ugekPxs1YO0c9UOY2SBXRUdZGa3bL8vlRSsXO4yE4=; b=z2qLGIRw9dhZTDEouCS3CZmZkMFr9+DVW3JuX6pbIfMr5T8LNNRDeIOyRpdKjEv1Nv ZlCjfVqbz2h15EQ3uzy+ovolX+SuzcH52r9SWtXtBM8AhC10WIOZXnHG6enrGxoefAhO ERiwqtqu2KZToozNTDcRDe6B5jbmEQtAhqANHBp7ZvrcSV1RCJhXiAYkBnvrduwISrMZ Ga4Lmc60/CzsDVOg0yEQhW628iTJMyBxwF2uo/FiAriOu1fETwaNadJ9c+3pL4GbU5vo ipZj4E6XXuUKyOkxW/hcstPjiWaA44Ue/xeMp2e/kKHNRN615ry4byIW1YGcaDTqBEmJ kOUw== 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=K4ugekPxs1YO0c9UOY2SBXRUdZGa3bL8vlRSsXO4yE4=; b=TJE1aqrY4TZicDmFkh9KTdKxSLyT1ZDroDPorbHr4BDTDKYyLYNRHTkuTgb/xfCqZL OFqlNVYcCyCHMQsysRwblECyH3/Y1KVs4ZQDESn4R6g+SEMG5y3EdwqGFg1Qf4oerNf7 8E8zIOR72g9qamBUoauttJ1TQaPjaQHw+CfTyK7u04TEukBOjB6P6w/egzyXxk1Xpt4j bAqutinuOcqLm7eWsTISoNatfMN0LVsxlSmQndvRQlNEYz+M6tRcz5NjTIJNWVjKAEyw hICQ1pSMooz1PrqppZgALQI44nG2PxAU6nE4yQsunkGPSxpV7oV+xD309FT5ZIFZwfm1 KDug== X-Gm-Message-State: AKwxytetI5WYG5LJbuPi8pPnlIplEkUNdFDXxNc0QD52Oh0o6Mrkm4xi rPRHDMCljN+WoO//JZ++lTwMJQ== X-Google-Smtp-Source: ACJfBosQDJ3zrxgV/8ytzRpqinuvbRbF5jdNBlaYqsXTRkH8RyESXIl4Ybvpy7OgVPt4EAqx9Ggkkw== X-Received: by 10.98.137.197 with SMTP id n66mr3956284pfk.70.1516062703658; Mon, 15 Jan 2018 16:31:43 -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.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 15 Jan 2018 16:31:43 -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 08/11] nfp: bpf: plumb extack into functions related to XDP offload Date: Mon, 15 Jan 2018 16:30:24 -0800 Message-Id: <20180116003027.9405-9-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 Pass a pointer to an extack object to nfp_app_xdp_offload() in order to prepare for extack usage in the nfp driver. Next step will be to forward this extack pointer to nfp_net_bpf_offload(), once this function is able to use it for printing error messages. Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski --- drivers/net/ethernet/netronome/nfp/bpf/main.c | 4 ++-- drivers/net/ethernet/netronome/nfp/nfp_app.h | 9 ++++++--- drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/netronome/nfp/bpf/main.c b/drivers/net/ethernet/netronome/nfp/bpf/main.c index 8823c8360047..e8816ab8fb63 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/main.c +++ b/drivers/net/ethernet/netronome/nfp/bpf/main.c @@ -54,7 +54,7 @@ static bool nfp_net_ebpf_capable(struct nfp_net *nn) static int nfp_bpf_xdp_offload(struct nfp_app *app, struct nfp_net *nn, - struct bpf_prog *prog) + struct bpf_prog *prog, struct netlink_ext_ack *extack) { bool running, xdp_running; int ret; @@ -73,7 +73,7 @@ nfp_bpf_xdp_offload(struct nfp_app *app, struct nfp_net *nn, ret = nfp_net_bpf_offload(nn, prog, running); /* Stop offload if replace not possible */ if (ret && prog) - nfp_bpf_xdp_offload(app, nn, NULL); + nfp_bpf_xdp_offload(app, nn, NULL, extack); nn->dp.bpf_offload_xdp = prog && !ret; return ret; diff --git a/drivers/net/ethernet/netronome/nfp/nfp_app.h b/drivers/net/ethernet/netronome/nfp/nfp_app.h index 6a6eb02b516e..1229a34f8da5 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_app.h +++ b/drivers/net/ethernet/netronome/nfp/nfp_app.h @@ -43,6 +43,7 @@ struct bpf_prog; struct net_device; struct netdev_bpf; +struct netlink_ext_ack; struct pci_dev; struct sk_buff; struct sk_buff; @@ -134,7 +135,8 @@ struct nfp_app_type { int (*bpf)(struct nfp_app *app, struct nfp_net *nn, struct netdev_bpf *xdp); int (*xdp_offload)(struct nfp_app *app, struct nfp_net *nn, - struct bpf_prog *prog); + struct bpf_prog *prog, + struct netlink_ext_ack *extack); int (*sriov_enable)(struct nfp_app *app, int num_vfs); void (*sriov_disable)(struct nfp_app *app); @@ -320,11 +322,12 @@ static inline int nfp_app_bpf(struct nfp_app *app, struct nfp_net *nn, } static inline int nfp_app_xdp_offload(struct nfp_app *app, struct nfp_net *nn, - struct bpf_prog *prog) + struct bpf_prog *prog, + struct netlink_ext_ack *extack) { if (!app || !app->type->xdp_offload) return -EOPNOTSUPP; - return app->type->xdp_offload(app, nn, prog); + return app->type->xdp_offload(app, nn, prog, extack); } static inline bool __nfp_app_ctrl_tx(struct nfp_app *app, struct sk_buff *skb) diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c index 2b5cad3069a7..14f23e8d27fa 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c @@ -3395,7 +3395,7 @@ nfp_net_xdp_setup(struct nfp_net *nn, struct bpf_prog *prog, u32 flags, if (err) return err; - err = nfp_app_xdp_offload(nn->app, nn, offload_prog); + err = nfp_app_xdp_offload(nn->app, nn, offload_prog, extack); if (err && flags & XDP_FLAGS_HW_MODE) return err;