Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 101049
b: refs/heads/master
c: e112373
h: refs/heads/master
i:
  101047: 4dc2521
v: v3
  • Loading branch information
Eli Cohen authored and Roland Dreier committed Jul 15, 2008
1 parent 4a902b0 commit 2305774
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: df8666198dd058b9498ebdbc52c61957206d30a5
refs/heads/master: e112373fd6aa280bd2cbc0d5cc3809115325a1be
7 changes: 6 additions & 1 deletion trunk/drivers/infiniband/ulp/ipoib/ipoib.h
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,11 @@ struct ipoib_tx_buf {
u64 mapping[MAX_SKB_FRAGS + 1];
};

struct ipoib_cm_tx_buf {
struct sk_buff *skb;
u64 mapping;
};

struct ib_cm_id;

struct ipoib_cm_data {
Expand Down Expand Up @@ -215,7 +220,7 @@ struct ipoib_cm_tx {
struct net_device *dev;
struct ipoib_neigh *neigh;
struct ipoib_path *path;
struct ipoib_tx_buf *tx_ring;
struct ipoib_cm_tx_buf *tx_ring;
unsigned tx_head;
unsigned tx_tail;
unsigned long flags;
Expand Down
12 changes: 6 additions & 6 deletions trunk/drivers/infiniband/ulp/ipoib/ipoib_cm.c
Original file line number Diff line number Diff line change
Expand Up @@ -703,7 +703,7 @@ static inline int post_send(struct ipoib_dev_priv *priv,
void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_tx *tx)
{
struct ipoib_dev_priv *priv = netdev_priv(dev);
struct ipoib_tx_buf *tx_req;
struct ipoib_cm_tx_buf *tx_req;
u64 addr;

if (unlikely(skb->len > tx->mtu)) {
Expand Down Expand Up @@ -734,7 +734,7 @@ void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_
return;
}

tx_req->mapping[0] = addr;
tx_req->mapping = addr;

if (unlikely(post_send(priv, tx, tx->tx_head & (ipoib_sendq_size - 1),
addr, skb->len))) {
Expand All @@ -759,7 +759,7 @@ void ipoib_cm_handle_tx_wc(struct net_device *dev, struct ib_wc *wc)
struct ipoib_dev_priv *priv = netdev_priv(dev);
struct ipoib_cm_tx *tx = wc->qp->qp_context;
unsigned int wr_id = wc->wr_id & ~IPOIB_OP_CM;
struct ipoib_tx_buf *tx_req;
struct ipoib_cm_tx_buf *tx_req;
unsigned long flags;

ipoib_dbg_data(priv, "cm send completion: id %d, status: %d\n",
Expand All @@ -773,7 +773,7 @@ void ipoib_cm_handle_tx_wc(struct net_device *dev, struct ib_wc *wc)

tx_req = &tx->tx_ring[wr_id];

ib_dma_unmap_single(priv->ca, tx_req->mapping[0], tx_req->skb->len, DMA_TO_DEVICE);
ib_dma_unmap_single(priv->ca, tx_req->mapping, tx_req->skb->len, DMA_TO_DEVICE);

/* FIXME: is this right? Shouldn't we only increment on success? */
++dev->stats.tx_packets;
Expand Down Expand Up @@ -1143,7 +1143,7 @@ static int ipoib_cm_tx_init(struct ipoib_cm_tx *p, u32 qpn,
static void ipoib_cm_tx_destroy(struct ipoib_cm_tx *p)
{
struct ipoib_dev_priv *priv = netdev_priv(p->dev);
struct ipoib_tx_buf *tx_req;
struct ipoib_cm_tx_buf *tx_req;
unsigned long flags;
unsigned long begin;

Expand Down Expand Up @@ -1171,7 +1171,7 @@ static void ipoib_cm_tx_destroy(struct ipoib_cm_tx *p)

while ((int) p->tx_tail - (int) p->tx_head < 0) {
tx_req = &p->tx_ring[p->tx_tail & (ipoib_sendq_size - 1)];
ib_dma_unmap_single(priv->ca, tx_req->mapping[0], tx_req->skb->len,
ib_dma_unmap_single(priv->ca, tx_req->mapping, tx_req->skb->len,
DMA_TO_DEVICE);
dev_kfree_skb_any(tx_req->skb);
++p->tx_tail;
Expand Down

0 comments on commit 2305774

Please sign in to comment.