Commit f5395732 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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()
parents 1b597e1c 6abe2a90
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -269,8 +269,6 @@ rdma_find_ndev_for_src_ip_rcu(struct net *net, const struct sockaddr *src_in)
		break;
#endif
	}
	if (!ret && dev && is_vlan_dev(dev))
		dev = vlan_dev_real_dev(dev);
	return ret ? ERR_PTR(ret) : dev;
}

+8 −19
Original line number Diff line number Diff line
@@ -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_dev *rdev;

	if (!en_info)
		return;

	rdev = en_info->rdev;
	ib_unregister_device(&rdev->ibdev);
	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;
	int indx;

	if (!en_info)
		return;

	rdev = en_info->rdev;
	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;
	int indx, rc;

	if (!en_info)
		return;

	rdev = en_info->rdev;
	msix_ent = rdev->en_dev->msix_entries;
	rcfw = &rdev->rcfw;
@@ -1991,10 +1982,6 @@ static void bnxt_re_remove(struct auxiliary_device *adev)
	struct bnxt_re_dev *rdev;

	mutex_lock(&bnxt_re_mutex);
	if (!en_info) {
		mutex_unlock(&bnxt_re_mutex);
		return;
	}
	rdev = en_info->rdev;

	if (rdev)
@@ -2025,7 +2012,15 @@ static int bnxt_re_probe(struct auxiliary_device *adev,
	auxiliary_set_drvdata(adev, en_info);

	rc = bnxt_re_add_device(adev, BNXT_RE_COMPLETE_INIT);
	if (rc)
		goto err;
	mutex_unlock(&bnxt_re_mutex);
	return 0;

err:
	mutex_unlock(&bnxt_re_mutex);
	kfree(en_info);

	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_re_dev *rdev;

	if (!en_info)
		return 0;

	rdev = en_info->rdev;
	en_dev = en_info->en_dev;
	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_dev *rdev;

	if (!en_info)
		return 0;

	mutex_lock(&bnxt_re_mutex);
	/* L2 driver may invoke this callback during device recovery, resume.
	 * reset. Current RoCE driver doesn't recover the device in case of