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;
 
                        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;
                }
 
                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)