mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
RDMA v6.12 third rc pull
- Revert a change to the VLAN logic, this broke previously work ROCE configurations - Fix a memory leak on error unwinding in bnxt_re -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQRRRCHOFoQz/8F5bUaFwuHvBreFYQUCZzdj8AAKCRCFwuHvBreF YcsYAQCEv9kx5iw+Z0hoAyUw4a8nXZN75FMQZuQqJNfQAdhexgD+MorBq4RgZgD8 EIHxQPMyK0S9dlS12J55yVDu72dZ8gg= =H/X8 -----END PGP SIGNATURE----- Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma Pull rdma fixes from Jason Gunthorpe: - Revert a change to the VLAN logic, this broke previously working ROCE configurations - Fix a memory leak on error unwinding in bnxt_re * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: Revert "RDMA/core: Fix ENODEV error for iWARP test over vlan" RDMA/bnxt_re: Remove some dead code RDMA/bnxt_re: Fix some error handling paths in bnxt_re_probe()
This commit is contained in:
commit
f539573284
@ -269,8 +269,6 @@ rdma_find_ndev_for_src_ip_rcu(struct net *net, const struct sockaddr *src_in)
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (!ret && dev && is_vlan_dev(dev))
|
|
||||||
dev = vlan_dev_real_dev(dev);
|
|
||||||
return ret ? ERR_PTR(ret) : dev;
|
return ret ? ERR_PTR(ret) : dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,9 +300,6 @@ static void bnxt_re_shutdown(struct auxiliary_device *adev)
|
|||||||
struct bnxt_re_en_dev_info *en_info = auxiliary_get_drvdata(adev);
|
struct bnxt_re_en_dev_info *en_info = auxiliary_get_drvdata(adev);
|
||||||
struct bnxt_re_dev *rdev;
|
struct bnxt_re_dev *rdev;
|
||||||
|
|
||||||
if (!en_info)
|
|
||||||
return;
|
|
||||||
|
|
||||||
rdev = en_info->rdev;
|
rdev = en_info->rdev;
|
||||||
ib_unregister_device(&rdev->ibdev);
|
ib_unregister_device(&rdev->ibdev);
|
||||||
bnxt_re_dev_uninit(rdev, BNXT_RE_COMPLETE_REMOVE);
|
bnxt_re_dev_uninit(rdev, BNXT_RE_COMPLETE_REMOVE);
|
||||||
@ -316,9 +313,6 @@ static void bnxt_re_stop_irq(void *handle)
|
|||||||
struct bnxt_qplib_nq *nq;
|
struct bnxt_qplib_nq *nq;
|
||||||
int indx;
|
int indx;
|
||||||
|
|
||||||
if (!en_info)
|
|
||||||
return;
|
|
||||||
|
|
||||||
rdev = en_info->rdev;
|
rdev = en_info->rdev;
|
||||||
rcfw = &rdev->rcfw;
|
rcfw = &rdev->rcfw;
|
||||||
|
|
||||||
@ -339,9 +333,6 @@ static void bnxt_re_start_irq(void *handle, struct bnxt_msix_entry *ent)
|
|||||||
struct bnxt_qplib_nq *nq;
|
struct bnxt_qplib_nq *nq;
|
||||||
int indx, rc;
|
int indx, rc;
|
||||||
|
|
||||||
if (!en_info)
|
|
||||||
return;
|
|
||||||
|
|
||||||
rdev = en_info->rdev;
|
rdev = en_info->rdev;
|
||||||
msix_ent = rdev->en_dev->msix_entries;
|
msix_ent = rdev->en_dev->msix_entries;
|
||||||
rcfw = &rdev->rcfw;
|
rcfw = &rdev->rcfw;
|
||||||
@ -1991,10 +1982,6 @@ static void bnxt_re_remove(struct auxiliary_device *adev)
|
|||||||
struct bnxt_re_dev *rdev;
|
struct bnxt_re_dev *rdev;
|
||||||
|
|
||||||
mutex_lock(&bnxt_re_mutex);
|
mutex_lock(&bnxt_re_mutex);
|
||||||
if (!en_info) {
|
|
||||||
mutex_unlock(&bnxt_re_mutex);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
rdev = en_info->rdev;
|
rdev = en_info->rdev;
|
||||||
|
|
||||||
if (rdev)
|
if (rdev)
|
||||||
@ -2025,7 +2012,15 @@ static int bnxt_re_probe(struct auxiliary_device *adev,
|
|||||||
auxiliary_set_drvdata(adev, en_info);
|
auxiliary_set_drvdata(adev, en_info);
|
||||||
|
|
||||||
rc = bnxt_re_add_device(adev, BNXT_RE_COMPLETE_INIT);
|
rc = bnxt_re_add_device(adev, BNXT_RE_COMPLETE_INIT);
|
||||||
|
if (rc)
|
||||||
|
goto err;
|
||||||
mutex_unlock(&bnxt_re_mutex);
|
mutex_unlock(&bnxt_re_mutex);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
err:
|
||||||
|
mutex_unlock(&bnxt_re_mutex);
|
||||||
|
kfree(en_info);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2035,9 +2030,6 @@ static int bnxt_re_suspend(struct auxiliary_device *adev, pm_message_t state)
|
|||||||
struct bnxt_en_dev *en_dev;
|
struct bnxt_en_dev *en_dev;
|
||||||
struct bnxt_re_dev *rdev;
|
struct bnxt_re_dev *rdev;
|
||||||
|
|
||||||
if (!en_info)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
rdev = en_info->rdev;
|
rdev = en_info->rdev;
|
||||||
en_dev = en_info->en_dev;
|
en_dev = en_info->en_dev;
|
||||||
mutex_lock(&bnxt_re_mutex);
|
mutex_lock(&bnxt_re_mutex);
|
||||||
@ -2082,9 +2074,6 @@ static int bnxt_re_resume(struct auxiliary_device *adev)
|
|||||||
struct bnxt_re_en_dev_info *en_info = auxiliary_get_drvdata(adev);
|
struct bnxt_re_en_dev_info *en_info = auxiliary_get_drvdata(adev);
|
||||||
struct bnxt_re_dev *rdev;
|
struct bnxt_re_dev *rdev;
|
||||||
|
|
||||||
if (!en_info)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
mutex_lock(&bnxt_re_mutex);
|
mutex_lock(&bnxt_re_mutex);
|
||||||
/* L2 driver may invoke this callback during device recovery, resume.
|
/* L2 driver may invoke this callback during device recovery, resume.
|
||||||
* reset. Current RoCE driver doesn't recover the device in case of
|
* reset. Current RoCE driver doesn't recover the device in case of
|
||||||
|
Loading…
Reference in New Issue
Block a user