Commit 4b4671a0 authored by Bart Van Assche's avatar Bart Van Assche Committed by Jason Gunthorpe

IB/IPoIB: Simplify ib_post_(send|recv|srq_recv)() calls

Instead of declaring and passing a dummy 'bad_wr' pointer, pass NULL
as third argument to ib_post_(send|recv|srq_recv)().
Signed-off-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent 1fec77bf
...@@ -94,7 +94,6 @@ static void ipoib_cm_dma_unmap_rx(struct ipoib_dev_priv *priv, int frags, ...@@ -94,7 +94,6 @@ static void ipoib_cm_dma_unmap_rx(struct ipoib_dev_priv *priv, int frags,
static int ipoib_cm_post_receive_srq(struct net_device *dev, int id) static int ipoib_cm_post_receive_srq(struct net_device *dev, int id)
{ {
struct ipoib_dev_priv *priv = ipoib_priv(dev); struct ipoib_dev_priv *priv = ipoib_priv(dev);
struct ib_recv_wr *bad_wr;
int i, ret; int i, ret;
priv->cm.rx_wr.wr_id = id | IPOIB_OP_CM | IPOIB_OP_RECV; priv->cm.rx_wr.wr_id = id | IPOIB_OP_CM | IPOIB_OP_RECV;
...@@ -102,7 +101,7 @@ static int ipoib_cm_post_receive_srq(struct net_device *dev, int id) ...@@ -102,7 +101,7 @@ static int ipoib_cm_post_receive_srq(struct net_device *dev, int id)
for (i = 0; i < priv->cm.num_frags; ++i) for (i = 0; i < priv->cm.num_frags; ++i)
priv->cm.rx_sge[i].addr = priv->cm.srq_ring[id].mapping[i]; priv->cm.rx_sge[i].addr = priv->cm.srq_ring[id].mapping[i];
ret = ib_post_srq_recv(priv->cm.srq, &priv->cm.rx_wr, &bad_wr); ret = ib_post_srq_recv(priv->cm.srq, &priv->cm.rx_wr, NULL);
if (unlikely(ret)) { if (unlikely(ret)) {
ipoib_warn(priv, "post srq failed for buf %d (%d)\n", id, ret); ipoib_warn(priv, "post srq failed for buf %d (%d)\n", id, ret);
ipoib_cm_dma_unmap_rx(priv, priv->cm.num_frags - 1, ipoib_cm_dma_unmap_rx(priv, priv->cm.num_frags - 1,
...@@ -120,7 +119,6 @@ static int ipoib_cm_post_receive_nonsrq(struct net_device *dev, ...@@ -120,7 +119,6 @@ static int ipoib_cm_post_receive_nonsrq(struct net_device *dev,
struct ib_sge *sge, int id) struct ib_sge *sge, int id)
{ {
struct ipoib_dev_priv *priv = ipoib_priv(dev); struct ipoib_dev_priv *priv = ipoib_priv(dev);
struct ib_recv_wr *bad_wr;
int i, ret; int i, ret;
wr->wr_id = id | IPOIB_OP_CM | IPOIB_OP_RECV; wr->wr_id = id | IPOIB_OP_CM | IPOIB_OP_RECV;
...@@ -128,7 +126,7 @@ static int ipoib_cm_post_receive_nonsrq(struct net_device *dev, ...@@ -128,7 +126,7 @@ static int ipoib_cm_post_receive_nonsrq(struct net_device *dev,
for (i = 0; i < IPOIB_CM_RX_SG; ++i) for (i = 0; i < IPOIB_CM_RX_SG; ++i)
sge[i].addr = rx->rx_ring[id].mapping[i]; sge[i].addr = rx->rx_ring[id].mapping[i];
ret = ib_post_recv(rx->qp, wr, &bad_wr); ret = ib_post_recv(rx->qp, wr, NULL);
if (unlikely(ret)) { if (unlikely(ret)) {
ipoib_warn(priv, "post recv failed for buf %d (%d)\n", id, ret); ipoib_warn(priv, "post recv failed for buf %d (%d)\n", id, ret);
ipoib_cm_dma_unmap_rx(priv, IPOIB_CM_RX_SG - 1, ipoib_cm_dma_unmap_rx(priv, IPOIB_CM_RX_SG - 1,
...@@ -212,7 +210,6 @@ static void ipoib_cm_free_rx_ring(struct net_device *dev, ...@@ -212,7 +210,6 @@ static void ipoib_cm_free_rx_ring(struct net_device *dev,
static void ipoib_cm_start_rx_drain(struct ipoib_dev_priv *priv) static void ipoib_cm_start_rx_drain(struct ipoib_dev_priv *priv)
{ {
struct ib_send_wr *bad_wr;
struct ipoib_cm_rx *p; struct ipoib_cm_rx *p;
/* We only reserved 1 extra slot in CQ for drain WRs, so /* We only reserved 1 extra slot in CQ for drain WRs, so
...@@ -227,7 +224,7 @@ static void ipoib_cm_start_rx_drain(struct ipoib_dev_priv *priv) ...@@ -227,7 +224,7 @@ static void ipoib_cm_start_rx_drain(struct ipoib_dev_priv *priv)
*/ */
p = list_entry(priv->cm.rx_flush_list.next, typeof(*p), list); p = list_entry(priv->cm.rx_flush_list.next, typeof(*p), list);
ipoib_cm_rx_drain_wr.wr_id = IPOIB_CM_RX_DRAIN_WRID; ipoib_cm_rx_drain_wr.wr_id = IPOIB_CM_RX_DRAIN_WRID;
if (ib_post_send(p->qp, &ipoib_cm_rx_drain_wr, &bad_wr)) if (ib_post_send(p->qp, &ipoib_cm_rx_drain_wr, NULL))
ipoib_warn(priv, "failed to post drain wr\n"); ipoib_warn(priv, "failed to post drain wr\n");
list_splice_init(&priv->cm.rx_flush_list, &priv->cm.rx_drain_list); list_splice_init(&priv->cm.rx_flush_list, &priv->cm.rx_drain_list);
...@@ -699,13 +696,11 @@ static inline int post_send(struct ipoib_dev_priv *priv, ...@@ -699,13 +696,11 @@ static inline int post_send(struct ipoib_dev_priv *priv,
unsigned int wr_id, unsigned int wr_id,
struct ipoib_tx_buf *tx_req) struct ipoib_tx_buf *tx_req)
{ {
struct ib_send_wr *bad_wr;
ipoib_build_sge(priv, tx_req); ipoib_build_sge(priv, tx_req);
priv->tx_wr.wr.wr_id = wr_id | IPOIB_OP_CM; priv->tx_wr.wr.wr_id = wr_id | IPOIB_OP_CM;
return ib_post_send(tx->qp, &priv->tx_wr.wr, &bad_wr); return ib_post_send(tx->qp, &priv->tx_wr.wr, NULL);
} }
void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_tx *tx) void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_tx *tx)
......
...@@ -101,7 +101,6 @@ static void ipoib_ud_dma_unmap_rx(struct ipoib_dev_priv *priv, ...@@ -101,7 +101,6 @@ static void ipoib_ud_dma_unmap_rx(struct ipoib_dev_priv *priv,
static int ipoib_ib_post_receive(struct net_device *dev, int id) static int ipoib_ib_post_receive(struct net_device *dev, int id)
{ {
struct ipoib_dev_priv *priv = ipoib_priv(dev); struct ipoib_dev_priv *priv = ipoib_priv(dev);
struct ib_recv_wr *bad_wr;
int ret; int ret;
priv->rx_wr.wr_id = id | IPOIB_OP_RECV; priv->rx_wr.wr_id = id | IPOIB_OP_RECV;
...@@ -109,7 +108,7 @@ static int ipoib_ib_post_receive(struct net_device *dev, int id) ...@@ -109,7 +108,7 @@ static int ipoib_ib_post_receive(struct net_device *dev, int id)
priv->rx_sge[1].addr = priv->rx_ring[id].mapping[1]; priv->rx_sge[1].addr = priv->rx_ring[id].mapping[1];
ret = ib_post_recv(priv->qp, &priv->rx_wr, &bad_wr); ret = ib_post_recv(priv->qp, &priv->rx_wr, NULL);
if (unlikely(ret)) { if (unlikely(ret)) {
ipoib_warn(priv, "receive failed for buf %d (%d)\n", id, ret); ipoib_warn(priv, "receive failed for buf %d (%d)\n", id, ret);
ipoib_ud_dma_unmap_rx(priv, priv->rx_ring[id].mapping); ipoib_ud_dma_unmap_rx(priv, priv->rx_ring[id].mapping);
...@@ -542,7 +541,6 @@ static inline int post_send(struct ipoib_dev_priv *priv, ...@@ -542,7 +541,6 @@ static inline int post_send(struct ipoib_dev_priv *priv,
struct ipoib_tx_buf *tx_req, struct ipoib_tx_buf *tx_req,
void *head, int hlen) void *head, int hlen)
{ {
struct ib_send_wr *bad_wr;
struct sk_buff *skb = tx_req->skb; struct sk_buff *skb = tx_req->skb;
ipoib_build_sge(priv, tx_req); ipoib_build_sge(priv, tx_req);
...@@ -559,7 +557,7 @@ static inline int post_send(struct ipoib_dev_priv *priv, ...@@ -559,7 +557,7 @@ static inline int post_send(struct ipoib_dev_priv *priv,
} else } else
priv->tx_wr.wr.opcode = IB_WR_SEND; priv->tx_wr.wr.opcode = IB_WR_SEND;
return ib_post_send(priv->qp, &priv->tx_wr.wr, &bad_wr); return ib_post_send(priv->qp, &priv->tx_wr.wr, NULL);
} }
int ipoib_send(struct net_device *dev, struct sk_buff *skb, int ipoib_send(struct net_device *dev, struct sk_buff *skb,
......
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