{"id":806593,"url":"http://patchwork.ozlabs.org/api/1.0/patches/806593/?format=json","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.0/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},"msgid":"<20170828141045.14143.37805.stgit@john-Precision-Tower-5810>","date":"2017-08-28T14:10:45","name":"[net-next,3/9] bpf: sockmap add missing rcu_read_(un)lock in smap_data_ready","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"6c9315b0eb260429190d4cc0eff28424f7214cc7","submitter":{"id":20028,"url":"http://patchwork.ozlabs.org/api/1.0/people/20028/?format=json","name":"John Fastabend","email":"john.fastabend@gmail.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.0/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/20170828141045.14143.37805.stgit@john-Precision-Tower-5810/mbox/","series":[{"id":179,"url":"http://patchwork.ozlabs.org/api/1.0/series/179/?format=json","date":"2017-08-28T14:09:45","name":"sockmap UAPI updates and fixes","version":1,"mbox":"http://patchwork.ozlabs.org/series/179/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/806593/checks/","tags":{},"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=gmail.com header.i=@gmail.com\n\theader.b=\"RcK7T0Vw\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xgtwQ0rh0z9sMN\n\tfor <patchwork-incoming@ozlabs.org>;\n\tTue, 29 Aug 2017 00:11:02 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751562AbdH1OLA (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tMon, 28 Aug 2017 10:11:00 -0400","from mail-pg0-f65.google.com ([74.125.83.65]:35287 \"EHLO\n\tmail-pg0-f65.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751236AbdH1OK7 (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Mon, 28 Aug 2017 10:10:59 -0400","by mail-pg0-f65.google.com with SMTP id r133so459207pgr.2\n\tfor <netdev@vger.kernel.org>; Mon, 28 Aug 2017 07:10:59 -0700 (PDT)","from [127.0.1.1] ([72.168.144.1]) by smtp.gmail.com with ESMTPSA id\n\t186sm946717pgi.11.2017.08.28.07.10.52\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tMon, 28 Aug 2017 07:10:58 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=subject:from:to:cc:date:message-id:in-reply-to:references\n\t:user-agent:mime-version:content-transfer-encoding;\n\tbh=R3g9HwpjJvpYnYE2w38qTAdFupgBk1MEri1f7jZp368=;\n\tb=RcK7T0Vw3aXxxZx8z2MVmIzjAt1MOo/BxVSWm4Z42Tkonc4/GFLRp73R0KpraqnuFO\n\tl3HCHtCw0huK7sVb2mLXej4Thno9RhcbEvWwIlRGdygcDPZdtWkhlWa1dcd2YDfTXCP9\n\t+bPBRfpCPf8wlHjbe52Vpjl7H4E7Z+oWFzmgaTvFCcdYy6kyLMZrngF0g7zUtr4kKZP4\n\t8ILmMfw4x/ildiPOpR38OrHbi4kwn5fT2avlHv7NvGLJXnnVQPq/mg8ahWheC9fgDeub\n\tgMZbFkDmV+FpilueW9x39upV3Boi4mzV/cC0yvctx3qOV1xl3NfXiyZxwNHylr2q8YYH\n\t8p7Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to\n\t:references:user-agent:mime-version:content-transfer-encoding;\n\tbh=R3g9HwpjJvpYnYE2w38qTAdFupgBk1MEri1f7jZp368=;\n\tb=YSP41ZPZ0dt/Aep1x8PuBqLWhueZcEES6Qdi66+EV2LjoHQ4ksseS5ZG3ky0IgvF5a\n\t9j8nW3qjhgsoJ0o9O3dAR0pGHG78jhm56wr2z5Qv8+CZn6x1+DEQTUuHI8nF1LWoOu6F\n\teq5luovvujr3BuBpMtLJVe9AosM7yAlnIbTorqekayTgdrXS64B5wNkeWM4eOu82wYT2\n\taR9wbcZ5Y9wBbo8Ji7srZaTfk3N/c1BoLG2YMfibdEpv2sxIDlFCH4REGxFsdGNga53M\n\tibsmbEWD3PG+oWFP50beED3ix/MVS6TP8JFFOru3YD0jrFFj42KI50+vmOsFxvwp6oNN\n\twvyQ==","X-Gm-Message-State":"AHYfb5jfB46nbvclcSse3xeuqsFRDzd9X+tPPKRKpxIf15bxjgIR1wpZ\n\tNpjxGe4uZXwfhC3h","X-Received":"by 10.84.134.36 with SMTP id 33mr869046plg.107.1503929458678;\n\tMon, 28 Aug 2017 07:10:58 -0700 (PDT)","Subject":"[net-next PATCH 3/9] bpf: sockmap add missing rcu_read_(un)lock in\n\tsmap_data_ready","From":"John Fastabend <john.fastabend@gmail.com>","To":"ast@kernel.org, daniel@iogearbox.net, davem@davemloft.net","Cc":"netdev@vger.kernel.org, john.fastabend@gmail.com","Date":"Mon, 28 Aug 2017 07:10:45 -0700","Message-ID":"<20170828141045.14143.37805.stgit@john-Precision-Tower-5810>","In-Reply-To":"<20170828140850.14143.83953.stgit@john-Precision-Tower-5810>","References":"<20170828140850.14143.83953.stgit@john-Precision-Tower-5810>","User-Agent":"StGit/0.17.1-dirty","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"References to psock must be done inside RCU critical section.\n\nFixes: 174a79ff9515 (\"bpf: sockmap with sk redirect support\")\nSigned-off-by: John Fastabend <john.fastabend@gmail.com>\n---\n kernel/bpf/sockmap.c |    9 ++++++---\n 1 file changed, 6 insertions(+), 3 deletions(-)","diff":"diff --git a/kernel/bpf/sockmap.c b/kernel/bpf/sockmap.c\nindex a6882e5..266011c8 100644\n--- a/kernel/bpf/sockmap.c\n+++ b/kernel/bpf/sockmap.c\n@@ -227,11 +227,14 @@ static void smap_data_ready(struct sock *sk)\n {\n \tstruct smap_psock *psock;\n \n-\twrite_lock_bh(&sk->sk_callback_lock);\n+\trcu_read_lock();\n \tpsock = smap_psock_sk(sk);\n-\tif (likely(psock))\n+\tif (likely(psock)) {\n+\t\twrite_lock_bh(&sk->sk_callback_lock);\n \t\tstrp_data_ready(&psock->strp);\n-\twrite_unlock_bh(&sk->sk_callback_lock);\n+\t\twrite_unlock_bh(&sk->sk_callback_lock);\n+\t}\n+\trcu_read_unlock();\n }\n \n static void smap_tx_work(struct work_struct *w)\n","prefixes":["net-next","3/9"]}