Messages in this thread | | | Subject | Re: [PATCH v3 2/6] bus: mhi: core: Remove link_status() callback | From | Hemant Kumar <> | Date | Tue, 28 Apr 2020 11:54:03 -0700 |
| |
On 4/27/20 8:59 AM, Jeffrey Hugo wrote: > If the MHI core detects invalid data due to a PCI read, it calls into > the controller via link_status() to double check that the link is infact > down. All in all, this is pretty pointless, and racy. There are no good > reasons for this, and only drawbacks. > > Its pointless because chances are, the controller is going to do the same > thing to determine if the link is down - attempt a PCI access and compare > the result. This does not make the link status decision any smarter. > > Its racy because its possible that the link was down at the time of the > MHI core access, but then recovered before the controller access. In this > case, the controller will indicate the link is not down, and the MHI core > will precede to use a bad value as the MHI core does not attempt to retry > the access. > > Retrying the access in the MHI core is a bad idea because again, it is > racy - what if the link is down again? Furthermore, there may be some > higher level state associated with the link status, that is now invalid > because the link went down. > > The only reason why the MHI core could see "invalid" data when doing a PCI > access, that is actually valid, is if the register actually contained the > PCI spec defined sentinel for an invalid access. In this case, it is > arguable that the MHI implementation broken, and should be fixed, not > worked around. > > Therefore, remove the link_status() callback before anyone attempts to > implement it. > > Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org> > Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > --- Reviewed-by: Hemant Kumar <hemantk@codeaurora.org> -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
| |