The type of "nfree" is u32, so "nfree - 1" can only be overflowed when "nfree" is zero. Replace "if (nfree - 1 > nfree)" with "if (nfree == 0)" seems more clear. And remove the assignment "nfree = 0", no need for it.
Signed-off-by: Zhen Lei <[email protected]> --- drivers/nvdimm/dimm_devs.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/nvdimm/dimm_devs.c b/drivers/nvdimm/dimm_devs.c index 61374def515552f..bf7d0cdc147cb39 100644 --- a/drivers/nvdimm/dimm_devs.c +++ b/drivers/nvdimm/dimm_devs.c @@ -347,10 +347,9 @@ static ssize_t available_slots_show(struct device *dev, nvdimm_bus_lock(dev); nfree = nd_label_nfree(ndd); - if (nfree - 1 > nfree) { + if (nfree == 0) dev_WARN_ONCE(dev, 1, "we ate our last label?\n"); - nfree = 0; - } else + else nfree--; rc = sprintf(buf, "%d\n", nfree); nvdimm_bus_unlock(dev); -- 1.8.3

