From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F736C43381 for ; Fri, 22 Feb 2019 15:03:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7006E206A3 for ; Fri, 22 Feb 2019 15:03:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kpf61x5K" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726560AbfBVPDb (ORCPT ); Fri, 22 Feb 2019 10:03:31 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:43946 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726352AbfBVPDb (ORCPT ); Fri, 22 Feb 2019 10:03:31 -0500 Received: by mail-pl1-f196.google.com with SMTP id m10so1206467plt.10 for ; Fri, 22 Feb 2019 07:03:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=8NdBzP6OtKELJfOuzfmE9XGlqxJGeTZoi3a97W/eZI8=; b=kpf61x5Ka5V//PriUlNKFuPwBFVd+5HOy33zPznIuTPsMuBZQDbVpmlAEf0soJ+15K urbvjOoVKLykLVdP44EC/pYd7O2sL4032U7kuhUOiJcWc6lt14EY91kCVpg6McI9Bp0j /JYo0E1aX78wJckutLaJuZs3pK6JkJfPhlw5RAvr/mB3lr0qCxr0NfcIw7JHY7w0Gmji XutEsxrB/xXB3eQv4r5X4i6hIe24x8Dex0CyxueHAp3XbN3yBwGk868x5njnEL5yi9yU oOxNfXU3DjyDYWf1Vq5ruC2wqBjzNgvOtupIi4QJDzmFDQf5bU4oumjDpz0oiW8d/mhf FSLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=8NdBzP6OtKELJfOuzfmE9XGlqxJGeTZoi3a97W/eZI8=; b=GDojRZXN3UWOkID9SDeVuWXWe3fTc6UTPsnxGnK8Mocye61yxavKQeQ+PcHEc/3irl UwdsLfZmkBLWpPuPCzK8+Yduu1DGb9pmY4+DekY86UyiMn5+Czonc2u1W+wDLXogRH27 lVyXVjsgYfG9okQQw7zMFU694ps+a0hYJlO4BovAjpfCIYAntuFT545Op8eg4kT/G/H4 zvzwaB5KlD5hzn7XH3vWifuwtMUy780MTn0sBFaefSN71ErMvMCh4r7llUodgt4MXij5 AZUD3MIN2JRxsHGVz5O7nnLuTdJ621g+OO/JS+jwX0b31lh3+AZl7JJMFhqngXA5y9PE VTOw== X-Gm-Message-State: AHQUAuYHwlo+nRY2PEYlCK+yDOajHQmdnEkZ274kVmU7LjrMLjgzdABt Qs82q3b+QXqAOMnpeH64vN4H8nVs X-Google-Smtp-Source: AHgI3IZ1LyHkwBmyXDxYOd7i0q4ulObKDi1RRPt1BpaYNz+j6QTCErpO5y4mRhfRay9Kph+oVWqibg== X-Received: by 2002:a17:902:1a2:: with SMTP id b31mr4655493plb.87.1550847810324; Fri, 22 Feb 2019 07:03:30 -0800 (PST) Received: from [172.27.227.28] ([216.129.126.118]) by smtp.googlemail.com with ESMTPSA id z6sm2795071pgo.31.2019.02.22.07.03.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 07:03:29 -0800 (PST) Subject: Re: [PATCH net-next v2] ip_tunnel: Add dst_cache management lwtunnel_state of ip tunnel To: wenxu , davem@davemloft.net, netdev@vger.kernel.org References: <1550804401-16232-1-git-send-email-wenxu@ucloud.cn> <26082211-7038-f26e-a8cf-ef5767c7cd77@ucloud.cn> From: David Ahern Message-ID: <9277b934-63f6-2f16-bd46-948bc64cc46e@gmail.com> Date: Fri, 22 Feb 2019 10:03:25 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <26082211-7038-f26e-a8cf-ef5767c7cd77@ucloud.cn> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On 2/21/19 11:14 PM, wenxu wrote: > build_state in the rcu_read_lock and disable the preempt > >  rcu_read_lock(); >     ops = rcu_dereference(lwtun_encaps[encap_type]); >     if (likely(ops && ops->build_state && try_module_get(ops->owner))) { >         found = true; >         ret = ops->build_state(encap, family, cfg, lws, extack); >         if (ret) >             module_put(ops->owner); >     }   >     rcu_read_unlock(); > Missed that. Once a reference is taken the rcu_read_lock can be dropped before calling build_state allowing the allocations to be GFP_KERNEL.