Unverified Commit 3bd40dd7 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!15429 mailbox: pcc: Fix the possible race in updation of chan_in_use flag

Merge Pull Request from: @huangdengdui 
 
1. mailbox: pcc: Fix the possible race in updation of chan_in_use flag 
 
Link:https://gitee.com/openeuler/kernel/pulls/15429

 

Reviewed-by: default avatarHuisong Li <lihuisong@huawei.com>
Reviewed-by: default avatarLi Nan <linan122@huawei.com>
Signed-off-by: default avatarLi Nan <linan122@huawei.com>
parents 2f7961d8 730181d0
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -304,6 +304,12 @@ static irqreturn_t pcc_mbox_irq(int irq, void *p)
	if (pcc_chan_reg_read_modify_write(&pchan->plat_irq_ack))
		return IRQ_NONE;

	/*
	* Clear this flag immediately after updating interrupt ack register
	* to avoid possible race in updatation of the flag from
	* pcc_send_data() that could execute from mbox_chan_received_data()
	*/
	pchan->chan_in_use = false;
	mbox_chan_received_data(chan, NULL);

	/*
@@ -314,7 +320,6 @@ static irqreturn_t pcc_mbox_irq(int irq, void *p)
	 */
	if (pchan->type == ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE)
		pcc_send_data(chan, NULL);
	pchan->chan_in_use = false;

	return IRQ_HANDLED;
}