mirror of
https://github.com/adulau/aha.git
synced 2025-01-04 07:03:38 +00:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
* '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
This commit is contained in:
commit
e855e5d82e
2 changed files with 7 additions and 5 deletions
|
@ -686,7 +686,7 @@ err_out_table:
|
||||||
mthca_table_put(dev, dev->mr_table.mpt_table, key);
|
mthca_table_put(dev, dev->mr_table.mpt_table, key);
|
||||||
|
|
||||||
err_out_mpt_free:
|
err_out_mpt_free:
|
||||||
mthca_free(&dev->mr_table.mpt_alloc, mr->ibmr.lkey);
|
mthca_free(&dev->mr_table.mpt_alloc, key);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -824,7 +824,6 @@ void ipoib_cm_dev_stop(struct net_device *dev)
|
||||||
struct ipoib_dev_priv *priv = netdev_priv(dev);
|
struct ipoib_dev_priv *priv = netdev_priv(dev);
|
||||||
struct ipoib_cm_rx *p;
|
struct ipoib_cm_rx *p;
|
||||||
unsigned long begin;
|
unsigned long begin;
|
||||||
LIST_HEAD(list);
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!IPOIB_CM_SUPPORTED(dev->dev_addr) || !priv->cm.id)
|
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.
|
* 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_flush_list,
|
||||||
list_splice_init(&priv->cm.rx_error_list, &list);
|
&priv->cm.rx_reap_list);
|
||||||
list_splice_init(&priv->cm.rx_drain_list, &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;
|
break;
|
||||||
}
|
}
|
||||||
spin_unlock_irq(&priv->lock);
|
spin_unlock_irq(&priv->lock);
|
||||||
|
|
Loading…
Reference in a new issue