OSDN Git Service

ehea: Call dev_consume_skb_any instead of dev_kfree_skb.
authorEric W. Biederman <ebiederm@xmission.com>
Sun, 16 Mar 2014 00:25:48 +0000 (17:25 -0700)
committerEric W. Biederman <ebiederm@xmission.com>
Tue, 25 Mar 2014 04:19:03 +0000 (21:19 -0700)
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>
drivers/net/ethernet/ibm/ehea/ehea_main.c

index 7628e0f..538903b 100644 (file)
@@ -490,7 +490,7 @@ static int ehea_refill_rq_def(struct ehea_port_res *pr,
                skb_arr[index] = skb;
                tmp_addr = ehea_map_vaddr(skb->data);
                if (tmp_addr == -1) {
-                       dev_kfree_skb(skb);
+                       dev_consume_skb_any(skb);
                        q_skba->os_skbs = fill_wqes - i;
                        ret = 0;
                        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);
                        skb = pr->sq_skba.arr[index];
-                       dev_kfree_skb(skb);
+                       dev_consume_skb_any(skb);
                        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);
 
        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)