> > > > > Hi, > > > > > > > > Currently bits in hba->outstanding_tasks are cleared only after their > > > corresponding task management commands are successfully done by > > > __ufshcd_issue_tm_cmd(). > > > > > > If timeout happens in a task management command, its corresponding > > > bit in hba->outstanding_tasks will not be cleared until next task > > > management command with the same tag used successfully finishes.‧ > > ufshcd_clear_tm_cmd is also called as part of ufshcd_err_handler. > > Does this change something in your assumptions? > And BTW there is a specific __clear_bit in __ufshcd_issue_tm_cmd() in case > of a TO. Gave it another look - If indeed this bit isn't cleared as part of the error flow that the timeout triggers, I think you should relate to ufshcd_clear_tm_cmd specifically in your commit log - Because this is the obvious place where the bit cleanup should take place. Also the fix should be much more intuitive IMO - Today we do __clear_bit() on success, ufshcd_clear_tm_cmd() on error, And also ufshcd_put_tm_slot() either way? Maybe you can choose a single place to clear it, without any additional code? Thanks, Avri