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
This commit is contained in:

committed by
qcabuildsw

parent
0b8c6c5c3a
commit
b92c8ecf2e
@@ -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;
|
struct qdf_tso_seg_elem_t *c_element;
|
||||||
|
|
||||||
c_element = qdf_mem_malloc(sizeof(struct qdf_tso_seg_elem_t));
|
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;
|
pdev->tso_seg_pool.freelist = c_element;
|
||||||
for (i = 0; i < (num_seg - 1); i++) {
|
for (i = 0; i < (num_seg - 1); i++) {
|
||||||
if (qdf_unlikely(!c_element)) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
/* set the freelist bit and magic cookie*/
|
/* set the freelist bit and magic cookie*/
|
||||||
c_element->on_freelist = 1;
|
|
||||||
c_element->cookie = TSO_SEG_MAGIC_COOKIE;
|
|
||||||
c_element->next =
|
c_element->next =
|
||||||
qdf_mem_malloc(sizeof(struct qdf_tso_seg_elem_t));
|
qdf_mem_malloc(sizeof(struct qdf_tso_seg_elem_t));
|
||||||
c_element = c_element->next;
|
c_element = c_element->next;
|
||||||
|
c_element->on_freelist = 1;
|
||||||
|
c_element->cookie = TSO_SEG_MAGIC_COOKIE;
|
||||||
c_element->next = NULL;
|
c_element->next = NULL;
|
||||||
}
|
}
|
||||||
pdev->tso_seg_pool.pool_size = num_seg;
|
pdev->tso_seg_pool.pool_size = num_seg;
|
||||||
|
Reference in New Issue
Block a user