2021-09-23 18:15:30

by Leon Romanovsky

[permalink] [raw]
Subject: [PATCH net-next 0/6] Batch of devlink related fixes

From: Leon Romanovsky <[email protected]>

Hi,

I'm asking to apply this batch of devlink fixes to net-next and not to
net, because most if not all fixes are for old code or/and can be considered
as cleanup.

It will cancel the need to deal with merge conflicts for my next devlink series :).

Thanks

Leon Romanovsky (6):
bnxt_en: Check devlink allocation and registration status
bnxt_en: Properly remove port parameter support
devlink: Delete not used port parameters APIs
devlink: Remove single line function obfuscations
ice: Delete always true check of PF pointer
qed: Don't ignore devlink allocation failures

drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 +-
.../net/ethernet/broadcom/bnxt/bnxt_devlink.c | 26 +---
.../net/ethernet/broadcom/bnxt/bnxt_devlink.h | 13 --
drivers/net/ethernet/intel/ice/ice_main.c | 3 -
drivers/net/ethernet/qlogic/qede/qede_main.c | 12 +-
drivers/scsi/qedf/qedf_main.c | 2 +
include/net/devlink.h | 6 -
net/core/devlink.c | 123 +++++-------------
8 files changed, 47 insertions(+), 143 deletions(-)

--
2.31.1


2021-09-23 18:15:40

by Leon Romanovsky

[permalink] [raw]
Subject: [PATCH net-next 2/6] bnxt_en: Properly remove port parameter support

From: Leon Romanovsky <[email protected]>

This driver doesn't have any port parameters and registers
devlink port parameters with empty table. Remove the useless
calls to devlink_port_params_register and _unregister.

Fixes: da203dfa89ce ("Revert "devlink: Add a generic wake_on_lan port parameter"")
Signed-off-by: Leon Romanovsky <[email protected]>
---
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 13 -------------
1 file changed, 13 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
index dc0851f709f5..ed95e28d60ef 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
@@ -736,9 +736,6 @@ static const struct devlink_param bnxt_dl_params[] = {
NULL),
};

-static const struct devlink_param bnxt_dl_port_params[] = {
-};
-
static int bnxt_dl_params_register(struct bnxt *bp)
{
int rc;
@@ -753,14 +750,6 @@ static int bnxt_dl_params_register(struct bnxt *bp)
rc);
return rc;
}
- rc = devlink_port_params_register(&bp->dl_port, bnxt_dl_port_params,
- ARRAY_SIZE(bnxt_dl_port_params));
- if (rc) {
- netdev_err(bp->dev, "devlink_port_params_register failed\n");
- devlink_params_unregister(bp->dl, bnxt_dl_params,
- ARRAY_SIZE(bnxt_dl_params));
- return rc;
- }
devlink_params_publish(bp->dl);

return 0;
@@ -773,8 +762,6 @@ static void bnxt_dl_params_unregister(struct bnxt *bp)

devlink_params_unregister(bp->dl, bnxt_dl_params,
ARRAY_SIZE(bnxt_dl_params));
- devlink_port_params_unregister(&bp->dl_port, bnxt_dl_port_params,
- ARRAY_SIZE(bnxt_dl_port_params));
}

int bnxt_dl_register(struct bnxt *bp)
--
2.31.1

2021-09-23 18:15:49

by Leon Romanovsky

[permalink] [raw]
Subject: [PATCH net-next 6/6] qed: Don't ignore devlink allocation failures

From: Leon Romanovsky <[email protected]>

devlink is a software interface that doesn't depend on any hardware
capabilities. The failure in SW means memory issues, wrong parameters,
programmer error e.t.c.

Like any other such interface in the kernel, the returned status of
devlink APIs should be checked and propagated further and not ignored.

Fixes: 755f982bb1ff ("qed/qede: make devlink survive recovery")
Signed-off-by: Leon Romanovsky <[email protected]>
---
drivers/net/ethernet/qlogic/qede/qede_main.c | 12 +++++-------
drivers/scsi/qedf/qedf_main.c | 2 ++
2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c
index 9837bdb89cd4..ee4c3bd28a93 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_main.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_main.c
@@ -1176,19 +1176,17 @@ static int __qede_probe(struct pci_dev *pdev, u32 dp_module, u8 dp_level,
edev->devlink = qed_ops->common->devlink_register(cdev);
if (IS_ERR(edev->devlink)) {
DP_NOTICE(edev, "Cannot register devlink\n");
+ rc = PTR_ERR(edev->devlink);
edev->devlink = NULL;
- /* Go on, we can live without devlink */
+ goto err3;
}
} else {
struct net_device *ndev = pci_get_drvdata(pdev);
+ struct qed_devlink *qdl;

edev = netdev_priv(ndev);
-
- if (edev->devlink) {
- struct qed_devlink *qdl = devlink_priv(edev->devlink);
-
- qdl->cdev = cdev;
- }
+ qdl = devlink_priv(edev->devlink);
+ qdl->cdev = cdev;
edev->cdev = cdev;
memset(&edev->stats, 0, sizeof(edev->stats));
memcpy(&edev->dev_info, &dev_info, sizeof(dev_info));
diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
index 42d0d941dba5..94ee08fab46a 100644
--- a/drivers/scsi/qedf/qedf_main.c
+++ b/drivers/scsi/qedf/qedf_main.c
@@ -3416,7 +3416,9 @@ static int __qedf_probe(struct pci_dev *pdev, int mode)
qedf->devlink = qed_ops->common->devlink_register(qedf->cdev);
if (IS_ERR(qedf->devlink)) {
QEDF_ERR(&qedf->dbg_ctx, "Cannot register devlink\n");
+ rc = PTR_ERR(qedf->devlink);
qedf->devlink = NULL;
+ goto err2;
}
}

--
2.31.1

2021-09-23 18:16:09

by Leon Romanovsky

[permalink] [raw]
Subject: [PATCH net-next 5/6] ice: Delete always true check of PF pointer

From: Leon Romanovsky <[email protected]>

PF pointer is always valid when PCI core calls its .shutdown() and
.remove() callbacks. There is no need to check it again.

Fixes: 837f08fdecbe ("ice: Add basic driver framework for Intel(R) E800 Series")
Signed-off-by: Leon Romanovsky <[email protected]>
---
drivers/net/ethernet/intel/ice/ice_main.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index 34e64533026a..aacc0b345bbe 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -4593,9 +4593,6 @@ static void ice_remove(struct pci_dev *pdev)
struct ice_pf *pf = pci_get_drvdata(pdev);
int i;

- if (!pf)
- return;
-
for (i = 0; i < ICE_MAX_RESET_WAIT; i++) {
if (!ice_is_reset_in_progress(pf->state))
break;
--
2.31.1

2021-09-23 21:25:55

by Edwin Peer

[permalink] [raw]
Subject: Re: [PATCH net-next 2/6] bnxt_en: Properly remove port parameter support

On Thu, Sep 23, 2021 at 11:13 AM Leon Romanovsky <[email protected]> wrote:
>
> From: Leon Romanovsky <[email protected]>
>
> This driver doesn't have any port parameters and registers
> devlink port parameters with empty table. Remove the useless
> calls to devlink_port_params_register and _unregister.
>
> Fixes: da203dfa89ce ("Revert "devlink: Add a generic wake_on_lan port parameter"")
> Signed-off-by: Leon Romanovsky <[email protected]>
> ---
> drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 13 -------------
> 1 file changed, 13 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
> index dc0851f709f5..ed95e28d60ef 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
> @@ -736,9 +736,6 @@ static const struct devlink_param bnxt_dl_params[] = {
> NULL),
> };
>
> -static const struct devlink_param bnxt_dl_port_params[] = {
> -};
> -
> static int bnxt_dl_params_register(struct bnxt *bp)
> {
> int rc;
> @@ -753,14 +750,6 @@ static int bnxt_dl_params_register(struct bnxt *bp)
> rc);
> return rc;
> }
> - rc = devlink_port_params_register(&bp->dl_port, bnxt_dl_port_params,
> - ARRAY_SIZE(bnxt_dl_port_params));
> - if (rc) {
> - netdev_err(bp->dev, "devlink_port_params_register failed\n");
> - devlink_params_unregister(bp->dl, bnxt_dl_params,
> - ARRAY_SIZE(bnxt_dl_params));
> - return rc;
> - }
> devlink_params_publish(bp->dl);
>
> return 0;
> @@ -773,8 +762,6 @@ static void bnxt_dl_params_unregister(struct bnxt *bp)
>
> devlink_params_unregister(bp->dl, bnxt_dl_params,
> ARRAY_SIZE(bnxt_dl_params));
> - devlink_port_params_unregister(&bp->dl_port, bnxt_dl_port_params,
> - ARRAY_SIZE(bnxt_dl_port_params));
> }
>
> int bnxt_dl_register(struct bnxt *bp)
> --
> 2.31.1
>

Ah, looks like the revert in da203dfa89ce wasn't complete. Thanks for
the cleanup.

Reviewed-by: Edwin Peer <[email protected]>

Regards,
Edwin Peer

2021-09-23 22:58:19

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH net-next 0/6] Batch of devlink related fixes

On Thu, 23 Sep 2021 21:12:47 +0300 Leon Romanovsky wrote:
> I'm asking to apply this batch of devlink fixes to net-next and not to
> net, because most if not all fixes are for old code or/and can be considered
> as cleanup.
>
> It will cancel the need to deal with merge conflicts for my next devlink series :).

Not sure how Dave will feel about adding fixes to net-next,
we do merge the trees weekly after all.

Otherwise the patches look fine.

2021-09-23 23:18:31

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH net-next 0/6] Batch of devlink related fixes

On Thu, Sep 23, 2021 at 03:55:47PM -0700, Jakub Kicinski wrote:
> On Thu, 23 Sep 2021 21:12:47 +0300 Leon Romanovsky wrote:
> > I'm asking to apply this batch of devlink fixes to net-next and not to
> > net, because most if not all fixes are for old code or/and can be considered
> > as cleanup.
> >
> > It will cancel the need to deal with merge conflicts for my next devlink series :).
>
> Not sure how Dave will feel about adding fixes to net-next,
> we do merge the trees weekly after all.

My almost ready submission queue is:
➜ kernel git:(m/devlink) git l
693c1a9ac5b3 (HEAD -> m/devlink) devlink: Delete reload enable/disable interface
6d39354f8b44 net/mlx5: Register separate reload devlink ops for multiport device
1ac4e8811fd5 devlink: Allow set specific ops callbacks dynamically
de1849d3b348 devlink: Allow modification of devlink ops
7439a45dce72 net: dsa: Move devlink registration to be last devlink command
7dd23a327395 staging: qlge: Move devlink registration to be last devlink command
77f074c98b0d ptp: ocp: Move devlink registration to be last devlink command
fb3f4d40ad49 net: wwan: iosm: Move devlink_register to be last devlink command
87e95ee9275b netdevsim: Move devlink registration to be last devlink command
4173205af399 net: ethernet: ti: Move devlink registration to be last devlink command
bc633a0759f6 qed: Move devlink registration to be last devlink command
ead4e2027164 ionic: Move devlink registration to be last devlink command
bc5272ccc378 nfp: Move delink_register to be last command
a6521bf133d9 net: mscc: ocelot: delay devlink registration to the end
e0ca9a29cc20 mlxsw: core: Register devlink instance last
681ac1457516 net/mlx5: Accept devlink user input after driver initialization complete
9b1a2f4abaef net/mlx4: Move devlink_register to be the last initialization command
a3b2d9a95a51 net/prestera: Split devlink and traps registrations to separate routines
bbdf4842432f octeontx2: Move devlink registration to be last devlink command
5297e23f19e9 ice: Open devlink when device is ready
18af77a99cea net: hinic: Open device for the user access when it is ready
91a03cdc92e2 dpaa2-eth: Register devlink instance at the end of probe
dd5af984e53c liquidio: Overcome missing device lock protection in init/remove flows
efea109ba32e bnxt_en: Register devlink instance at the end devlink configuration
6a2b139bcf01 devlink: Notify users when objects are accessible

+ a couple of patches that removes "published" field from devlink parameters
and fix of old devlink bug where parameters were netlink notifications
were sent twice.

So it will be very helpful to keep this series in net-next.

>
> Otherwise the patches look fine.

Thanks

2021-09-24 18:53:31

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net-next 0/6] Batch of devlink related fixes

Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Thu, 23 Sep 2021 21:12:47 +0300 you wrote:
> From: Leon Romanovsky <[email protected]>
>
> Hi,
>
> I'm asking to apply this batch of devlink fixes to net-next and not to
> net, because most if not all fixes are for old code or/and can be considered
> as cleanup.
>
> [...]

Here is the summary with links:
- [net-next,1/6] bnxt_en: Check devlink allocation and registration status
https://git.kernel.org/netdev/net-next/c/e624c70e1131
- [net-next,2/6] bnxt_en: Properly remove port parameter support
https://git.kernel.org/netdev/net-next/c/61415c3db3d9
- [net-next,3/6] devlink: Delete not used port parameters APIs
https://git.kernel.org/netdev/net-next/c/42ded61aa75e
- [net-next,4/6] devlink: Remove single line function obfuscations
https://git.kernel.org/netdev/net-next/c/8ba024dfaf61
- [net-next,5/6] ice: Delete always true check of PF pointer
https://git.kernel.org/netdev/net-next/c/2ff04286a956
- [net-next,6/6] qed: Don't ignore devlink allocation failures
https://git.kernel.org/netdev/net-next/c/e6a54d6f2213

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html


2021-09-24 20:23:31

by David Miller

[permalink] [raw]
Subject: Re: [PATCH net-next 0/6] Batch of devlink related fixes

From: Leon Romanovsky <[email protected]>
Date: Thu, 23 Sep 2021 21:12:47 +0300

> From: Leon Romanovsky <[email protected]>
>
> Hi,
>
> I'm asking to apply this batch of devlink fixes to net-next and not to
> net, because most if not all fixes are for old code or/and can be considered
> as cleanup.
>
> It will cancel the need to deal with merge conflicts for my next devlink series :).

ok, but just this one time.

I much rather this kind of stuff goes to net and we deal with the merge
conflicts that arise.

Thsnks!

2021-09-25 09:01:02

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH net-next 0/6] Batch of devlink related fixes

On Fri, Sep 24, 2021 at 02:14:26PM +0100, David Miller wrote:
> From: Leon Romanovsky <[email protected]>
> Date: Thu, 23 Sep 2021 21:12:47 +0300
>
> > From: Leon Romanovsky <[email protected]>
> >
> > Hi,
> >
> > I'm asking to apply this batch of devlink fixes to net-next and not to
> > net, because most if not all fixes are for old code or/and can be considered
> > as cleanup.
> >
> > It will cancel the need to deal with merge conflicts for my next devlink series :).
>
> ok, but just this one time.

Thanks

>
> I much rather this kind of stuff goes to net and we deal with the merge
> conflicts that arise.

I'll do.

>
> Thsnks!