]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/net/wireless/ath/ath10k/ce.c
ath10k: fix possible bmi crash
[karo-tx-linux.git] / drivers / net / wireless / ath / ath10k / ce.c
index 878e1ec775daab274a67e11ec12ab830e5cbf3b8..a156e6e48708f96bada8aec2aa17f43d4e052690 100644 (file)
@@ -558,6 +558,7 @@ int ath10k_ce_revoke_recv_next(struct ath10k_ce_pipe *ce_state,
 
                /* sanity */
                dest_ring->per_transfer_context[sw_index] = NULL;
+               desc->nbytes = 0;
 
                /* Update sw_index */
                sw_index = CE_RING_IDX_INCR(nentries_mask, sw_index);
@@ -835,6 +836,9 @@ static int ath10k_ce_init_src_ring(struct ath10k *ar,
 
        nentries = roundup_pow_of_two(attr->src_nentries);
 
+       memset(src_ring->base_addr_owner_space, 0,
+              nentries * sizeof(struct ce_desc));
+
        src_ring->sw_index = ath10k_ce_src_ring_read_index_get(ar, ctrl_addr);
        src_ring->sw_index &= src_ring->nentries_mask;
        src_ring->hw_index = src_ring->sw_index;
@@ -869,6 +873,9 @@ static int ath10k_ce_init_dest_ring(struct ath10k *ar,
 
        nentries = roundup_pow_of_two(attr->dest_nentries);
 
+       memset(dest_ring->base_addr_owner_space, 0,
+              nentries * sizeof(struct ce_desc));
+
        dest_ring->sw_index = ath10k_ce_dest_ring_read_index_get(ar, ctrl_addr);
        dest_ring->sw_index &= dest_ring->nentries_mask;
        dest_ring->write_index =