mirror of https://gitee.com/openkylin/linux.git
qed: Don't ignore devlink allocation failures
[ Upstream commite6a54d6f22
] 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:755f982bb1
("qed/qede: make devlink survive recovery") Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
af484a1cde
commit
9fcd75ee91
|
@ -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));
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue