Commit 3a3eae0d authored by Roland Dreier's avatar Roland Dreier

Merge branches 'ehca' and 'ipoib' into for-linus

parents 6773f079 b1404069
...@@ -202,7 +202,7 @@ static void ipoib_cm_free_rx_ring(struct net_device *dev, ...@@ -202,7 +202,7 @@ static void ipoib_cm_free_rx_ring(struct net_device *dev,
dev_kfree_skb_any(rx_ring[i].skb); dev_kfree_skb_any(rx_ring[i].skb);
} }
kfree(rx_ring); vfree(rx_ring);
} }
static void ipoib_cm_start_rx_drain(struct ipoib_dev_priv *priv) static void ipoib_cm_start_rx_drain(struct ipoib_dev_priv *priv)
...@@ -352,9 +352,14 @@ static int ipoib_cm_nonsrq_init_rx(struct net_device *dev, struct ib_cm_id *cm_i ...@@ -352,9 +352,14 @@ static int ipoib_cm_nonsrq_init_rx(struct net_device *dev, struct ib_cm_id *cm_i
int ret; int ret;
int i; int i;
rx->rx_ring = kcalloc(ipoib_recvq_size, sizeof *rx->rx_ring, GFP_KERNEL); rx->rx_ring = vmalloc(ipoib_recvq_size * sizeof *rx->rx_ring);
if (!rx->rx_ring) if (!rx->rx_ring) {
printk(KERN_WARNING "%s: failed to allocate CM non-SRQ ring (%d entries)\n",
priv->ca->name, ipoib_recvq_size);
return -ENOMEM; return -ENOMEM;
}
memset(rx->rx_ring, 0, ipoib_recvq_size * sizeof *rx->rx_ring);
t = kmalloc(sizeof *t, GFP_KERNEL); t = kmalloc(sizeof *t, GFP_KERNEL);
if (!t) { if (!t) {
...@@ -1494,14 +1499,16 @@ static void ipoib_cm_create_srq(struct net_device *dev, int max_sge) ...@@ -1494,14 +1499,16 @@ static void ipoib_cm_create_srq(struct net_device *dev, int max_sge)
return; return;
} }
priv->cm.srq_ring = kzalloc(ipoib_recvq_size * sizeof *priv->cm.srq_ring, priv->cm.srq_ring = vmalloc(ipoib_recvq_size * sizeof *priv->cm.srq_ring);
GFP_KERNEL);
if (!priv->cm.srq_ring) { if (!priv->cm.srq_ring) {
printk(KERN_WARNING "%s: failed to allocate CM SRQ ring (%d entries)\n", printk(KERN_WARNING "%s: failed to allocate CM SRQ ring (%d entries)\n",
priv->ca->name, ipoib_recvq_size); priv->ca->name, ipoib_recvq_size);
ib_destroy_srq(priv->cm.srq); ib_destroy_srq(priv->cm.srq);
priv->cm.srq = NULL; priv->cm.srq = NULL;
return;
} }
memset(priv->cm.srq_ring, 0, ipoib_recvq_size * sizeof *priv->cm.srq_ring);
} }
int ipoib_cm_dev_init(struct net_device *dev) int ipoib_cm_dev_init(struct net_device *dev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment