netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli.us>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, mlxsw@mellanox.com, idosch@mellanox.com,
	jakub.kicinski@netronome.com, f.fainelli@gmail.com,
	andrew@lunn.ch, vivien.didelot@gmail.com
Subject: [patch net-next v2 06/15] net: devlink: don't take devlink_mutex for devlink_compat_*
Date: Fri, 22 Mar 2019 17:56:27 +0100	[thread overview]
Message-ID: <20190322165636.1725-7-jiri@resnulli.us> (raw)
In-Reply-To: <20190322165636.1725-1-jiri@resnulli.us>

From: Jiri Pirko <jiri@mellanox.com>

The netdevice is guaranteed to not disappear so we can rely that
devlink_port and devlink won't disappear as well. No need to take
devlink_mutex so don't take it here.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
---
 net/core/devlink.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/net/core/devlink.c b/net/core/devlink.c
index 3dc51ddf7451..1e125c3b890c 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -6444,17 +6444,15 @@ void devlink_compat_running_version(struct net_device *dev,
 	dev_hold(dev);
 	rtnl_unlock();
 
-	mutex_lock(&devlink_mutex);
 	devlink = netdev_to_devlink(dev);
 	if (!devlink || !devlink->ops->info_get)
-		goto unlock_list;
+		goto out;
 
 	mutex_lock(&devlink->lock);
 	__devlink_compat_running_version(devlink, buf, len);
 	mutex_unlock(&devlink->lock);
-unlock_list:
-	mutex_unlock(&devlink_mutex);
 
+out:
 	rtnl_lock();
 	dev_put(dev);
 }
@@ -6462,22 +6460,22 @@ void devlink_compat_running_version(struct net_device *dev,
 int devlink_compat_flash_update(struct net_device *dev, const char *file_name)
 {
 	struct devlink *devlink;
-	int ret = -EOPNOTSUPP;
+	int ret;
 
 	dev_hold(dev);
 	rtnl_unlock();
 
-	mutex_lock(&devlink_mutex);
 	devlink = netdev_to_devlink(dev);
-	if (!devlink || !devlink->ops->flash_update)
-		goto unlock_list;
+	if (!devlink || !devlink->ops->flash_update) {
+		ret = -EOPNOTSUPP;
+		goto out;
+	}
 
 	mutex_lock(&devlink->lock);
 	ret = devlink->ops->flash_update(devlink, file_name, NULL, NULL);
 	mutex_unlock(&devlink->lock);
-unlock_list:
-	mutex_unlock(&devlink_mutex);
 
+out:
 	rtnl_lock();
 	dev_put(dev);
 
-- 
2.17.2


  parent reply	other threads:[~2019-03-22 16:56 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-22 16:56 [patch net-next v2 00/15] devlink: small spring cleanup Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 01/15] net: devlink: add couple of missing mutex_destroy() calls Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 02/15] bnxt: add missing net/devlink.h include Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 03/15] dsa: " Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 04/15] bnxt: set devlink port attrs properly Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 05/15] bnxt: call devlink_port_type_eth_set() before port register Jiri Pirko
2019-03-22 16:56 ` Jiri Pirko [this message]
2019-03-22 16:56 ` [patch net-next v2 07/15] net: devlink: don't pass return value of __devlink_port_type_set() Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 08/15] mlxsw: Move devlink_port_attrs_set() call before register Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 09/15] dsa: move " Jiri Pirko
2019-03-22 20:47   ` Andrew Lunn
2019-03-22 16:56 ` [patch net-next v2 10/15] net: devlink: disallow port_attrs_set() to be called " Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 11/15] nfp: move devlink port type set after netdev registration Jiri Pirko
2019-03-23 20:31   ` Jakub Kicinski
2019-03-23 22:47     ` Jiri Pirko
2019-03-24  3:04       ` Jakub Kicinski
2019-03-24  8:01         ` Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 12/15] bnxt: set devlink port type after registration Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 13/15] net: devlink: warn on setting type on unregistered port Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 14/15] net: devlink: add port type spinlock Jiri Pirko
2019-03-22 16:56 ` [patch net-next v2 15/15] net: devlink: select NET_DEVLINK from drivers Jiri Pirko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190322165636.1725-7-jiri@resnulli.us \
    --to=jiri@resnulli.us \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=idosch@mellanox.com \
    --cc=jakub.kicinski@netronome.com \
    --cc=mlxsw@mellanox.com \
    --cc=netdev@vger.kernel.org \
    --cc=vivien.didelot@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).