From: Colin Ian King <colin.king@xxxxxxxxxxxxx> The comparison max_depth != (u64)-1 is always true as max_depth is a unsigned int and so its upper 32 bits are 0. Fix this by using the a comparison of (unsigned int)-1 to ensure like types are compared. Note, if max_depth is changed to a wider type then this will need fixing again. Detected by CoverityScan, CID#1471763 ("Operands don't affect result") Fixes: commit d70675121546 ("block: introduce blk-iolatency io controller") Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx> --- block/blk-iolatency.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/blk-iolatency.c b/block/blk-iolatency.c index 56ddb2c68752..9a6427372da0 100644 --- a/block/blk-iolatency.c +++ b/block/blk-iolatency.c @@ -434,7 +434,7 @@ static void iolatency_record_time(struct iolatency_grp *iolat, * We don't want to count issue_as_root bio's in the cgroups latency * statistics as it could skew the numbers downwards. */ - if (unlikely(issue_as_root && iolat->rq_depth.max_depth != (u64)-1)) { + if (unlikely(issue_as_root && iolat->rq_depth.max_depth != (unsigned int)-1)) { u64 sub = iolat->min_lat_nsec; if (req_time < sub) blkcg_add_delay(lat_to_blkg(iolat), now, sub - req_time); @@ -816,7 +816,7 @@ static size_t iolatency_pd_stat(struct blkg_policy_data *pd, char *buf, struct iolatency_grp *iolat = pd_to_lat(pd); unsigned long long avg_lat = div64_u64(iolat->total_lat_avg, NSEC_PER_USEC); - if (iolat->rq_depth.max_depth == (u64)-1) + if (iolat->rq_depth.max_depth == (unsigned int)-1) return scnprintf(buf, size, " depth=max avg_lat=%llu", avg_lat); -- 2.17.1