diff mbox series

bus: mhi: core: Use current ee in intvec handler

Message ID 1589509049-14532-1-git-send-email-jhugo@codeaurora.org (mailing list archive)
State New, archived
Headers show
Series bus: mhi: core: Use current ee in intvec handler | expand

Commit Message

Jeffrey Hugo May 15, 2020, 2:17 a.m. UTC
The intvec handler stores the caches ee in a local variable for use in
processing the intvec.  It should instead use the current ee which is
read at the beginning of the intvec incase that the intvec is related to
an ee change.  Otherwise, the handler might make the wrong decision
based on an incorrect ee.

Fixes: 3000f85b8f47 (bus: mhi: core: Add support for basic PM operations)
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
---
 drivers/bus/mhi/core/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bhaumik Bhatt May 16, 2020, 2:58 a.m. UTC | #1
On 2020-05-14 19:17, Jeffrey Hugo wrote:
> The intvec handler stores the caches ee in a local variable for use in
> processing the intvec.  It should instead use the current ee which is
> read at the beginning of the intvec incase that the intvec is related 
> to
> an ee change.  Otherwise, the handler might make the wrong decision
> based on an incorrect ee.
> 
> Fixes: 3000f85b8f47 (bus: mhi: core: Add support for basic PM 
> operations)
> Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
> ---
>  drivers/bus/mhi/core/main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/bus/mhi/core/main.c b/drivers/bus/mhi/core/main.c
> index 7272a5a..0a41fe5 100644
> --- a/drivers/bus/mhi/core/main.c
> +++ b/drivers/bus/mhi/core/main.c
> @@ -386,8 +386,8 @@ irqreturn_t mhi_intvec_threaded_handler(int
> irq_number, void *dev)
>  	write_lock_irq(&mhi_cntrl->pm_lock);
>  	if (MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) {
>  		state = mhi_get_mhi_state(mhi_cntrl);
> -		ee = mhi_cntrl->ee;
>  		mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl);
> +		ee = mhi_cntrl->ee;
>  	}
> 
>  	if (state == MHI_STATE_SYS_ERR) {
Hi Jeff,

Let's hold off on this change for now please as we have some good set of
bug fixes and improvements coming in very soon. They're only pending 
post
to LKML.

Thanks
Jeffrey Hugo May 17, 2020, 7:38 p.m. UTC | #2
On 5/15/2020 8:58 PM, bbhatt@codeaurora.org wrote:
> On 2020-05-14 19:17, Jeffrey Hugo wrote:
>> The intvec handler stores the caches ee in a local variable for use in
>> processing the intvec.  It should instead use the current ee which is
>> read at the beginning of the intvec incase that the intvec is related to
>> an ee change.  Otherwise, the handler might make the wrong decision
>> based on an incorrect ee.
>>
>> Fixes: 3000f85b8f47 (bus: mhi: core: Add support for basic PM operations)
>> Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
>> ---
>>  drivers/bus/mhi/core/main.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/bus/mhi/core/main.c b/drivers/bus/mhi/core/main.c
>> index 7272a5a..0a41fe5 100644
>> --- a/drivers/bus/mhi/core/main.c
>> +++ b/drivers/bus/mhi/core/main.c
>> @@ -386,8 +386,8 @@ irqreturn_t mhi_intvec_threaded_handler(int
>> irq_number, void *dev)
>>      write_lock_irq(&mhi_cntrl->pm_lock);
>>      if (MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) {
>>          state = mhi_get_mhi_state(mhi_cntrl);
>> -        ee = mhi_cntrl->ee;
>>          mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl);
>> +        ee = mhi_cntrl->ee;
>>      }
>>
>>      if (state == MHI_STATE_SYS_ERR) {
> Hi Jeff,
> 
> Let's hold off on this change for now please as we have some good set of
> bug fixes and improvements coming in very soon. They're only pending post
> to LKML.

Does that series of changes address the same issue this patch does, and 
are they going to be posted soon (ie this week)?
Bhaumik Bhatt May 18, 2020, 5:31 p.m. UTC | #3
On 2020-05-17 12:38, Jeffrey Hugo wrote:
> On 5/15/2020 8:58 PM, bbhatt@codeaurora.org wrote:
>> On 2020-05-14 19:17, Jeffrey Hugo wrote:
>>> The intvec handler stores the caches ee in a local variable for use 
>>> in
>>> processing the intvec.  It should instead use the current ee which is
>>> read at the beginning of the intvec incase that the intvec is related 
>>> to
>>> an ee change.  Otherwise, the handler might make the wrong decision
>>> based on an incorrect ee.
>>> 
>>> Fixes: 3000f85b8f47 (bus: mhi: core: Add support for basic PM 
>>> operations)
>>> Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
>>> ---
>>>  drivers/bus/mhi/core/main.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>> 
>>> diff --git a/drivers/bus/mhi/core/main.c 
>>> b/drivers/bus/mhi/core/main.c
>>> index 7272a5a..0a41fe5 100644
>>> --- a/drivers/bus/mhi/core/main.c
>>> +++ b/drivers/bus/mhi/core/main.c
>>> @@ -386,8 +386,8 @@ irqreturn_t mhi_intvec_threaded_handler(int
>>> irq_number, void *dev)
>>>      write_lock_irq(&mhi_cntrl->pm_lock);
>>>      if (MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) {
>>>          state = mhi_get_mhi_state(mhi_cntrl);
>>> -        ee = mhi_cntrl->ee;
>>>          mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl);
>>> +        ee = mhi_cntrl->ee;
>>>      }
>>> 
>>>      if (state == MHI_STATE_SYS_ERR) {
>> Hi Jeff,
>> 
>> Let's hold off on this change for now please as we have some good set 
>> of
>> bug fixes and improvements coming in very soon. They're only pending 
>> post
>> to LKML.
> 
> Does that series of changes address the same issue this patch does,
> and are they going to be posted soon (ie this week)?
Yes.
diff mbox series

Patch

diff --git a/drivers/bus/mhi/core/main.c b/drivers/bus/mhi/core/main.c
index 7272a5a..0a41fe5 100644
--- a/drivers/bus/mhi/core/main.c
+++ b/drivers/bus/mhi/core/main.c
@@ -386,8 +386,8 @@  irqreturn_t mhi_intvec_threaded_handler(int irq_number, void *dev)
 	write_lock_irq(&mhi_cntrl->pm_lock);
 	if (MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) {
 		state = mhi_get_mhi_state(mhi_cntrl);
-		ee = mhi_cntrl->ee;
 		mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl);
+		ee = mhi_cntrl->ee;
 	}
 
 	if (state == MHI_STATE_SYS_ERR) {