From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A942EC433DF for ; Sat, 8 Aug 2020 23:37:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 85A2620716 for ; Sat, 8 Aug 2020 23:37:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1596929822; bh=pheYLl1F1b+RkUaS318nzLCRhq4G0ZZVeOC/26y6vwE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=dmObC9J0XS1AN2ySPjoF72gu4gNs6cSfUdDUmqMd9GCHmemKexC3cw5l5D7gSYc3r LpJ83DneBW4byMY4BM7cpj99+7G9wZ6MxfnNjV1I6FFcSVDcw4NPpINP8G3AboCmR/ zALZVzjG/v5yqGAx0oyoA/jjoW8xOZTiZFF3YsdA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727790AbgHHXhB (ORCPT ); Sat, 8 Aug 2020 19:37:01 -0400 Received: from mail.kernel.org ([198.145.29.99]:49760 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727112AbgHHXg5 (ORCPT ); Sat, 8 Aug 2020 19:36:57 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E6ED6206C3; Sat, 8 Aug 2020 23:36:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1596929816; bh=pheYLl1F1b+RkUaS318nzLCRhq4G0ZZVeOC/26y6vwE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SnPxvsMyJzcP/ix5LR91EdtFwsFIMmA9joFrHdwrPULcEKjN11LdehMxyH88ude17 wHENC8QwcxRFcjicddBUwXo8vo8qXfd4mVZi1wfP2wdBR+XXOZO1XlRsoETlTfo7dO 6CEa4/Ic92R5gvMnfZlErujOKch/013QgXynaIOg= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sibi Sankar , Bjorn Andersson , Rishabh Bhatnagar , Sasha Levin , linux-arm-msm@vger.kernel.org Subject: [PATCH AUTOSEL 5.8 51/72] soc: qcom: pdr: Reorder the PD state indication ack Date: Sat, 8 Aug 2020 19:35:20 -0400 Message-Id: <20200808233542.3617339-51-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200808233542.3617339-1-sashal@kernel.org> References: <20200808233542.3617339-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sibi Sankar [ Upstream commit 72fe996f9643043c8f84e32c0610975b01aa555b ] The Protection Domains (PD) have a mechanism to keep its resources enabled until the PD down indication is acked. Reorder the PD state indication ack so that clients get to release the relevant resources before the PD goes down. Reviewed-by: Bjorn Andersson Reviewed-by: Rishabh Bhatnagar Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers") Reported-by: Rishabh Bhatnagar Signed-off-by: Sibi Sankar Link: https://lore.kernel.org/r/20200701195954.9007-1-sibis@codeaurora.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin --- drivers/soc/qcom/pdr_interface.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/soc/qcom/pdr_interface.c b/drivers/soc/qcom/pdr_interface.c index bdcf16f88a97f..4c9225f15c4e6 100644 --- a/drivers/soc/qcom/pdr_interface.c +++ b/drivers/soc/qcom/pdr_interface.c @@ -278,13 +278,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); -- 2.25.1