On Fri, Feb 12, 2021 at 05:40:14PM -0700, Jeffrey Hugo wrote: > The intvec handler stores the caches ee in a local variable for use in > processing the intvec. When determining if a syserr is a fatal error or > not, the intvec handler is using the cached version, when it should be > using the current ee read from the device. Currently, the device could > be in the PBL ee as the result of a fatal error, but the cached ee might > be AMSS, which would cause the intvec handler to incorrectly signal a > non-fatal syserr. > > Fixes: 3000f85b8f47 ("bus: mhi: core: Add support for basic PM operations") > Signed-off-by: Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> Thanks, Mani > --- > 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 4e0131b..f182736 100644 > --- a/drivers/bus/mhi/core/main.c > +++ b/drivers/bus/mhi/core/main.c > @@ -448,7 +448,7 @@ irqreturn_t mhi_intvec_threaded_handler(int irq_number, void *priv) > wake_up_all(&mhi_cntrl->state_event); > > /* For fatal errors, we let controller decide next step */ > - if (MHI_IN_PBL(ee)) > + if (MHI_IN_PBL(mhi_cntrl->ee)) > mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_FATAL_ERROR); > else > mhi_pm_sys_err_handler(mhi_cntrl); > -- > Qualcomm Technologies, Inc. is a member of the > Code Aurora Forum, a Linux Foundation Collaborative Project. >