mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-11-08 11:45:53 -05:00
qcacmn: Fixes for 64-bit paddr
In DP Transmit path, 32-bit variables are being used to store paddr. This will not work for 64-bit systems. Address this by making them 64-bit variables. Change-Id: I4c146649773cfd9bdc636187cb35d9d776bf072f CRs-Fixed: 2142458
This commit is contained in:
parent
a6bdfd8b46
commit
da917d573c
1 changed files with 9 additions and 7 deletions
|
|
@ -706,6 +706,7 @@ static qdf_nbuf_t dp_tx_prepare_raw(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
|
|||
{
|
||||
qdf_nbuf_t curr_nbuf = NULL;
|
||||
uint16_t total_len = 0;
|
||||
qdf_dma_addr_t paddr;
|
||||
int32_t i;
|
||||
|
||||
struct dp_tx_sg_info_s *sg_info = &msdu_info->u.sg_info;
|
||||
|
|
@ -729,9 +730,9 @@ static qdf_nbuf_t dp_tx_prepare_raw(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
|
|||
|
||||
for (curr_nbuf = nbuf, i = 0; curr_nbuf;
|
||||
curr_nbuf = qdf_nbuf_next(curr_nbuf), i++) {
|
||||
seg_info->frags[i].paddr_lo =
|
||||
qdf_nbuf_get_frag_paddr(curr_nbuf, 0);
|
||||
seg_info->frags[i].paddr_hi = 0x0;
|
||||
paddr = qdf_nbuf_get_frag_paddr(curr_nbuf, 0);
|
||||
seg_info->frags[i].paddr_lo = paddr;
|
||||
seg_info->frags[i].paddr_hi = ((uint64_t)paddr >> 32);
|
||||
seg_info->frags[i].len = qdf_nbuf_len(curr_nbuf);
|
||||
seg_info->frags[i].vaddr = (void *) curr_nbuf;
|
||||
total_len += qdf_nbuf_len(curr_nbuf);
|
||||
|
|
@ -1273,8 +1274,9 @@ static qdf_nbuf_t dp_tx_prepare_sg(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
seg_info->frags[0].paddr_lo = qdf_nbuf_get_frag_paddr(nbuf, 0);
|
||||
seg_info->frags[0].paddr_hi = 0;
|
||||
paddr = qdf_nbuf_get_frag_paddr(nbuf, 0);
|
||||
seg_info->frags[0].paddr_lo = paddr;
|
||||
seg_info->frags[0].paddr_hi = ((uint64_t) paddr) >> 32;
|
||||
seg_info->frags[0].len = qdf_nbuf_headlen(nbuf);
|
||||
seg_info->frags[0].vaddr = (void *) nbuf;
|
||||
|
||||
|
|
@ -2768,7 +2770,7 @@ dp_tx_me_send_convert_ucast(struct cdp_vdev *vdev_handle, qdf_nbuf_t nbuf,
|
|||
/*preparing data fragment*/
|
||||
data_frag.vaddr = qdf_nbuf_data(nbuf) + IEEE80211_ADDR_LEN;
|
||||
data_frag.paddr_lo = (uint32_t)paddr_data;
|
||||
data_frag.paddr_hi = ((uint64_t)paddr_data & 0xffffffff00000000) >> 32;
|
||||
data_frag.paddr_hi = (((uint64_t) paddr_data) >> 32);
|
||||
data_frag.len = len - DP_MAC_ADDR_LEN;
|
||||
|
||||
for (new_mac_idx = 0; new_mac_idx < new_mac_cnt; new_mac_idx++) {
|
||||
|
|
@ -2836,7 +2838,7 @@ dp_tx_me_send_convert_ucast(struct cdp_vdev *vdev_handle, qdf_nbuf_t nbuf,
|
|||
seg_info_new->frags[0].vaddr = (uint8_t *)mc_uc_buf;
|
||||
seg_info_new->frags[0].paddr_lo = (uint32_t) paddr_mcbuf;
|
||||
seg_info_new->frags[0].paddr_hi =
|
||||
((u64)paddr_mcbuf & 0xffffffff00000000) >> 32;
|
||||
((uint64_t) paddr_mcbuf >> 32);
|
||||
seg_info_new->frags[0].len = DP_MAC_ADDR_LEN;
|
||||
|
||||
seg_info_new->frags[1] = data_frag;
|
||||
|
|
|
|||
Loading…
Reference in a new issue