Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi: ufs: core: sysfs: Prevent div by zero

Prevent a division by 0 when monitoring is not enabled.

Fixes: 1d8613a23f3c ("scsi: ufs: core: Introduce HBA performance monitor sysfs nodes")
Cc: stable@vger.kernel.org
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Link: https://lore.kernel.org/r/20241120062522.917157-1-gwendal@chromium.org
Reviewed-by: Can Guo <quic_cang@quicinc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Gwendal Grignou and committed by
Martin K. Petersen
eb48e9fc 35002a8e

+6
+6
drivers/ufs/core/ufs-sysfs.c
··· 670 670 struct ufs_hba *hba = dev_get_drvdata(dev); 671 671 struct ufs_hba_monitor *m = &hba->monitor; 672 672 673 + if (!m->nr_req[READ]) 674 + return sysfs_emit(buf, "0\n"); 675 + 673 676 return sysfs_emit(buf, "%llu\n", div_u64(ktime_to_us(m->lat_sum[READ]), 674 677 m->nr_req[READ])); 675 678 } ··· 739 736 { 740 737 struct ufs_hba *hba = dev_get_drvdata(dev); 741 738 struct ufs_hba_monitor *m = &hba->monitor; 739 + 740 + if (!m->nr_req[WRITE]) 741 + return sysfs_emit(buf, "0\n"); 742 742 743 743 return sysfs_emit(buf, "%llu\n", div_u64(ktime_to_us(m->lat_sum[WRITE]), 744 744 m->nr_req[WRITE]));