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=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 1A383C169C4 for ; Wed, 6 Feb 2019 19:08:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D92AF20844 for ; Wed, 6 Feb 2019 19:08:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XVmU2ouX" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726764AbfBFTIV (ORCPT ); Wed, 6 Feb 2019 14:08:21 -0500 Received: from mail-pl1-f195.google.com ([209.85.214.195]:47015 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726708AbfBFTIV (ORCPT ); Wed, 6 Feb 2019 14:08:21 -0500 Received: by mail-pl1-f195.google.com with SMTP id o6so3501783pls.13 for ; Wed, 06 Feb 2019 11:08:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=gV71zWz1qcOIztCZnMvyw2SALtzhu+erXmtZLvvG5L0=; b=XVmU2ouX7Pr5/6B/xhEGAztveAga5X2uxZzVV+6U6AcL5omI+Btjc3R6G7MtC8cY5f UHbow2VGkW5rX4oAX7KNwwY/N+1ie3EGDGfGR3d0uo/tWKnsmL79EJp51Cd9PJb9WirK 9AU7bZSadf+OZyLH8hMqj6JykkhkKeMDPfq/BhzRpWQbPTY9naBUaggPRA/ts6ai5W3u 2Pq1qB5jgWvbXKo4NmNpkysnjxVBBlkoOuTgEs+QzoP95SgFs0WMDJyFJblKMGeYl47N dIVg3TFvzS6pZok74geB2KkIpzSidIWrNuh0itz8erMhx+0xnngfxgCkPm02Axsax1lP 8x4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=gV71zWz1qcOIztCZnMvyw2SALtzhu+erXmtZLvvG5L0=; b=YfCjO9FhoL1VJrRKMgNNxtQSC1wbDgSEyx3YpLwC4tcIPlk1mPCMrMZI7Zy8hIySvc yNqvMbixw6SavHsQczEkqg4WzL4v1J/7QEHQc4Xi8F7GTMU4KTd3M6wc9y10OzzrMSn9 5w1CnoJnkBPXLm4SO01tcvesQo+75HtDiHy5rQ8BiRd8p9ubvuz01kCztJRR4hxL2ibp pvQCyQA+RLahlws0DY0BchNaNyAkm31IxApsF3YMJeOIZqhejIUknr+XvRAgosjlt0TK 2W84mrYBTphkXn8j56sy1Lmcq/4Lc2SsiFWB++K8rzN4h25EQKK2bVYO7dyWpgnKvCZ6 DVZA== X-Gm-Message-State: AHQUAuabkxq4WqWGhdjViRSYTn8Tl/I4kpUHOOqL4XUo3ztcZwcO5azE SftfsypGXPyHra8+EBHTO7c= X-Google-Smtp-Source: AHgI3IagDpx1A6RotmNl8Y1VX4TwO1cX6nfSqTptqxtBKs07RxjrloRqwvkw0gdShsQeIFdtnS1wTg== X-Received: by 2002:a17:902:584:: with SMTP id f4mr12577867plf.28.1549480100337; Wed, 06 Feb 2019 11:08:20 -0800 (PST) Received: from ?IPv6:2620:15c:2c1:200:55c7:81e6:c7d8:94b? ([2620:15c:2c1:200:55c7:81e6:c7d8:94b]) by smtp.gmail.com with ESMTPSA id p64sm11213856pfi.56.2019.02.06.11.08.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Feb 2019 11:08:19 -0800 (PST) Subject: Re: [PATCH net 1/2] geneve: should not call rt6_lookup() when ipv6 was disabled To: David Ahern , Hangbin Liu , netdev@vger.kernel.org Cc: Stefano Brivio , David Miller References: <20190206125111.5286-1-liuhangbin@gmail.com> <20190206125111.5286-2-liuhangbin@gmail.com> <9b7585c2-bab6-1c6c-7bab-9542406acf1a@gmail.com> From: Eric Dumazet Message-ID: <79530b1e-aa32-682f-9735-8bc67098ac88@gmail.com> Date: Wed, 6 Feb 2019 11:08:18 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <9b7585c2-bab6-1c6c-7bab-9542406acf1a@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On 02/06/2019 10:54 AM, David Ahern wrote: > On 2/6/19 4:51 AM, Hangbin Liu wrote: >> When we add a new GENEVE device with IPv6 remote, checking only for >> IS_ENABLED(CONFIG_IPV6) is not enough as we may disable IPv6 in kernel >> cmd(ipv6.disable=1), which will cause a NULL pointer dereference. >> >> Reported-by: Jianlin Shi >> Signed-off-by: Hangbin Liu >> --- >> drivers/net/geneve.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c >> index 58bbba8582b0..0658715581e3 100644 >> --- a/drivers/net/geneve.c >> +++ b/drivers/net/geneve.c >> @@ -1512,6 +1512,10 @@ static void geneve_link_config(struct net_device *dev, >> } >> #if IS_ENABLED(CONFIG_IPV6) >> case AF_INET6: { >> + struct inet6_dev *idev = in6_dev_get(dev); >> + if (!idev) >> + break; > > Since you don't need an idev reference rcu_access_pointer should be > enough to say v6 is enabled on this device. ie., add a helper to check > that rcu_access_pointer(dev->ip6_ptr) is non-NULL > I guess RTNL is held at this point, so we can use a lockdep enabled accessor : __in6_dev_get()