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=-9.0 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 2CC59C43381 for ; Thu, 21 Feb 2019 17:46:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EF3CC20818 for ; Thu, 21 Feb 2019 17:46:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="VewrsbVo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728744AbfBURqp (ORCPT ); Thu, 21 Feb 2019 12:46:45 -0500 Received: from mail-qt1-f196.google.com ([209.85.160.196]:44901 "EHLO mail-qt1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728733AbfBURqo (ORCPT ); Thu, 21 Feb 2019 12:46:44 -0500 Received: by mail-qt1-f196.google.com with SMTP id d2so6797714qti.11 for ; Thu, 21 Feb 2019 09:46:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=G7WO8kh5U1TvdM1SCF+Z3WJZnweGpcuresnBJgqjhac=; b=VewrsbVo8b8xLMETKBRXaxEQSfboVQl2Tw9NGkRMoIuexgPgVtLdoI4+vi24ZRW9AP ee/62lz0XFHZ5XHvi4ha+NCJwy+OjfSqZfLavfvHoWoypdn9lpbwFK4X9tL64cu6tbI9 wedhzu5I3oenGT9VpktqsfguHS1Cryc+dcqSNW7WtK0LnfZAhA7Jv1lUJYD6bYuNRBbw 5F5WvR1urp1k56nIr+szGgfgSh2uD4h9UGpI9hz67BfdF+niVwiIgPZJ/3vr920Ph9pM ik0ECVoz8pnSowQS15jBI7tP2Y/tlORR1UmZbd6pxcsGH8jBZikJZo32rAkIT1poSSfS /YYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=G7WO8kh5U1TvdM1SCF+Z3WJZnweGpcuresnBJgqjhac=; b=qoHN7WLakcCytiWHfItgpH7Ge7wTxeKdyicrrkcjSBgIEEHFqOWAlEVSZY9vnglt6M ZutSejBOsUTG+c1aM6kgFDed01568rQj/0wfOYHSly0tVXbuSmFmlgy1I7AjGt3Ch1yX /lPeatvfI7dTS3TfkpKbsv8eund+Ltu2IxdQwuB3J5ZYSEWN7rLmXAvM8pLvcz/tZD0m tB20MJZjNz4emdOcZWTHzTzRMJh+Bzz+4FabMztR0yJYU8qpvAEIjA0cEwQfPfqafDdp JewS4clJI/fLHQqsuIEBFO6dXwMtWytKBDdaPh4C+kNcrjGitjicMPNl1nfys7lpGHVK rbLg== X-Gm-Message-State: AHQUAubyOQQVss55Tp5nyyucuDRLojNWFcvHrmnCp9aZRpWMXfF6icV0 6/oWlIen6IJDAD9C9LytsGZr0g== X-Google-Smtp-Source: AHgI3IZxU0i/if8tR2o7ZfMm1a016V/KvpnCtaiLWTNJ7W7qgqnWp0tGM1JQtoXj4mz5s+b6tA07yg== X-Received: by 2002:ac8:3183:: with SMTP id h3mr30955391qte.368.1550771202814; Thu, 21 Feb 2019 09:46:42 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id y17sm12976352qtc.33.2019.02.21.09.46.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Feb 2019 09:46:42 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net, jiri@resnulli.us Cc: mkubecek@suse.cz, andrew@lunn.ch, f.fainelli@gmail.com, netdev@vger.kernel.org, oss-drivers@netronome.com, Jakub Kicinski Subject: [PATCH net-next 2/5] ethtool: hold a reference to the netdevice around devlink compat Date: Thu, 21 Feb 2019 09:46:17 -0800 Message-Id: <20190221174620.12144-3-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190221174620.12144-1-jakub.kicinski@netronome.com> References: <20190221174620.12144-1-jakub.kicinski@netronome.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When calling into devlink compat code make sure we have a reference on the netdevice on which the operation was invoked. Signed-off-by: Jakub Kicinski --- net/core/ethtool.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 1320e8dce559..6832476dfcaf 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c @@ -805,11 +805,14 @@ static noinline_for_stack int ethtool_get_drvinfo(struct net_device *dev, if (ops->get_eeprom_len) info.eedump_len = ops->get_eeprom_len(dev); - rtnl_unlock(); - if (!info.fw_version[0]) + if (!info.fw_version[0]) { + dev_hold(dev); + rtnl_unlock(); devlink_compat_running_version(dev, info.fw_version, sizeof(info.fw_version)); - rtnl_lock(); + rtnl_lock(); + dev_put(dev); + } if (copy_to_user(useraddr, &info, sizeof(info))) return -EFAULT; @@ -2043,9 +2046,11 @@ static noinline_for_stack int ethtool_flash_device(struct net_device *dev, if (!dev->ethtool_ops->flash_device) { int ret; + dev_hold(dev); rtnl_unlock(); ret = devlink_compat_flash_update(dev, efl.data); rtnl_lock(); + dev_put(dev); return ret; } -- 2.19.2