qcacld-3.0: Check for SSR before sending messages to upper layers
FW is asserted, dont service the messages. The hif completion thread used to prevent processing of messages when firmware crashed. Change-Id: I42a5a285056e989d302e766f2922bb7c114634dc CRs-Fixed: 941358
This commit is contained in:
committed by
Satish Singh
parent
7523d226a3
commit
eab684b511
@@ -685,6 +685,9 @@ hif_pci_ce_send_done(struct CE_handle *copyeng, void *ce_context,
|
|||||||
* when last fragment is complteted.
|
* when last fragment is complteted.
|
||||||
*/
|
*/
|
||||||
if (transfer_context != CE_SENDLIST_ITEM_CTXT) {
|
if (transfer_context != CE_SENDLIST_ITEM_CTXT) {
|
||||||
|
if (hif_state->scn->target_status
|
||||||
|
== OL_TRGET_STATUS_RESET)
|
||||||
|
return;
|
||||||
|
|
||||||
msg_callbacks->txCompletionHandler(
|
msg_callbacks->txCompletionHandler(
|
||||||
msg_callbacks->Context,
|
msg_callbacks->Context,
|
||||||
@@ -751,8 +754,11 @@ hif_pci_ce_recv_data(struct CE_handle *copyeng, void *ce_context,
|
|||||||
|
|
||||||
atomic_inc(&pipe_info->recv_bufs_needed);
|
atomic_inc(&pipe_info->recv_bufs_needed);
|
||||||
hif_post_recv_buffers_for_pipe(pipe_info);
|
hif_post_recv_buffers_for_pipe(pipe_info);
|
||||||
hif_ce_do_recv(msg_callbacks, transfer_context, nbytes,
|
if (hif_state->scn->target_status == OL_TRGET_STATUS_RESET)
|
||||||
pipe_info);
|
return;
|
||||||
|
|
||||||
|
hif_ce_do_recv(msg_callbacks, transfer_context,
|
||||||
|
nbytes, pipe_info);
|
||||||
|
|
||||||
/* Set up force_break flag if num of receices reaches
|
/* Set up force_break flag if num of receices reaches
|
||||||
* MAX_NUM_OF_RECEIVES */
|
* MAX_NUM_OF_RECEIVES */
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
|
|
||||||
#ifndef __CE_TASKLET_H__
|
#ifndef __CE_TASKLET_H__
|
||||||
#define __CE_TASKLET_H__
|
#define __CE_TASKLET_H__
|
||||||
|
#include "ce_main.h"
|
||||||
void init_tasklet_workers(void);
|
void init_tasklet_workers(void);
|
||||||
void ce_tasklet_init(struct HIF_CE_state *hif_ce_state, uint32_t mask);
|
void ce_tasklet_init(struct HIF_CE_state *hif_ce_state, uint32_t mask);
|
||||||
void ce_tasklet_kill(struct HIF_CE_state *hif_ce_state);
|
void ce_tasklet_kill(struct HIF_CE_state *hif_ce_state);
|
||||||
|
|||||||
Reference in New Issue
Block a user