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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A597AC433EF for ; Wed, 6 Jul 2022 23:24:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233928AbiGFXYx (ORCPT ); Wed, 6 Jul 2022 19:24:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38838 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234489AbiGFXYl (ORCPT ); Wed, 6 Jul 2022 19:24:41 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8424B2C111 for ; Wed, 6 Jul 2022 16:24:36 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 3E386B81EFB for ; Wed, 6 Jul 2022 23:24:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E155AC3411C; Wed, 6 Jul 2022 23:24:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1657149874; bh=F8iWjOdTb/DWE3YB4pXgL3p5V9HA8xDl0K5JrdZqOCk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CILiXhWdAZ3GJNYrZuCVQkEppB8fB7nlI17GDBKWXK5rkTcGF8I7WWIlxa8SOjjZM 08HnOw8Xslb8oQGUt7R4YOMkz/ugv5eAZyEXne39umaVNN+V+o5xqg1LD+Q77XRpYD 3TJty2JfP8sb6b8ntdNgAfLB4UMp2kzTqCNWDYA9aSe8t6XJq/YJdfZTBlkAuBL9Rt kNsxR7stpXIKUSUsMwLg/BJMFydaU6HPd6mxwYjBS4cNcSyGbTOYlFaiUfTQ3egq8p a2BpNaUjGh3F3XFRqREipWibQOssyckvtmpW7c6ebRjWws+PTWHSszLKbXvxOZQSb2 pqAZmxrGHQY9g== From: Saeed Mahameed To: "David S. Miller" , Jakub Kicinski , Paolo Abeni , Eric Dumazet Cc: Saeed Mahameed , netdev@vger.kernel.org, Moshe Shemesh , Leon Romanovsky Subject: [net-next 09/15] devlink: Hold the instance lock in port_new / port_del callbacks Date: Wed, 6 Jul 2022 16:24:15 -0700 Message-Id: <20220706232421.41269-10-saeed@kernel.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220706232421.41269-1-saeed@kernel.org> References: <20220706232421.41269-1-saeed@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Moshe Shemesh Let the core take the devlink instance lock around port_new and port_del callbacks and remove the now redundant locking in the only driver that currently use them. Signed-off-by: Moshe Shemesh Reviewed-by: Leon Romanovsky Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c | 4 ---- net/core/devlink.c | 6 +----- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c index 2068c22ff367..7d955a4d9f14 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c @@ -355,9 +355,7 @@ int mlx5_devlink_sf_port_new(struct devlink *devlink, "Port add is only supported in eswitch switchdev mode or SF ports are disabled."); return -EOPNOTSUPP; } - devl_lock(devlink); err = mlx5_sf_add(dev, table, new_attr, extack, new_port_index); - devl_unlock(devlink); mlx5_sf_table_put(table); return err; } @@ -402,9 +400,7 @@ int mlx5_devlink_sf_port_del(struct devlink *devlink, unsigned int port_index, goto sf_err; } - devl_lock(devlink); mlx5_esw_offloads_sf_vport_disable(esw, sf->hw_fn_id); - devl_unlock(devlink); mlx5_sf_id_erase(table, sf); mutex_lock(&table->sf_state_lock); diff --git a/net/core/devlink.c b/net/core/devlink.c index 970e5c2a52bd..e206cc90bec5 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -1712,7 +1712,7 @@ static int devlink_port_new_notifiy(struct devlink *devlink, if (!msg) return -ENOMEM; - mutex_lock(&devlink->lock); + lockdep_assert_held(&devlink->lock); devlink_port = devlink_port_get_by_index(devlink, port_index); if (!devlink_port) { err = -ENODEV; @@ -1725,11 +1725,9 @@ static int devlink_port_new_notifiy(struct devlink *devlink, goto out; err = genlmsg_reply(msg, info); - mutex_unlock(&devlink->lock); return err; out: - mutex_unlock(&devlink->lock); nlmsg_free(msg); return err; } @@ -9067,13 +9065,11 @@ static const struct genl_small_ops devlink_nl_ops[] = { .cmd = DEVLINK_CMD_PORT_NEW, .doit = devlink_nl_cmd_port_new_doit, .flags = GENL_ADMIN_PERM, - .internal_flags = DEVLINK_NL_FLAG_NO_LOCK, }, { .cmd = DEVLINK_CMD_PORT_DEL, .doit = devlink_nl_cmd_port_del_doit, .flags = GENL_ADMIN_PERM, - .internal_flags = DEVLINK_NL_FLAG_NO_LOCK, }, { .cmd = DEVLINK_CMD_LINECARD_GET, -- 2.36.1