Bläddra i källkod

qcacld-3.0: Add TSO magic cookie and freelist flag to last tso element

Fix to add TSO magic cookie and freelist flag to last tso element during
ol_tso_seg_list_init() to avoid any crash during WIFI OFF.

CRs-Fixed: 1111760
Change-Id: I4504a7f4e9ecfe99337a4f544bc2d3cc8a8c3a27
Poddar, Siddarth 8 år sedan
förälder
incheckning
b92c8ecf2e
1 ändrade filer med 4 tillägg och 2 borttagningar
  1. 4 2
      core/dp/txrx/ol_tx.c

+ 4 - 2
core/dp/txrx/ol_tx.c

@@ -1800,6 +1800,8 @@ void ol_tso_seg_list_init(struct ol_txrx_pdev_t *pdev, uint32_t num_seg)
 	struct qdf_tso_seg_elem_t *c_element;
 
 	c_element = qdf_mem_malloc(sizeof(struct qdf_tso_seg_elem_t));
+	c_element->on_freelist = 1;
+	c_element->cookie = TSO_SEG_MAGIC_COOKIE;
 	pdev->tso_seg_pool.freelist = c_element;
 	for (i = 0; i < (num_seg - 1); i++) {
 		if (qdf_unlikely(!c_element)) {
@@ -1812,11 +1814,11 @@ void ol_tso_seg_list_init(struct ol_txrx_pdev_t *pdev, uint32_t num_seg)
 			return;
 		}
 		/* set the freelist bit and magic cookie*/
-		c_element->on_freelist = 1;
-		c_element->cookie = TSO_SEG_MAGIC_COOKIE;
 		c_element->next =
 			qdf_mem_malloc(sizeof(struct qdf_tso_seg_elem_t));
 		c_element = c_element->next;
+		c_element->on_freelist = 1;
+		c_element->cookie = TSO_SEG_MAGIC_COOKIE;
 		c_element->next = NULL;
 	}
 	pdev->tso_seg_pool.pool_size = num_seg;