scsi: ufs: fix probe failure masked by crypto engine reset

When ufshcd_host_reset_and_restore() is called, it is possible
that ufshcd_probe_hba() fails and return an error value.
However, the later call to crypto_engine_reset() might succeed
and override the previous error value.
This will result in ufshcd_host_reset_and_restore() returning
success while in fact a serious error may have occured which
should prevent us from continuing in the normal sequence.
Instead, call crypto_engine_reset() only if ufshcd_probe_hba()
was successfull.

Change-Id: I0462f674b8750bfb9e0657cb37833aa2bd2aa4f0
Signed-off-by: Gilad Broner <gbroner@codeaurora.org>
Signed-off-by: Dov Levenglick <dovl@codeaurora.org>
This commit is contained in:
Dov Levenglick 2015-04-26 10:56:57 +03:00 committed by David Keitel
parent 30fd811fb7
commit 797f8f7f8d

View file

@ -6055,7 +6055,7 @@ static int ufshcd_host_reset_and_restore(struct ufs_hba *hba)
goto out;
}
if (hba->vops->crypto_engine_reset) {
if (!err && hba->vops && hba->vops->crypto_engine_reset) {
err = hba->vops->crypto_engine_reset(hba);
if (err) {
dev_err(hba->dev,