]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
scsi: ufs: core: sysfs: Prevent div by zero
authorGwendal Grignou <gwendal@chromium.org>
Wed, 20 Nov 2024 06:25:22 +0000 (22:25 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 4 Dec 2024 18:22:59 +0000 (13:22 -0500)
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>
drivers/ufs/core/ufs-sysfs.c

index 265f21133b633e36790205d58338a98dd30ed3ad..796e37a1d859f21bb47e899b8fae86fefc7daca6 100644 (file)
@@ -670,6 +670,9 @@ static ssize_t read_req_latency_avg_show(struct device *dev,
        struct ufs_hba *hba = dev_get_drvdata(dev);
        struct ufs_hba_monitor *m = &hba->monitor;
 
+       if (!m->nr_req[READ])
+               return sysfs_emit(buf, "0\n");
+
        return sysfs_emit(buf, "%llu\n", div_u64(ktime_to_us(m->lat_sum[READ]),
                                                 m->nr_req[READ]));
 }
@@ -737,6 +740,9 @@ static ssize_t write_req_latency_avg_show(struct device *dev,
        struct ufs_hba *hba = dev_get_drvdata(dev);
        struct ufs_hba_monitor *m = &hba->monitor;
 
+       if (!m->nr_req[WRITE])
+               return sysfs_emit(buf, "0\n");
+
        return sysfs_emit(buf, "%llu\n", div_u64(ktime_to_us(m->lat_sum[WRITE]),
                                                 m->nr_req[WRITE]));
 }