Эх сурвалжийг харах

Revert "qcacmn: Avoid using small buffer address"

This reverts Change-Id:	I9d5df20cbdf23c230d7c910cce9b9489dd9dd614

Change-Id: I2ce7c3cacc3fec007e511a9e3d15aed89173fbd9
CRs-Fixed: 3419648
Naveen Gurujala 2 жил өмнө
parent
commit
ef4db9909e
2 өөрчлөгдсөн 0 нэмэгдсэн , 202 устгасан
  1. 0 41
      qdf/inc/qdf_mem.h
  2. 0 161
      qdf/linux/src/qdf_mem.c

+ 0 - 41
qdf/inc/qdf_mem.h

@@ -1487,45 +1487,4 @@ int
 qdf_iommu_domain_get_attr(qdf_iommu_domain_t *domain,
 			  enum qdf_iommu_attr attr, void *data);
 #endif
-
-#define DEFAULT_DEBUG_DOMAIN_INIT 0
-#ifdef QCA_DMA_PADDR_CHECK
-/**
- * qdf_dma_invalid_buf_list_init() - Initialize dma invalid buffer list
- *
- * Return: none
- */
-void qdf_dma_invalid_buf_list_init(void);
-
-/**
- * qdf_dma_invalid_buf_list_deinit() - Deinitialize dma invalid buffer list
- *
- * Return: none
- */
-void qdf_dma_invalid_buf_list_deinit(void);
-
-/**
- * qdf_dma_invalid_buf_free() - Free dma invalid buffer
- * @dev: Pointer to device handle
- * @domain: Debug domain
- *
- * Return: none
- */
-void qdf_dma_invalid_buf_free(void *dev, uint8_t domain);
-#else
-static inline void
-qdf_dma_invalid_buf_list_init(void)
-{
-}
-
-static inline void
-qdf_dma_invalid_buf_list_deinit(void)
-{
-}
-
-static inline void
-qdf_dma_invalid_buf_free(void *dev, uint8_t domain)
-{
-}
-#endif /* QCA_DMA_PADDR_CHECK */
 #endif /* __QDF_MEMORY_H */

+ 0 - 161
qdf/linux/src/qdf_mem.c

@@ -2410,106 +2410,7 @@ void *qdf_mem_dma_alloc(qdf_device_t osdev, void *dev, qdf_size_t size,
 
 	return NULL;
 }
-#elif defined(QCA_DMA_PADDR_CHECK)
-#ifdef CONFIG_LEAK_DETECTION
-#define MAX_DEBUG_DOMAIN_COUNT QDF_DEBUG_DOMAIN_COUNT
-#define debug_domain_get() qdf_debug_domain_get()
-#else
-#define MAX_DEBUG_DOMAIN_COUNT 1
-#define debug_domain_get() DEFAULT_DEBUG_DOMAIN_INIT
-#endif
-/**
- * struct qdf_dma_buf_entry - DMA invalid buffer list entry
- * @node: QDF list node member
- * @size: DMA buffer size
- * @phy_addr: DMA buffer physical address
- * @vaddr: DMA buffer virtual address. if DMA buffer size is larger than entry
- *         size, we use the DMA buffer to save entry info and the starting
- *         address of the entry is the DMA buffer vaddr, in this way, we can
- *         reduce unnecessary memory consumption. if DMA buffer size is smaller
- *         than entry size, we need alloc another buffer, and vaddr will be set
- *         to the invalid dma buffer virtual address.
- */
-struct qdf_dma_buf_entry {
-	qdf_list_node_t node;
-	qdf_size_t size;
-	qdf_dma_addr_t phy_addr;
-	void *vaddr;
-};
-
-#define DMA_PHY_ADDR_RESERVED 0x2000
-#define QDF_DMA_MEM_ALLOC_MAX_RETRIES 10
-#define QDF_DMA_INVALID_BUF_LIST_SIZE 128
-static qdf_list_t qdf_invalid_buf_list[MAX_DEBUG_DOMAIN_COUNT];
-static bool qdf_invalid_buf_list_init[MAX_DEBUG_DOMAIN_COUNT];
-static qdf_spinlock_t qdf_invalid_buf_list_lock;
-
-static inline void *qdf_mem_dma_alloc(qdf_device_t osdev, void *dev,
-				      qdf_size_t size, qdf_dma_addr_t *paddr)
-{
-	void *vaddr;
-	uint32_t retry;
-	QDF_STATUS status;
-	bool is_separate;
-	qdf_list_t *cur_buf_list;
-	struct qdf_dma_buf_entry *entry;
-	uint8_t current_domain;
-
-	for (retry = 0; retry < QDF_DMA_MEM_ALLOC_MAX_RETRIES; retry++) {
-		vaddr = dma_alloc_coherent(dev, size, paddr,
-					   qdf_mem_malloc_flags());
-		if (!vaddr)
-			return NULL;
-
-		if (qdf_likely(*paddr > DMA_PHY_ADDR_RESERVED))
-			return vaddr;
-
-		current_domain = debug_domain_get();
-
-		/* if qdf_invalid_buf_list not init, so we can't store memory
-		 * info and can't hold it. let's free the invalid memory and
-		 * try to get memory with phy address greater than
-		 * DMA_PHY_ADDR_RESERVED
-		 */
-		if (current_domain >= MAX_DEBUG_DOMAIN_COUNT ||
-		    !qdf_invalid_buf_list_init[current_domain]) {
-			qdf_debug("physical address below 0x%x, re-alloc",
-				  DMA_PHY_ADDR_RESERVED);
-			dma_free_coherent(dev, size, vaddr, *paddr);
-			continue;
-		}
-
-		cur_buf_list = &qdf_invalid_buf_list[current_domain];
-		if (size >= sizeof(*entry)) {
-			entry = vaddr;
-			entry->vaddr = NULL;
-		} else {
-			entry = qdf_mem_malloc(sizeof(*entry));
-			if (!entry) {
-				dma_free_coherent(dev, size, vaddr, *paddr);
-				qdf_err("qdf_mem_malloc entry failed!");
-				continue;
-			}
-			entry->vaddr = vaddr;
-		}
-
-		entry->phy_addr = *paddr;
-		entry->size = size;
-		qdf_spin_lock_irqsave(&qdf_invalid_buf_list_lock);
-		status = qdf_list_insert_back(cur_buf_list,
-					      &entry->node);
-		qdf_spin_unlock_irqrestore(&qdf_invalid_buf_list_lock);
-		if (QDF_IS_STATUS_ERROR(status)) {
-			qdf_err("insert buf entry fail, status %d", status);
-			is_separate = !entry->vaddr ? false : true;
-			dma_free_coherent(dev, size, vaddr, *paddr);
-			if (is_separate)
-				qdf_mem_free(entry);
-		}
-	}
 
-	return NULL;
-}
 #else
 static inline void *qdf_mem_dma_alloc(qdf_device_t osdev, void *dev,
 				      qdf_size_t size, qdf_dma_addr_t *paddr)
@@ -3027,65 +2928,3 @@ __qdf_kmem_cache_free(qdf_kmem_cache_t cache, void *node)
 {
 }
 #endif
-
-#ifdef QCA_DMA_PADDR_CHECK
-void qdf_dma_invalid_buf_list_init(void)
-{
-	int i;
-
-	for (i = 0; i < MAX_DEBUG_DOMAIN_COUNT; i++) {
-		qdf_list_create(&qdf_invalid_buf_list[i],
-				QDF_DMA_INVALID_BUF_LIST_SIZE);
-		qdf_invalid_buf_list_init[i] = true;
-	}
-	qdf_spinlock_create(&qdf_invalid_buf_list_lock);
-}
-
-void qdf_dma_invalid_buf_free(void *dev, uint8_t domain)
-{
-	bool is_separate;
-	qdf_list_t *cur_buf_list;
-	struct qdf_dma_buf_entry *entry;
-	QDF_STATUS status = QDF_STATUS_E_EMPTY;
-
-	if (!dev)
-		return;
-
-	if (domain >= MAX_DEBUG_DOMAIN_COUNT)
-		return;
-
-	if (!qdf_invalid_buf_list_init[domain])
-		return;
-
-	cur_buf_list = &qdf_invalid_buf_list[domain];
-	do {
-		qdf_spin_lock_irqsave(&qdf_invalid_buf_list_lock);
-		status = qdf_list_remove_front(cur_buf_list,
-					       (qdf_list_node_t **)&entry);
-		qdf_spin_unlock_irqrestore(&qdf_invalid_buf_list_lock);
-
-		if (status != QDF_STATUS_SUCCESS)
-			break;
-
-		is_separate = !entry->vaddr ? false : true;
-		if (is_separate) {
-			dma_free_coherent(dev, entry->size, entry->vaddr,
-					  entry->phy_addr);
-			qdf_mem_free(entry);
-		} else
-			dma_free_coherent(dev, entry->size, entry,
-					  entry->phy_addr);
-	} while (!qdf_list_empty(cur_buf_list));
-	qdf_invalid_buf_list_init[domain] = false;
-}
-
-void qdf_dma_invalid_buf_list_deinit(void)
-{
-	int i;
-
-	for (i = 0; i < MAX_DEBUG_DOMAIN_COUNT; i++)
-		qdf_list_destroy(&qdf_invalid_buf_list[i]);
-
-	qdf_spinlock_destroy(&qdf_invalid_buf_list_lock);
-}
-#endif /* QCA_DMA_PADDR_CHECK */