Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e855e5d8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
  IB/mthca: Free correct MPT on error exit from mthca_fmr_alloc()
  IPoIB/cm: Fix ipoib_cm_dev_stop() cleanup when drain times out
parents 37c514e3 b7f9c112
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -686,7 +686,7 @@ err_out_table:
	mthca_table_put(dev, dev->mr_table.mpt_table, key);

err_out_mpt_free:
	mthca_free(&dev->mr_table.mpt_alloc, mr->ibmr.lkey);
	mthca_free(&dev->mr_table.mpt_alloc, key);
	return err;
}

+6 −4
Original line number Diff line number Diff line
@@ -824,7 +824,6 @@ void ipoib_cm_dev_stop(struct net_device *dev)
	struct ipoib_dev_priv *priv = netdev_priv(dev);
	struct ipoib_cm_rx *p;
	unsigned long begin;
	LIST_HEAD(list);
	int ret;

	if (!IPOIB_CM_SUPPORTED(dev->dev_addr) || !priv->cm.id)
@@ -857,9 +856,12 @@ void ipoib_cm_dev_stop(struct net_device *dev)
			/*
			 * assume the HW is wedged and just free up everything.
			 */
			list_splice_init(&priv->cm.rx_flush_list, &list);
			list_splice_init(&priv->cm.rx_error_list, &list);
			list_splice_init(&priv->cm.rx_drain_list, &list);
			list_splice_init(&priv->cm.rx_flush_list,
					 &priv->cm.rx_reap_list);
			list_splice_init(&priv->cm.rx_error_list,
					 &priv->cm.rx_reap_list);
			list_splice_init(&priv->cm.rx_drain_list,
					 &priv->cm.rx_reap_list);
			break;
		}
		spin_unlock_irq(&priv->lock);