{"id":834102,"url":"http://patchwork.ozlabs.org/api/1.2/patches/834102/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/20171103205630.1083-7-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-7-jakub.kicinski@netronome.com>","list_archive_url":null,"date":"2017-11-03T20:56:21","name":"[net-next,v2,06/15] cls_bpf: allow attaching programs loaded for specific device","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"a6ba3d1e3a41f994900d77dfce5d3372cbb15bf6","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-7-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/834102/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/834102/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=\"mC4SCFYY\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yTDmq4jsjz9s7p\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat,  4 Nov 2017 07:57:47 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1755995AbdKCU5k (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 3 Nov 2017 16:57:40 -0400","from mail-pg0-f65.google.com ([74.125.83.65]:43896 \"EHLO\n\tmail-pg0-f65.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1752554AbdKCU4u (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 3 Nov 2017 16:56:50 -0400","by mail-pg0-f65.google.com with SMTP id s75so3462539pgs.0\n\tfor <netdev@vger.kernel.org>; Fri, 03 Nov 2017 13:56:50 -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.49\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tFri, 03 Nov 2017 13:56:49 -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=BsnK+R3oWPh/RJZMgK0j4PniZh7CtzlxlbPDVfXSWEg=;\n\tb=mC4SCFYYl0Cpjh06bDCRYYNL6TBT9A0/9cJoR6OvVsBl97EXjINgzVxet5DLrrFSxW\n\tNB0Gqr0Ub+W/aKFR//qnAS9FoAeyjYTJw6IF/onr3irTVpcFHkXWqbsYJqiobXS35cVn\n\t7lVR9aAt4bUF4Y5Sf4wgifYIVL6/IQgDycrgfqSiHhleMBX8rKNanyEcSAg8Sw6XLiyp\n\t7C+j85KusFcmk3kJRrfHOe7vsaZ5soUgFLNhspuk/pz4qCL9CDygkFYWnpu7wsfHg81O\n\tGddJBiLYqs7IdeZ7lhTAHmpcxW6i5N4BVoPKbBpS6YjSyXRBNEy1JfclThKSGnIbFo0a\n\taqhw==","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=BsnK+R3oWPh/RJZMgK0j4PniZh7CtzlxlbPDVfXSWEg=;\n\tb=cnrXZC67+tED5UH7uY8CxLEH0WpKXXthGYZ8mUIEmywEhYs9RBt9QMzsGnL073f7Z0\n\thkMM9b60Fv4EE9HA5OL4dD8OVjBy59+YM9PoK5HBZQajRK/rjM7UnXJ4zilA5KV14fQK\n\tihHeYR7R6Do8nG0y5QiiOzf9tESvh++TbJcyEaMWHqrSgynJrXQ36ZsmYM3wAUefTrdd\n\tm9KiPc+woaXxMAkN5j7MVVrVurJtJpXl+lyh0KwiDFgKyFnFvKrHKO6oRhD5hVK4R9jJ\n\tDdRBNnlsTTsZLvgBjKzQ9PUoKSQeQ4QQ9CS1yKqohXnUQtiP42KWDcKyQ8JWpY3jtrBL\n\ta+Xw==","X-Gm-Message-State":"AMCzsaVK8jJK0ZLl4zBdSbfQa/RpjZUdOoO/vPzpD2cSYg4TWDLKNLDm\n\tIgC5i/emLvKl4I7BSrYiWl0Fr9ey","X-Google-Smtp-Source":"ABhQp+QBNT0ib6JhrmrOoD2CskxdO5VxP+OWuzHoRGRSrROUwfUl5OZ1ohX33z/9lxLfocJilaN8aA==","X-Received":"by 10.99.115.7 with SMTP id o7mr8601792pgc.410.1509742610113;\n\tFri, 03 Nov 2017 13:56:50 -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 06/15] cls_bpf: allow attaching programs loaded\n\tfor specific device","Date":"Fri,  3 Nov 2017 13:56:21 -0700","Message-Id":"<20171103205630.1083-7-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":"If TC program is loaded with skip_sw flag, we should allow\nthe device-specific programs to be accepted.\n\nSigned-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>\nReviewed-by: Simon Horman <simon.horman@netronome.com>\nReviewed-by: Quentin Monnet <quentin.monnet@netronome.com>\n---\n kernel/bpf/syscall.c |  1 +\n net/sched/cls_bpf.c  | 10 +++++++---\n 2 files changed, 8 insertions(+), 3 deletions(-)","diff":"diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c\nindex 68f9123acd39..416d70cdfc76 100644\n--- a/kernel/bpf/syscall.c\n+++ b/kernel/bpf/syscall.c\n@@ -1115,6 +1115,7 @@ struct bpf_prog *bpf_prog_get_type_dev(u32 ufd, enum bpf_prog_type type,\n \t\ttrace_bpf_prog_get_type(prog);\n \treturn prog;\n }\n+EXPORT_SYMBOL_GPL(bpf_prog_get_type_dev);\n \n /* last field in 'union bpf_attr' used by this command */\n #define\tBPF_PROG_LOAD_LAST_FIELD prog_target_ifindex\ndiff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c\nindex bc3edde1b9d7..dc9bd9a0070b 100644\n--- a/net/sched/cls_bpf.c\n+++ b/net/sched/cls_bpf.c\n@@ -374,7 +374,7 @@ static int cls_bpf_prog_from_ops(struct nlattr **tb, struct cls_bpf_prog *prog)\n }\n \n static int cls_bpf_prog_from_efd(struct nlattr **tb, struct cls_bpf_prog *prog,\n-\t\t\t\t const struct tcf_proto *tp)\n+\t\t\t\t u32 gen_flags, const struct tcf_proto *tp)\n {\n \tstruct bpf_prog *fp;\n \tchar *name = NULL;\n@@ -382,7 +382,11 @@ static int cls_bpf_prog_from_efd(struct nlattr **tb, struct cls_bpf_prog *prog,\n \n \tbpf_fd = nla_get_u32(tb[TCA_BPF_FD]);\n \n-\tfp = bpf_prog_get_type(bpf_fd, BPF_PROG_TYPE_SCHED_CLS);\n+\tif (gen_flags & TCA_CLS_FLAGS_SKIP_SW)\n+\t\tfp = bpf_prog_get_type_dev(bpf_fd, BPF_PROG_TYPE_SCHED_CLS,\n+\t\t\t\t\t   qdisc_dev(tp->q));\n+\telse\n+\t\tfp = bpf_prog_get_type(bpf_fd, BPF_PROG_TYPE_SCHED_CLS);\n \tif (IS_ERR(fp))\n \t\treturn PTR_ERR(fp);\n \n@@ -440,7 +444,7 @@ static int cls_bpf_set_parms(struct net *net, struct tcf_proto *tp,\n \tprog->gen_flags = gen_flags;\n \n \tret = is_bpf ? cls_bpf_prog_from_ops(tb, prog) :\n-\t\t       cls_bpf_prog_from_efd(tb, prog, tp);\n+\t\t       cls_bpf_prog_from_efd(tb, prog, gen_flags, tp);\n \tif (ret < 0)\n \t\treturn ret;\n \n","prefixes":["net-next","v2","06/15"]}