|
@@ -2836,6 +2836,7 @@ static inline void __qdf_nbuf_fill_tso_cmn_seg_info(
|
|
tso_cmn_info->eit_hdr_len,
|
|
tso_cmn_info->eit_hdr_len,
|
|
curr_seg->seg.tso_flags.tcp_seq_num,
|
|
curr_seg->seg.tso_flags.tcp_seq_num,
|
|
curr_seg->seg.total_len);
|
|
curr_seg->seg.total_len);
|
|
|
|
+ qdf_tso_seg_dbg_record(curr_seg, TSOSEG_LOC_FILLCMNSEG);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -2898,6 +2899,12 @@ uint32_t __qdf_nbuf_get_tso_info(qdf_device_t osdev, struct sk_buff *skb,
|
|
tso_frag_vaddr, tso_frag_len, DMA_TO_DEVICE);
|
|
tso_frag_vaddr, tso_frag_len, DMA_TO_DEVICE);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (unlikely(dma_mapping_error(osdev->dev,
|
|
|
|
+ tso_frag_paddr))) {
|
|
|
|
+ qdf_print("%s:%d DMA mapping error!\n", __func__, __LINE__);
|
|
|
|
+ qdf_assert(0);
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
TSO_DEBUG("%s[%d] skb frag len %d tso frag len %d\n", __func__,
|
|
TSO_DEBUG("%s[%d] skb frag len %d tso frag len %d\n", __func__,
|
|
__LINE__, skb_frag_len, tso_frag_len);
|
|
__LINE__, skb_frag_len, tso_frag_len);
|
|
num_seg = tso_info->num_segs;
|
|
num_seg = tso_info->num_segs;
|
|
@@ -3024,7 +3031,8 @@ uint32_t __qdf_nbuf_get_tso_info(qdf_device_t osdev, struct sk_buff *skb,
|
|
DMA_TO_DEVICE);
|
|
DMA_TO_DEVICE);
|
|
if (unlikely(dma_mapping_error(osdev->dev,
|
|
if (unlikely(dma_mapping_error(osdev->dev,
|
|
tso_frag_paddr))) {
|
|
tso_frag_paddr))) {
|
|
- qdf_print("DMA mapping error!\n");
|
|
|
|
|
|
+ qdf_print("%s:%d DMA mapping error!\n",
|
|
|
|
+ __func__, __LINE__);
|
|
qdf_assert(0);
|
|
qdf_assert(0);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -3036,6 +3044,7 @@ uint32_t __qdf_nbuf_get_tso_info(qdf_device_t osdev, struct sk_buff *skb,
|
|
if (!num_seg)
|
|
if (!num_seg)
|
|
curr_seg->seg.tso_flags.fin = tso_cmn_info.tcphdr->fin;
|
|
curr_seg->seg.tso_flags.fin = tso_cmn_info.tcphdr->fin;
|
|
|
|
|
|
|
|
+ qdf_tso_seg_dbg_record(curr_seg, TSOSEG_LOC_GETINFO);
|
|
curr_seg = curr_seg->next;
|
|
curr_seg = curr_seg->next;
|
|
}
|
|
}
|
|
return tso_info->num_segs;
|
|
return tso_info->num_segs;
|
|
@@ -3076,13 +3085,13 @@ void __qdf_nbuf_unmap_tso_segment(qdf_device_t osdev,
|
|
qdf_assert(0);
|
|
qdf_assert(0);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- qdf_tso_seg_dbg_record(tso_seg, TSOSEG_LOC_UNMAPTSO);
|
|
|
|
dma_unmap_single(osdev->dev,
|
|
dma_unmap_single(osdev->dev,
|
|
tso_seg->seg.tso_frags[num_frags].paddr,
|
|
tso_seg->seg.tso_frags[num_frags].paddr,
|
|
tso_seg->seg.tso_frags[num_frags].length,
|
|
tso_seg->seg.tso_frags[num_frags].length,
|
|
__qdf_dma_dir_to_os(QDF_DMA_TO_DEVICE));
|
|
__qdf_dma_dir_to_os(QDF_DMA_TO_DEVICE));
|
|
tso_seg->seg.tso_frags[num_frags].paddr = 0;
|
|
tso_seg->seg.tso_frags[num_frags].paddr = 0;
|
|
num_frags--;
|
|
num_frags--;
|
|
|
|
+ qdf_tso_seg_dbg_record(tso_seg, TSOSEG_LOC_UNMAPTSO);
|
|
}
|
|
}
|
|
|
|
|
|
if (is_last_seg) {
|
|
if (is_last_seg) {
|
|
@@ -3097,6 +3106,7 @@ void __qdf_nbuf_unmap_tso_segment(qdf_device_t osdev,
|
|
tso_seg->seg.tso_frags[0].length,
|
|
tso_seg->seg.tso_frags[0].length,
|
|
__qdf_dma_dir_to_os(QDF_DMA_TO_DEVICE));
|
|
__qdf_dma_dir_to_os(QDF_DMA_TO_DEVICE));
|
|
tso_seg->seg.tso_frags[0].paddr = 0;
|
|
tso_seg->seg.tso_frags[0].paddr = 0;
|
|
|
|
+ qdf_tso_seg_dbg_record(tso_seg, TSOSEG_LOC_UNMAPLAST);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
qdf_export_symbol(__qdf_nbuf_unmap_tso_segment);
|
|
qdf_export_symbol(__qdf_nbuf_unmap_tso_segment);
|