ehea: Call dev_consume_skb_any instead of dev_kfree_skb.
Replace dev_kfree_skb with dev_consume_skb_any in functions that can be called in hard irq and other contexts. None of the locations was a packet drop so dev_kfree_skb_any is inappropriate. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
This commit is contained in:
parent
374e29da7c
commit
cfbe406307
@ -490,7 +490,7 @@ static int ehea_refill_rq_def(struct ehea_port_res *pr,
|
|||||||
skb_arr[index] = skb;
|
skb_arr[index] = skb;
|
||||||
tmp_addr = ehea_map_vaddr(skb->data);
|
tmp_addr = ehea_map_vaddr(skb->data);
|
||||||
if (tmp_addr == -1) {
|
if (tmp_addr == -1) {
|
||||||
dev_kfree_skb(skb);
|
dev_consume_skb_any(skb);
|
||||||
q_skba->os_skbs = fill_wqes - i;
|
q_skba->os_skbs = fill_wqes - i;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
break;
|
break;
|
||||||
@ -856,7 +856,7 @@ static struct ehea_cqe *ehea_proc_cqes(struct ehea_port_res *pr, int my_quota)
|
|||||||
|
|
||||||
index = EHEA_BMASK_GET(EHEA_WR_ID_INDEX, cqe->wr_id);
|
index = EHEA_BMASK_GET(EHEA_WR_ID_INDEX, cqe->wr_id);
|
||||||
skb = pr->sq_skba.arr[index];
|
skb = pr->sq_skba.arr[index];
|
||||||
dev_kfree_skb(skb);
|
dev_consume_skb_any(skb);
|
||||||
pr->sq_skba.arr[index] = NULL;
|
pr->sq_skba.arr[index] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2044,7 +2044,7 @@ static void ehea_xmit3(struct sk_buff *skb, struct net_device *dev,
|
|||||||
skb_copy_bits(skb, 0, imm_data, skb->len);
|
skb_copy_bits(skb, 0, imm_data, skb->len);
|
||||||
|
|
||||||
swqe->immediate_data_length = skb->len;
|
swqe->immediate_data_length = skb->len;
|
||||||
dev_kfree_skb(skb);
|
dev_consume_skb_any(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ehea_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
static int ehea_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||||
|
Loading…
Reference in New Issue
Block a user