From patchwork Sat Sep 19 14:43:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Lunn X-Patchwork-Id: 1367593 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=lunn.ch Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4Bttkl1p1Xz9sT6 for ; Sun, 20 Sep 2020 00:44:15 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726541AbgISOoC (ORCPT ); Sat, 19 Sep 2020 10:44:02 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:45202 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726312AbgISOn6 (ORCPT ); Sat, 19 Sep 2020 10:43:58 -0400 Received: from andrew by vps0.lunn.ch with local (Exim 4.94) (envelope-from ) id 1kJe5h-00FNaS-4h; Sat, 19 Sep 2020 16:43:53 +0200 From: Andrew Lunn To: netdev Cc: Florian Fainelli , Jakub Kicinski , Jiri Pirko , Vladimir Oltean , Chris Healy , Andrew Lunn Subject: [PATCH net-next RFC v1 2/4] net: dsa: Add devlink port regions support to DSA Date: Sat, 19 Sep 2020 16:43:30 +0200 Message-Id: <20200919144332.3665538-3-andrew@lunn.ch> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200919144332.3665538-1-andrew@lunn.ch> References: <20200919144332.3665538-1-andrew@lunn.ch> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Allow DSA drivers to make use of devlink port regions, via simple wrappers. Signed-off-by: Andrew Lunn --- include/net/dsa.h | 5 +++++ net/core/devlink.c | 3 +-- net/dsa/dsa.c | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/include/net/dsa.h b/include/net/dsa.h index d16057c5987a..01da896b2998 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -665,6 +665,11 @@ struct devlink_region * dsa_devlink_region_create(struct dsa_switch *ds, const struct devlink_region_ops *ops, u32 region_max_snapshots, u64 region_size); +struct devlink_region * +dsa_devlink_port_region_create(struct dsa_switch *ds, + int port, + const struct devlink_port_region_ops *ops, + u32 region_max_snapshots, u64 region_size); void dsa_devlink_region_destroy(struct devlink_region *region); struct dsa_port *dsa_port_from_netdev(struct net_device *netdev); diff --git a/net/core/devlink.c b/net/core/devlink.c index 66469cdcdc1e..4701ec17f3da 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -4292,7 +4292,6 @@ static int devlink_nl_cmd_region_get_port_dumpit(struct sk_buff *msg, } out: - mutex_unlock(&devlink_mutex); return err; } @@ -4330,7 +4329,7 @@ static int devlink_nl_cmd_region_get_devlink_dumpit(struct sk_buff *msg, } out: - mutex_unlock(&devlink_mutex); + mutex_unlock(&devlink->lock); return err; } diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c index 5c18c0214aac..97fcabdeccec 100644 --- a/net/dsa/dsa.c +++ b/net/dsa/dsa.c @@ -414,6 +414,20 @@ dsa_devlink_region_create(struct dsa_switch *ds, } EXPORT_SYMBOL_GPL(dsa_devlink_region_create); +struct devlink_region * +dsa_devlink_port_region_create(struct dsa_switch *ds, + int port, + const struct devlink_port_region_ops *ops, + u32 region_max_snapshots, u64 region_size) +{ + struct dsa_port *dp = dsa_to_port(ds, port); + + return devlink_port_region_create(&dp->devlink_port, ops, + region_max_snapshots, + region_size); +} +EXPORT_SYMBOL_GPL(dsa_devlink_port_region_create); + void dsa_devlink_region_destroy(struct devlink_region *region) { devlink_region_destroy(region);