dect
/
linux-2.6
Archived
13
0
Fork 0

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:
Linus Torvalds 2008-02-19 15:50:11 -08:00
commit e855e5d82e
2 changed files with 7 additions and 5 deletions

View File

@ -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;
} }

View File

@ -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);