I misplaced a closing ) in a patch using unlikely() and broke the comparison, see [1] for context. The fix was: - if (unlikely(abs(count + amount)) >= batch) { + if (unlikely(abs(count + amount) >= batch)) { Neither kernel build with W=1 nor C=1 (smatch) report the problem. Given that this compiles fine and for many cases with the bogus usage it also happens to produce the correct result, I have to suspect there are spots in the kernel with the problem. Either way, sounds like something smatch should be testing for. [1] https://lore.kernel.org/oe-lkp/pywb7wcml44gzgidn7mtwwr23mybbilakckchk4777wfibtruj@n4yiwwpvglf7/T/#t -- Mateusz Guzik <mjguzik gmail.com>