Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 133870
b: refs/heads/master
c: e287880
h: refs/heads/master
v: v3
  • Loading branch information
Thomas Klein authored and David S. Miller committed Jan 21, 2009
1 parent 83c2b6d commit 47e7f82
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 20 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: 3faf2693bd6800c2521799f6a9ae174d9f080ed2
refs/heads/master: e2878806227d223467f84f900ef4c6733ee166df
31 changes: 12 additions & 19 deletions trunk/drivers/net/ehea/ehea_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -370,8 +370,6 @@ static void ehea_refill_rq1(struct ehea_port_res *pr, int index, int nr_of_wqes)
EHEA_L_PKT_SIZE);
if (!skb_arr_rq1[index]) {
pr->rq1_skba.os_skbs = fill_wqes - i;
ehea_error("%s: no mem for skb/%d wqes filled",
dev->name, i);
break;
}
}
Expand All @@ -387,26 +385,19 @@ static void ehea_refill_rq1(struct ehea_port_res *pr, int index, int nr_of_wqes)
ehea_update_rq1a(pr->qp, adder);
}

static int ehea_init_fill_rq1(struct ehea_port_res *pr, int nr_rq1a)
static void ehea_init_fill_rq1(struct ehea_port_res *pr, int nr_rq1a)
{
int ret = 0;
struct sk_buff **skb_arr_rq1 = pr->rq1_skba.arr;
struct net_device *dev = pr->port->netdev;
int i;

for (i = 0; i < pr->rq1_skba.len; i++) {
skb_arr_rq1[i] = netdev_alloc_skb(dev, EHEA_L_PKT_SIZE);
if (!skb_arr_rq1[i]) {
ehea_error("%s: no mem for skb/%d wqes filled",
dev->name, i);
ret = -ENOMEM;
goto out;
}
if (!skb_arr_rq1[i])
break;
}
/* Ring doorbell */
ehea_update_rq1a(pr->qp, nr_rq1a);
out:
return ret;
}

static int ehea_refill_rq_def(struct ehea_port_res *pr,
Expand Down Expand Up @@ -435,10 +426,12 @@ static int ehea_refill_rq_def(struct ehea_port_res *pr,
u64 tmp_addr;
struct sk_buff *skb = netdev_alloc_skb(dev, packet_size);
if (!skb) {
ehea_error("%s: no mem for skb/%d wqes filled",
pr->port->netdev->name, i);
q_skba->os_skbs = fill_wqes - i;
ret = -ENOMEM;
if (q_skba->os_skbs == q_skba->len - 2) {
ehea_info("%s: rq%i ran dry - no mem for skb",
pr->port->netdev->name, rq_nr);
ret = -ENOMEM;
}
break;
}
skb_reserve(skb, NET_IP_ALIGN);
Expand Down Expand Up @@ -1201,11 +1194,11 @@ static int ehea_fill_port_res(struct ehea_port_res *pr)
int ret;
struct ehea_qp_init_attr *init_attr = &pr->qp->init_attr;

ret = ehea_init_fill_rq1(pr, init_attr->act_nr_rwqes_rq1
- init_attr->act_nr_rwqes_rq2
- init_attr->act_nr_rwqes_rq3 - 1);
ehea_init_fill_rq1(pr, init_attr->act_nr_rwqes_rq1
- init_attr->act_nr_rwqes_rq2
- init_attr->act_nr_rwqes_rq3 - 1);

ret |= ehea_refill_rq2(pr, init_attr->act_nr_rwqes_rq2 - 1);
ret = ehea_refill_rq2(pr, init_attr->act_nr_rwqes_rq2 - 1);

ret |= ehea_refill_rq3(pr, init_attr->act_nr_rwqes_rq3 - 1);

Expand Down

0 comments on commit 47e7f82

Please sign in to comment.