Message ID | 20180628164719.28215-7-guro@fb.com |
---|---|
State | Changes Requested, archived |
Delegated to: | BPF Maintainers |
Headers | show
Return-Path: <netdev-owner@vger.kernel.org> X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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=<UNKNOWN>) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=fb.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=fb.com header.i=@fb.com header.b="rT/tAi1b"; dkim=pass (1024-bit key; unprotected) header.d=fb.onmicrosoft.com header.i=@fb.onmicrosoft.com header.b="gWEPjH0e"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Gm6M6qtPz9ryk for <patchwork-incoming-netdev@ozlabs.org>; Fri, 29 Jun 2018 02:52:27 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030289AbeF1QvO (ORCPT <rfc822;patchwork-incoming-netdev@ozlabs.org>); Thu, 28 Jun 2018 12:51:14 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:56922 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S935747AbeF1Qs0 (ORCPT <rfc822;netdev@vger.kernel.org>); Thu, 28 Jun 2018 12:48:26 -0400 Received: from pps.filterd (m0001255.ppops.net [127.0.0.1]) by mx0b-00082601.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w5SGka5V013501; Thu, 28 Jun 2018 09:48:06 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=facebook; bh=NgXyUaAYyyXPp7pAZXAadjQHufX3Th3SE5gX1R08jVA=; b=rT/tAi1bGoZ6OTHowJw8nujexbIaCd3tvR1xTgVrKN7eB1Bg674LXMNhdEeD/XP0kUZX UuRWI5n/FQ54KIhNUy1D2YuYIiP8rpF+wCR/ruyS1oai3lDyW5fLL3IvhZPk0drugl25 vvn3t/wOt4XQtti760IcZ/8YZMBA5PCaoKs= Received: from maileast.thefacebook.com ([199.201.65.23]) by mx0b-00082601.pphosted.com with ESMTP id 2jw2u0074v-6 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 28 Jun 2018 09:48:06 -0700 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (192.168.183.28) by o365-in.thefacebook.com (192.168.177.26) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 28 Jun 2018 12:48:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NgXyUaAYyyXPp7pAZXAadjQHufX3Th3SE5gX1R08jVA=; b=gWEPjH0e1Mkr3OJ7OQgl+vtIsWSrTBUokfA5kImAYcXuqB+baGkLtX+YphHNBYlQSbqbct5MVtP3l2jjT00UvTI2MqMHWfRrV1fV3Id8xOPFPy40LvGh4XFhficUZAAlPeG4qFwCCsoV35JPncSJn+ujQ46S9C4dLgsbue9UNrw= Received: from castle.thefacebook.com (2620:10d:c090:200::4:4716) by DM3PR15MB1081.namprd15.prod.outlook.com (2603:10b6:0:12::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.884.24; Thu, 28 Jun 2018 16:48:01 +0000 From: Roman Gushchin <guro@fb.com> To: <netdev@vger.kernel.org> CC: <linux-kernel@vger.kernel.org>, <kernel-team@fb.com>, <tj@kernel.org>, Roman Gushchin <guro@fb.com>, Alexei Starovoitov <ast@kernel.org>, Daniel Borkmann <daniel@iogearbox.net> Subject: [PATCH bpf-next 06/14] bpf/verifier: introduce BPF_PTR_TO_MAP_VALUE Date: Thu, 28 Jun 2018 09:47:11 -0700 Message-ID: <20180628164719.28215-7-guro@fb.com> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20180628164719.28215-1-guro@fb.com> References: <20180628164719.28215-1-guro@fb.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [2620:10d:c090:200::4:4716] X-ClientProxiedBy: MW2PR16CA0046.namprd16.prod.outlook.com (2603:10b6:907:1::23) To DM3PR15MB1081.namprd15.prod.outlook.com (2603:10b6:0:12::7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bd4cce9a-5661-4c0f-89d2-08d5dd16e9e8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652034)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600026)(711020)(2017052603328)(7153060)(7193020); SRVR:DM3PR15MB1081; X-Microsoft-Exchange-Diagnostics: 1; DM3PR15MB1081; 3:aw9/UmKZS3yxH3x0NJ5MljgdBzj1Te+RVB7yG+Jy5ycbFRkDeaYBAdUKOHEFhsZLbDiY7FfEArgDKnlaY8Fow4uQwFwINOjfb3rjS+Zplssd/c5gcbJAqBsOWvvUon4XllCzOO57UgC9BhLtdyd6zLrS9A0OxO0ptdCCkaLWJc0Dz1t25Hi2YBbCM7eJabz2UGx+1EzeTajQMI57kJyjRc7IG/49UpxD4lMqzRTYbX05V2Rl3MufaTSyniVEtXSP; 25:PoBdFHpR6sApz60KUwVxp3+vrWRY9IJRDBKDAzrDH05w2kzbyF8Zb4ygpNFKAo8X7lAOTYfIE0D0Crw06Z9jMUPaTLI5ngb53Uf083weqA6UfkvTN5asdKTQzFcWLwDKF62Uuh1G4VyxkYqXqlMHNWv2EYUpq7pN6qRhnmkpE6/gzH7Kf5JL6jI3FNReN90pHMFAWwNpmbhz88KyHeprswyp0qmaq4GBJ+J3gGPn6a43aUgrqPvC6byiNCKdBwAZR7xtUrLqtqY+tndHQ5JBMZjlhI7ucEo0O+y5DXRAS6mFoTpBpeM/111TY6IGhvsjFcfO6V7MgIjoJ9wTnZXrWw==; 31:42CLuNcGrWhczs53OCZvzMH5JlxTqDU9aiCvCkJOlrxbeompWbZhd2Ukcf2iT1iy2DQ8mvktc3Zn7+CsTyFYT4/JnnzkA3q+WbBpE9BDk/y3fvCpx71TiQSlXyiyHfh3kbwKI9zqbylhpr0qwwPEQsL7h/+jMawqv2wHeoiEKQN529VwLfOizPjXAUKSb/83vfJbIHnt1XOSaSJK4DPa8WwptYOtivYTtq4QtPfVsOw= X-MS-TrafficTypeDiagnostic: DM3PR15MB1081: X-Microsoft-Exchange-Diagnostics: 1; DM3PR15MB1081; 20:Saoj6AaQc/Sxasqv7R4M54V06CI9P3qI2d0qcOtDt64gSxSm54qdYCrJZW9uX1NCrpGiCy/XYYyFqKLsSBJkBK7RzenMxuRtjfpU/F8h7UT0pab8fMiM8zRUGV78EDAm2i4L6SStm/Z6xQtDQqwqup2JJn7fx444k2bkcupUoI7aQ4tcKSQyTCWOndtDwi7O/7vbkn+QTei+7KJa9LN+kFvpVL6VXo9cG3ayT/H+vecX0UMv29ld4TrRsiy9pCyci/VrJ4UdRRqTg1tMkvwElaNNG3rv0Ruk3UWccGfc619GSTVnjwR0Rzp+J/uswRdZiyigVsnRDRAoa9agGwDKoY+iEPTAXGEEKSQcgC2vc1fVt5tQx72IcgP2shNhiJL+Rl0p3y+hsVJ53pk+dw9A4eLwjBgnH9Ugp2oOcFwypRuI4x7005LFxWxhilWvhGDlH2A7HD+sEvN74FFIjz/rur8Jf1MVlFbUutoLlM/FyE2QRJV1Xke1Nnnov6ErrUr7; 4:aLV1jDOAu7TVJuWusaPTXNpHXYVRGrl8TVZViIoWXYb8mjkiIs11i6Ktcz+zMV/EhQCOQLmEU82e9vht+X5/enZZwryKxY5zyIwv/NtfgDRpD6Rxp7OyiArOVnTnMOB9Tq1cfWkBks49QJ9lioZD4DRF5BzGgI/pb1WfABtL4jITNPhGm9W0XjWymAVh+0LWXZta9gDDjulpZuw0ojzLwuByHqSbYXKbUMfb2sPEmcj95Yov+k3IOH5o7rPKZ9VWii421/CjlSwWfba4DZAoJPuW0VuOIf/xl0XtpS262+fnfZK3mPeWN+O6cgr98aod X-Microsoft-Antispam-PRVS: <DM3PR15MB1081E2DC10E992E8CD0DBDAEBE4F0@DM3PR15MB1081.namprd15.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:(67672495146484); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231254)(11241501184)(944501410)(52105095)(149027)(150027)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:DM3PR15MB1081; BCL:0; PCL:0; RULEID:; SRVR:DM3PR15MB1081; X-Forefront-PRVS: 0717E25089 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(136003)(396003)(346002)(39860400002)(376002)(366004)(189003)(199004)(8676002)(6512007)(4326008)(81166006)(81156014)(69596002)(97736004)(52116002)(2361001)(51416003)(8936002)(76176011)(305945005)(53416004)(186003)(16526019)(6506007)(386003)(106356001)(105586002)(2906002)(25786009)(36756003)(52396003)(7736002)(68736007)(50226002)(5660300001)(6666003)(53936002)(6916009)(48376002)(50466002)(478600001)(6486002)(1076002)(47776003)(6116002)(86362001)(575784001)(14444005)(16586007)(54906003)(46003)(476003)(486006)(446003)(2351001)(11346002)(2616005)(316002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM3PR15MB1081; H:castle.thefacebook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: fb.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; DM3PR15MB1081; 23:Ee1R13OioAFje4B7Ml2QyK1G/IqQw7MWl7ynA6tA8iDnNX9Cw52ywjWIkulZ63movS3+RaFUbhSnowVkSHaBcl1nakWozDoivbcCVtECHwR4OU/+RXJIT2X5w8RD9HBN67Ej5Lvc+wkG9379vLYRupJa8fy1jSvLXGF/E07//RfdJx0gUvvG0e+2J7R8b/ZUxqrx8MmIpx/10Ja/Cy7UFuwuofurU6CUfDoZjWjmCqAcwDYUraZVJmoXSg1tm8rFIZtZGQfZFFA111FLNDIPwkW77qPXCzTK1yGx1uMadgIu9gM0qzJ3/i7xtlI7WCoaaV2uo9MNHXSfxybCIuT1xBFSkBpMtvaCKCFkdQ6hYueGY+DzJpxnTFodep7GhOuB+OVkIgOa1fxWRaEy++jZ2TyiaSGTx7bgxixO5XguBnOmKxJDAx34ySSvNObids9iQ4FN50EVzcS0BDHIVqqjVvZ1uRh9I4ec48UufOCD+033X8+7KFlXRhfssRBulrx91K/XTD+aBAoyPOfapb6Y7b95/3zDy8nBSIrbWQDgFsBW7obENtctXiiunBWqKJMl4Y+ZayG5qj6PrEfHyA2s8s/kht+isIRtc1YgfMtAUSwUeLdjTZqFt4/S7cb6vQnbnFiJ7JcLFVKvGOQYr2IMaDXowllcVZPhQd3HSQsQwdzxy5+rFixKFHxBeHAIULTGJtVLuDm/v0h2Ph6CJhgE+SEr5qYIdke3m3V1vm54UGmLGfnQ/JTtH5hHjv9Uakl8H6vrLfT8kLrRysOdWLje0Y9/MjKc7mwnQ/RWWDfWyHBtGRurNO7oMA5UfuYwF2GMYcyLvpk1owiwHnipCDlIihJgs9BSlzHnci6XOKKQ0KWnYidr0O4tg6yvUHVJDy1Rhcit70OkX1WT93Id6FV/a0l/swl4aDMFvgVgGyfRdE9kBm7eCJdDjZPnkQ8Ur/YQUVUDoGsXLLeiY/Q4zHLpHldaujNfbaTrdZ8caI/0vj3eVjvGuKROtQqqujRy+q6dJzHcpgIXPmNMr/K9z3Kmou3mnuQtIV3v4u61/D0ZOfEDx7ICPeX1WcKB0a2LKcZfe6uNWJhNGxqtGIoVuGLW33K6yuHJ6qV5y/t3foGEBzWS4iMBO4kLPw1r8XubxH2FqE/dh7kTsCQ3y9DOOWudpGfSeybi/EzKkeofcdUtuWAstkuKzBvUVqALaZqz2CWu2ar+mqrgGQOfotBvvGMTme6C8gi2w+8Vh7D1WlEXy7Ybb7gr6KMfiZGcPbpK0VxwrtL2pSIJRiq82hk9JctxX58ELEB4aAGn1e0zMx0xleQ= X-Microsoft-Antispam-Message-Info: GZG1GBhSwB8THu+7Uqjc2xkmh31FezbjY9BU6YXNt0PchgzGwbW5SK1bCxTFgKnLtRdzJmkNaynjUDe+RRSC6yLEpwAdxxra425SCJy3v5x4sT5b4SLDcO3v+3+V+8IKJ7P2zADsIiwOjEEdsFRzaFjBDPL+q0nES2RcQtNQ2I6CcPEigl29BfrCGGdygqdLfn7iIqLDwiP2A5x+8wzhEpzgXuWUXZdxVW6WhWydKjC+QGVW8HXPWOqxhRlllHa/J+IYGKvqsSoPpK4rD9PxIvqmGNWYEoJVZ3r7umuCpuvmCa3u99FrUc0FdVkkIMxIbEGDILrLcsb/KX/fNtQi8+QPg39rK8rJNyQneAn/3pI= X-Microsoft-Exchange-Diagnostics: 1; DM3PR15MB1081; 6:JZpH06Ewr7dKGprZ+1kVZPA2wGtmy5raUEDx5vcGLJGTRP+pLAkeTugIbap6mZmAUc1D2jDs+RfkgKL3DYoFzz1C7qtW1jRZnnyV6VuQ1qAaoYREYzI0rg0nBz8SX498p4LK98Xrk1PcDOQWQ+ud4XB6k9PUPb8hNQi7L/eV3awl6t2gn2NueieVKzZOwql+QoedzQaJ0EDDEDLGIYrGtszxa8Qypavz4apK7XhRqPkQlnnwYV/M2u9s33bQhrB7o7V2YQ1/7xWT0TQITwxewj6rfgS1fW6Bk4zwwTr5t6n6VEZQjjdAMslVu/UpxAiKfpMcHf6yTrQinmlqS1KsBnACch4KmMCuCJHWqv6KarYRikgRf+fd424d4UanYd5teDDCRJiz1XiJ8W+S8DMzSHozHD53xusBlUskCs83PZ7bFn4tuLqpqbwk9jdz+zBv38ovte9UFggNcCgsajFrUg==; 5:PE2HcISvB+DqWt/XKlJX0+hme4ZTjfvCtMz/1Fry6GGRvSqmUXURBgEwcOOw0b9ut0Zf2QsTI5QbMN4BZtCNwEaZDATL4st3yC8j3v/QhS0KWoHhhOQhKHBdhBvLD6kkn7e4BAp5CS+Vo35D6g+IesMLiacHmTWg/IbZd7borI4=; 24:ajU5chVjPEZ5Qa1o69aDuZSf3BsYh1d3UoPb4inoIpWUo1n+3eCJUKYM0w3e/+upovvAba9X4DDcfSeYFEp2HVYs6fDDk2RrrVzW1S39a78= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM3PR15MB1081; 7:JN2/bFOebdDkymsdkT884EKH/16t39pXhk1cFxVuFYkZP1RiicjDiW2WQx95teaFM9/8VVPhXodZtETE3eSI/vNnSEoT0qLxYiHLOWC5laXObB72Wpr8uDVQncRUlkdInOPrJfpFti9N5qF6uxsAD9jZK0FqM1UgZpQQSGMiWmCiyH6+eTVRpI6dTL0kMMHzNSxY8IblDBmdc8FBwP4/zVE+esDbqqKDF/ThWHBIjbQOiZ9BgVtqsqE7zP9xSX61; 20:Bl8zqI20peWg0gBBVuBDd7OhEywOcIiGmFlkbf9PrL0JL5DOvZVulu9nuOyxpPABm4ZEVX/ZD2WE7AbkLohKPxzmWoTEus4gGcBDFLV9SHM3RPCFn4HLOfIGIA4/mQ4G+GjbnnBONzB+taHqYBEHtfL/n8ZKe8PFx7H5UZoY6/g= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2018 16:48:01.8955 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bd4cce9a-5661-4c0f-89d2-08d5dd16e9e8 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR15MB1081 X-OriginatorOrg: fb.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-06-28_08:, , signatures=0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: <netdev.vger.kernel.org> X-Mailing-List: netdev@vger.kernel.org |
Series |
bpf: cgroup local storage
|
expand
|
diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 709354a0608a..aaaa6d7e0dfc 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -154,6 +154,7 @@ enum bpf_arg_type { enum bpf_return_type { RET_INTEGER, /* function returns integer */ RET_VOID, /* function doesn't return anything */ + RET_PTR_TO_MAP_VALUE, /* returns a pointer to map elem value */ RET_PTR_TO_MAP_VALUE_OR_NULL, /* returns a pointer to map elem value or NULL */ }; diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index de097a642c3f..cc0c7990f849 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -2545,8 +2545,12 @@ static int check_helper_call(struct bpf_verifier_env *env, int func_id, int insn mark_reg_unknown(env, regs, BPF_REG_0); } else if (fn->ret_type == RET_VOID) { regs[BPF_REG_0].type = NOT_INIT; - } else if (fn->ret_type == RET_PTR_TO_MAP_VALUE_OR_NULL) { - regs[BPF_REG_0].type = PTR_TO_MAP_VALUE_OR_NULL; + } else if (fn->ret_type == RET_PTR_TO_MAP_VALUE_OR_NULL || + fn->ret_type == RET_PTR_TO_MAP_VALUE) { + if (fn->ret_type == RET_PTR_TO_MAP_VALUE) + regs[BPF_REG_0].type = PTR_TO_MAP_VALUE; + else + regs[BPF_REG_0].type = PTR_TO_MAP_VALUE_OR_NULL; /* There is no offset yet applied, variable or fixed */ mark_reg_known_zero(env, regs, BPF_REG_0); regs[BPF_REG_0].off = 0;