]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
scsi: ufs: Print uic error history in time order
authorStanley Chu <stanley.chu@mediatek.com>
Mon, 28 Jan 2019 14:04:26 +0000 (22:04 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 5 Feb 2019 02:53:17 +0000 (21:53 -0500)
uic errors are currently printed out of time order.

Make things more readable by printing logs in time order, and printing
"No record" if history is empty.

Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Reviewed-by: Bean Huo <beanhuo@micron.com>
Tested-by: Bean Huo <beanhuo@micron.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufshcd.c

index 9ba7671b84f8798d190295a51baf5751e1229843..f90badcb83184e2d448e98e1db9ca4f5dc7ec9e5 100644 (file)
@@ -393,15 +393,20 @@ static void ufshcd_print_uic_err_hist(struct ufs_hba *hba,
                struct ufs_uic_err_reg_hist *err_hist, char *err_name)
 {
        int i;
+       bool found = false;
 
        for (i = 0; i < UIC_ERR_REG_HIST_LENGTH; i++) {
-               int p = (i + err_hist->pos - 1) % UIC_ERR_REG_HIST_LENGTH;
+               int p = (i + err_hist->pos) % UIC_ERR_REG_HIST_LENGTH;
 
                if (err_hist->reg[p] == 0)
                        continue;
                dev_err(hba->dev, "%s[%d] = 0x%x at %lld us\n", err_name, i,
                        err_hist->reg[p], ktime_to_us(err_hist->tstamp[p]));
+               found = true;
        }
+
+       if (!found)
+               dev_err(hba->dev, "No record of %s uic errors\n", err_name);
 }
 
 static void ufshcd_print_host_regs(struct ufs_hba *hba)