qcacmn: introduce simple nbuf_free API in RX path

simple Alloc is being used in RX path which avoids
certain debug logic. during free of nbuf we should
avoid this debug logic else it will report it as
double free, this will be triggered only when debug
is enabled

Change-Id: Iadb40071fb733cc4de3291784df5075d5a099a8e
This commit is contained in:
Tallapragada Kalyan
2022-01-23 05:03:48 +05:30
committed by Madan Koyyalamudi
부모 e4d9b0c2d7
커밋 b265fdd7fc
9개의 변경된 파일124개의 추가작업 그리고 180개의 파일을 삭제

파일 보기

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -220,14 +221,14 @@ static void dp_rx_desc_nbuf_cleanup(struct dp_soc *soc,
dp_info_rl("Unable to unmap nbuf: %pK", nbuf);
qdf_nbuf_unmap_nbytes_single(soc->osdev, nbuf,
QDF_DMA_BIDIRECTIONAL, buf_size);
qdf_nbuf_free(nbuf);
dp_rx_nbuf_free(nbuf);
nbuf = next;
}
nbuf = nbuf_free_list;
while (nbuf) {
next = nbuf->next;
qdf_nbuf_free(nbuf);
dp_rx_nbuf_free(nbuf);
nbuf = next;
}
}
@@ -410,17 +411,10 @@ void dp_rx_desc_nbuf_and_pool_free(struct dp_soc *soc, uint32_t pool_id,
nbuf = rx_desc_pool->array[i].rx_desc.nbuf;
if (!(rx_desc_pool->array[i].rx_desc.unmapped)) {
dp_ipa_handle_rx_buf_smmu_mapping(
soc, nbuf,
rx_desc_pool->buf_size,
false);
qdf_nbuf_unmap_nbytes_single(
soc->osdev, nbuf,
QDF_DMA_FROM_DEVICE,
rx_desc_pool->buf_size);
dp_rx_nbuf_unmap_pool(soc, rx_desc_pool, nbuf);
rx_desc_pool->array[i].rx_desc.unmapped = 1;
}
qdf_nbuf_free(nbuf);
dp_rx_nbuf_free(nbuf);
}
}
qdf_mem_free(rx_desc_pool->array);
@@ -440,17 +434,10 @@ void dp_rx_desc_nbuf_free(struct dp_soc *soc,
nbuf = rx_desc_pool->array[i].rx_desc.nbuf;
if (!(rx_desc_pool->array[i].rx_desc.unmapped)) {
dp_ipa_handle_rx_buf_smmu_mapping(
soc, nbuf,
rx_desc_pool->buf_size,
false);
qdf_nbuf_unmap_nbytes_single(
soc->osdev, nbuf,
QDF_DMA_FROM_DEVICE,
rx_desc_pool->buf_size);
dp_rx_nbuf_unmap_pool(soc, rx_desc_pool, nbuf);
rx_desc_pool->array[i].rx_desc.unmapped = 1;
}
qdf_nbuf_free(nbuf);
dp_rx_nbuf_free(nbuf);
}
}
qdf_spin_unlock_bh(&rx_desc_pool->lock);