Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp748484pxb; Wed, 29 Sep 2021 08:55:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwaN0RPf1ovGiU1awvED5VGUK7sptWIRyDJoyF47DOTVsgBlX6fGExVIwWGkWCwegcEaJT2 X-Received: by 2002:a17:906:d7af:: with SMTP id pk15mr477695ejb.223.1632930927930; Wed, 29 Sep 2021 08:55:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632930927; cv=none; d=google.com; s=arc-20160816; b=VzPu1k5t9mKoEbEH88XvgvyoKj2k7W4cOFYAQC30B1CBCcsVvMMTT9pAgNI0wRc2Aa 1qqUJFLVKevuQk2tzTfBdMlrzVlmR00b5MprUa93doaVOg+AJfTvlAYJiELckVumW2tt QPGd6R64P50yzlDYKMWfkGRbFqQc+4LX9OkIFbqzsJoALCl9AxHyYSeCGMFK4kSxxhLT eZsGF4sNpxsFK3BnoUxU10+ZkYevFdpSPAt4ADHWfi2SGoIc8NR8qKpWmyCMRtBFatVk rLQM62c0eW6lE6JxsdMSTqTJRVoIDn281RRH85vl3rkXFhewlnKYHXIzLD4XFMemZ4Cf drbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=clI4XEk6oqZbv8GXJwMHSEdTcYqaz+1M9yX3BZ1l/KM=; b=Ud6s/uLmZL4dCuN9Ya474jPqocjAUDN/0cChk4aWDfVQy6hPCFBCQSRttT3TVvbTBb p1VhBGkBpJQFZR27Mh8xdiVQ86x0igMKM1aPsDlzzfh4KHsY6t4LBa7pFUGCU4Zqoi65 +daO1LHk6C10I0K6BNl1oKTOZz40rEI8UCuuFlA/mo3affVDpqvTNOtjlo6/ahISms0O fL1Z/xnvututKH+4VaKWZOco1vDcV8zZuJToGUyGTNVwW+E+I+ZvZbbRQC0ThVGZUKxm czRFJ49tbZc2zYS21iXRdcD6TYpDTiARfvxdvGmSWo2i6gx/H3pdSSiAFb2/opUj5j25 V9fA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=TXfiJIOj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f16si309002edq.170.2021.09.29.08.55.00; Wed, 29 Sep 2021 08:55:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=TXfiJIOj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344350AbhI2N5e (ORCPT + 99 others); Wed, 29 Sep 2021 09:57:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:39814 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244987AbhI2N5d (ORCPT ); Wed, 29 Sep 2021 09:57:33 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 93920613D1; Wed, 29 Sep 2021 13:55:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1632923752; bh=40noVjUADcTFuL18AWlGlA5AqcgIKtJPa+QjlNndmaA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=TXfiJIOjDYkjlTD+FmCDLSeBSzFecqoscMatnM7hRJz6j32y6GJB5hP8vfTt6JtQw gn9IlvE39J2vPbTRVUjz/jaT1L06lP4uP3LB0zCIkKE19K7ZX7zpsQT4XmXdM9B3iy n2nfvYiL7HU7s8inrnWIlJkpF247sn7mwN75YafcAT+/81FgXfryg4c2QAJFCt3D9j ZSL6MbbLr8QpNIW+tnfQcnHcw8vhN2rd8/kZZ/1VvZZr/OQDqKCuAkkyMyIRCyYbsS 0inDhEXaYXr29LaGJbQDn0nEnUJH5BtJeJ6S5lwBpW7pky/dWO5mnEJNlMzLVnU0ir pugj5/zEYMKlg== Date: Wed, 29 Sep 2021 06:55:49 -0700 From: Jakub Kicinski To: Leon Romanovsky Cc: "David S . Miller" , Leon Romanovsky , Alexandre Belloni , Andrew Lunn , Ariel Elior , Bin Luo , Claudiu Manoil , Coiby Xu , Derek Chickles , drivers@pensando.io, Eric Dumazet , Felix Manlunas , Florian Fainelli , Geetha sowjanya , Greg Kroah-Hartman , GR-everest-linux-l2@marvell.com, GR-Linux-NIC-Dev@marvell.com, hariprasad , Ido Schimmel , intel-wired-lan@lists.osuosl.org, Ioana Ciornei , Jerin Jacob , Jesse Brandeburg , Jiri Pirko , Jonathan Lemon , Linu Cherian , linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-rdma@vger.kernel.org, linux-staging@lists.linux.dev, Manish Chopra , Michael Chan , Moshe Shemesh , netdev@vger.kernel.org, oss-drivers@corigine.com, Richard Cochran , Saeed Mahameed , Salil Mehta , Satanand Burla , Shannon Nelson , Shay Drory , Simon Horman , Subbaraya Sundeep , Sunil Goutham , Taras Chornyi , Tariq Toukan , Tony Nguyen , UNGLinuxDriver@microchip.com, Vadym Kochan , Vivien Didelot , Vladimir Oltean , Yisen Zhuang Subject: Re: [PATCH net-next v1 4/5] net/mlx5: Register separate reload devlink ops for multiport device Message-ID: <20210929065549.43b13203@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 29 Sep 2021 15:00:45 +0300 Leon Romanovsky wrote: > From: Leon Romanovsky >=20 > Mulitport slave device doesn't support devlink reload, so instead of > complicating initialization flow with devlink_reload_enable() which > will be removed in next patch, set specialized devlink ops callbacks > for reload operations. >=20 > This fixes an error when reload counters exposed (and equal zero) for > the mode that is not supported at all. >=20 > Fixes: d89ddaae1766 ("net/mlx5: Disable devlink reload for multi port sla= ve device") > Signed-off-by: Leon Romanovsky > --- > drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) >=20 > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c b/drivers/= net/ethernet/mellanox/mlx5/core/devlink.c > index 47c9f7f5bb79..e85eca6976a9 100644 > --- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c > +++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c > @@ -309,14 +309,17 @@ static struct devlink_ops mlx5_devlink_ops =3D { > #endif > .flash_update =3D mlx5_devlink_flash_update, > .info_get =3D mlx5_devlink_info_get, > + .trap_init =3D mlx5_devlink_trap_init, > + .trap_fini =3D mlx5_devlink_trap_fini, > + .trap_action_set =3D mlx5_devlink_trap_action_set, > +}; > + > +static struct devlink_ops mlx5_devlink_reload =3D { > .reload_actions =3D BIT(DEVLINK_RELOAD_ACTION_DRIVER_REINIT) | > BIT(DEVLINK_RELOAD_ACTION_FW_ACTIVATE), > .reload_limits =3D BIT(DEVLINK_RELOAD_LIMIT_NO_RESET), > .reload_down =3D mlx5_devlink_reload_down, > .reload_up =3D mlx5_devlink_reload_up, > - .trap_init =3D mlx5_devlink_trap_init, > - .trap_fini =3D mlx5_devlink_trap_fini, > - .trap_action_set =3D mlx5_devlink_trap_action_set, > }; > =20 > void mlx5_devlink_trap_report(struct mlx5_core_dev *dev, int trap_id, st= ruct sk_buff *skb, > @@ -791,6 +794,7 @@ static void mlx5_devlink_traps_unregister(struct devl= ink *devlink) > =20 > int mlx5_devlink_register(struct devlink *devlink) > { > + struct mlx5_core_dev *dev =3D devlink_priv(devlink); > int err; > =20 > err =3D devlink_params_register(devlink, mlx5_devlink_params, > @@ -808,6 +812,9 @@ int mlx5_devlink_register(struct devlink *devlink) > if (err) > goto traps_reg_err; > =20 > + if (!mlx5_core_is_mp_slave(dev)) > + devlink_set_ops(devlink, &mlx5_devlink_reload); Does this work? Where do you make a copy of the ops? =F0=9F=A4=94 You can't= modify the driver-global ops, to state the obvious.