diff options
Diffstat (limited to 'drivers/soc/qcom/pdr_interface.c')
| -rw-r--r-- | drivers/soc/qcom/pdr_interface.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/soc/qcom/pdr_interface.c b/drivers/soc/qcom/pdr_interface.c index bdcf16f88a97..088dc99f77f3 100644 --- a/drivers/soc/qcom/pdr_interface.c +++ b/drivers/soc/qcom/pdr_interface.c @@ -5,6 +5,7 @@  #include <linux/kernel.h>  #include <linux/module.h> +#include <linux/slab.h>  #include <linux/string.h>  #include <linux/workqueue.h> @@ -278,13 +279,15 @@ static void pdr_indack_work(struct work_struct *work)  	list_for_each_entry_safe(ind, tmp, &pdr->indack_list, node) {  		pds = ind->pds; -		pdr_send_indack_msg(pdr, pds, ind->transaction_id);  		mutex_lock(&pdr->status_lock);  		pds->state = ind->curr_state;  		pdr->status(pds->state, pds->service_path, pdr->priv);  		mutex_unlock(&pdr->status_lock); +		/* Ack the indication after clients release the PD resources */ +		pdr_send_indack_msg(pdr, pds, ind->transaction_id); +  		mutex_lock(&pdr->list_lock);  		list_del(&ind->node);  		mutex_unlock(&pdr->list_lock);  |