{"id":834097,"url":"http://patchwork.ozlabs.org/api/1.2/patches/834097/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/20171103205630.1083-13-jakub.kicinski@netronome.com/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.2/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20171103205630.1083-13-jakub.kicinski@netronome.com>","list_archive_url":null,"date":"2017-11-03T20:56:27","name":"[net-next,v2,12/15] nfp: bpf: move program prepare and free into offload.c","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"a9c754f54dde53ed7f197525f4d23ee66406317b","submitter":{"id":67484,"url":"http://patchwork.ozlabs.org/api/1.2/people/67484/?format=json","name":"Jakub Kicinski","email":"jakub.kicinski@netronome.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.2/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/20171103205630.1083-13-jakub.kicinski@netronome.com/mbox/","series":[{"id":11839,"url":"http://patchwork.ozlabs.org/api/1.2/series/11839/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=11839","date":"2017-11-03T20:56:15","name":"bpf: add offload as a first class citizen","version":2,"mbox":"http://patchwork.ozlabs.org/series/11839/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/834097/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/834097/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=netronome-com.20150623.gappssmtp.com\n\theader.i=@netronome-com.20150623.gappssmtp.com\n\theader.b=\"CUTnu8Oo\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yTDmM6Jxdz9s7p\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat,  4 Nov 2017 07:57:23 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1755927AbdKCU5W (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 3 Nov 2017 16:57:22 -0400","from mail-pg0-f67.google.com ([74.125.83.67]:47427 \"EHLO\n\tmail-pg0-f67.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1755189AbdKCU45 (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 3 Nov 2017 16:56:57 -0400","by mail-pg0-f67.google.com with SMTP id r25so3448078pgn.4\n\tfor <netdev@vger.kernel.org>; Fri, 03 Nov 2017 13:56:56 -0700 (PDT)","from jkicinski-Precision-T1700.netronome.com ([75.53.12.129])\n\tby smtp.gmail.com with ESMTPSA id\n\to10sm9989029pgq.69.2017.11.03.13.56.55\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tFri, 03 Nov 2017 13:56:55 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=netronome-com.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=Q1gumYbF1OdC8hIJB50IfCUyMnm/s0CCzl67Q1mGGOo=;\n\tb=CUTnu8OoxPsUfjFawPnlc/SeCJFZUp94ZDZet4SufBd0dhoOgy+WRvyXCt5+DilUL7\n\tr4p9OVIqPYWUW716UyUyMOlAss057Go5QNwOQpyOACZMMRrSt9JxgmkeEBq7DCG3d+Wh\n\t4eXuhjxt1lMsnibdE0WLpCXbk74r1Y+/CUd812VFlzfFfpfE/L562rrYq7parxPQUS8I\n\tXBdF8jTnt3ZRmZmB5rJi1o1XFYR4qvrVDB+revv6sswjr/g7EcVk3PDKdancBLa2MmRn\n\t2aCP8nRLmpREV4JA/+Qhz6Rt7qg8iAPXlh1M7NyMr1JN5Eq2BVekQwFeLHQJnkkomiSO\n\trz1g==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=Q1gumYbF1OdC8hIJB50IfCUyMnm/s0CCzl67Q1mGGOo=;\n\tb=Vjb6jTOvteoMSGn67FYx8Qeure5R59QDGgSXBjhBGjHIVB+q9IUQvbNrzv7QlffOc3\n\tfvo+EpXWTUN4lrpmM0SAUkect6xmp4XZM5CPGd0iPaqNuKvXG3sAuzgMn3BxB6qaKRUx\n\tcQ9cdMXBe0ImP6mMbNr8p8u4XOCoGXjLZWYyq6RGTq1k/D/0w6DXC5IwfBmd1IhBPJ0P\n\tKM4i/zgTT73BteOX6DAAODw0FQOewz9XNX6p70Yxl0BV5+Aa+EPwEWYUjwZeH4I7xzB7\n\tihm1WlTJPM6YCWfOl1mV0FUHEUb6RfetEi+58MAP3z657zhdoN023EiUVdHNYxRlJVuz\n\tzthA==","X-Gm-Message-State":"AMCzsaWT+OmfA0HQYpbRJDh+yUVxxDSx5U49T2OfaHgpizgyYgYkNTgm\n\tVzCGPFmsQAxDnJ3sr/heHJD39bku","X-Google-Smtp-Source":"ABhQp+RiRgkNbCKd6wz4ujKVsjkG3Rsis0u21e1ngFek8/cYXWjAP4BSpspOiifOWeH7GyE+SCmGpw==","X-Received":"by 10.84.169.36 with SMTP id g33mr8012256plb.10.1509742616251;\n\tFri, 03 Nov 2017 13:56:56 -0700 (PDT)","From":"Jakub Kicinski <jakub.kicinski@netronome.com>","To":"netdev@vger.kernel.org","Cc":"oss-drivers@netronome.com, alexei.starovoitov@gmail.com,\n\tdaniel@iogearbox.net, Jakub Kicinski <jakub.kicinski@netronome.com>","Subject":"[PATCH net-next v2 12/15] nfp: bpf: move program prepare and free\n\tinto offload.c","Date":"Fri,  3 Nov 2017 13:56:27 -0700","Message-Id":"<20171103205630.1083-13-jakub.kicinski@netronome.com>","X-Mailer":"git-send-email 2.14.1","In-Reply-To":"<20171103205630.1083-1-jakub.kicinski@netronome.com>","References":"<20171103205630.1083-1-jakub.kicinski@netronome.com>","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"Most of offload/translation prepare logic will be moved to\noffload.c.  To help git generate more reasonable diffs\nmove nfp_prog_prepare() and nfp_prog_free() functions\nthere as a first step.\n\nSigned-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\nReviewed-by: Quentin Monnet <quentin.monnet@netronome.com>\n---\n drivers/net/ethernet/netronome/nfp/bpf/jit.c     | 33 ------------------------\n drivers/net/ethernet/netronome/nfp/bpf/main.h    |  5 ++++\n drivers/net/ethernet/netronome/nfp/bpf/offload.c | 33 ++++++++++++++++++++++++\n 3 files changed, 38 insertions(+), 33 deletions(-)","diff":"diff --git a/drivers/net/ethernet/netronome/nfp/bpf/jit.c b/drivers/net/ethernet/netronome/nfp/bpf/jit.c\nindex ff150c27f411..2eddbb45fd60 100644\n--- a/drivers/net/ethernet/netronome/nfp/bpf/jit.c\n+++ b/drivers/net/ethernet/netronome/nfp/bpf/jit.c\n@@ -77,17 +77,6 @@ nfp_meta_has_prev(struct nfp_prog *nfp_prog, struct nfp_insn_meta *meta)\n \treturn meta->l.prev != &nfp_prog->insns;\n }\n \n-static void nfp_prog_free(struct nfp_prog *nfp_prog)\n-{\n-\tstruct nfp_insn_meta *meta, *tmp;\n-\n-\tlist_for_each_entry_safe(meta, tmp, &nfp_prog->insns, l) {\n-\t\tlist_del(&meta->l);\n-\t\tkfree(meta);\n-\t}\n-\tkfree(nfp_prog);\n-}\n-\n static void nfp_prog_push(struct nfp_prog *nfp_prog, u64 insn)\n {\n \tif (nfp_prog->__prog_alloc_len == nfp_prog->prog_len) {\n@@ -2127,28 +2116,6 @@ static int nfp_translate(struct nfp_prog *nfp_prog)\n \treturn nfp_fixup_branches(nfp_prog);\n }\n \n-static int\n-nfp_prog_prepare(struct nfp_prog *nfp_prog, const struct bpf_insn *prog,\n-\t\t unsigned int cnt)\n-{\n-\tunsigned int i;\n-\n-\tfor (i = 0; i < cnt; i++) {\n-\t\tstruct nfp_insn_meta *meta;\n-\n-\t\tmeta = kzalloc(sizeof(*meta), GFP_KERNEL);\n-\t\tif (!meta)\n-\t\t\treturn -ENOMEM;\n-\n-\t\tmeta->insn = prog[i];\n-\t\tmeta->n = i;\n-\n-\t\tlist_add_tail(&meta->l, &nfp_prog->insns);\n-\t}\n-\n-\treturn 0;\n-}\n-\n /* --- Optimizations --- */\n static void nfp_bpf_opt_reg_init(struct nfp_prog *nfp_prog)\n {\ndiff --git a/drivers/net/ethernet/netronome/nfp/bpf/main.h b/drivers/net/ethernet/netronome/nfp/bpf/main.h\nindex df56f40fea7c..b77231a134b9 100644\n--- a/drivers/net/ethernet/netronome/nfp/bpf/main.h\n+++ b/drivers/net/ethernet/netronome/nfp/bpf/main.h\n@@ -173,6 +173,11 @@ struct nfp_bpf_result {\n \tunsigned int n_instr;\n };\n \n+int\n+nfp_prog_prepare(struct nfp_prog *nfp_prog, const struct bpf_insn *prog,\n+\t\t unsigned int cnt);\n+void nfp_prog_free(struct nfp_prog *nfp_prog);\n+\n int\n nfp_bpf_jit(struct bpf_prog *filter, void *prog,\n \t    unsigned int prog_start, unsigned int prog_done,\ndiff --git a/drivers/net/ethernet/netronome/nfp/bpf/offload.c b/drivers/net/ethernet/netronome/nfp/bpf/offload.c\nindex f4b9a46c844d..3eeee200051e 100644\n--- a/drivers/net/ethernet/netronome/nfp/bpf/offload.c\n+++ b/drivers/net/ethernet/netronome/nfp/bpf/offload.c\n@@ -51,6 +51,39 @@\n #include \"../nfp_net_ctrl.h\"\n #include \"../nfp_net.h\"\n \n+int\n+nfp_prog_prepare(struct nfp_prog *nfp_prog, const struct bpf_insn *prog,\n+\t\t unsigned int cnt)\n+{\n+\tunsigned int i;\n+\n+\tfor (i = 0; i < cnt; i++) {\n+\t\tstruct nfp_insn_meta *meta;\n+\n+\t\tmeta = kzalloc(sizeof(*meta), GFP_KERNEL);\n+\t\tif (!meta)\n+\t\t\treturn -ENOMEM;\n+\n+\t\tmeta->insn = prog[i];\n+\t\tmeta->n = i;\n+\n+\t\tlist_add_tail(&meta->l, &nfp_prog->insns);\n+\t}\n+\n+\treturn 0;\n+}\n+\n+void nfp_prog_free(struct nfp_prog *nfp_prog)\n+{\n+\tstruct nfp_insn_meta *meta, *tmp;\n+\n+\tlist_for_each_entry_safe(meta, tmp, &nfp_prog->insns, l) {\n+\t\tlist_del(&meta->l);\n+\t\tkfree(meta);\n+\t}\n+\tkfree(nfp_prog);\n+}\n+\n static int\n nfp_net_bpf_offload_prepare(struct nfp_net *nn, struct bpf_prog *prog,\n \t\t\t    struct nfp_bpf_result *res,\n","prefixes":["net-next","v2","12/15"]}