smatch: nouveau: bogus compare against zero

Dan Carpenter error27 at gmail.com
Sun Dec 19 22:48:25 PST 2010


Hi Ben,

This is a new Smatch warning in linux-next.  It comes from: a11c3198c
"drm/nv50: import new vm code"

drivers/gpu/drm/nouveau/nv50_vm.c +104 nv50_vm_map(13)
	warn: bogus compare against zero: 'i'

    94          u32 block, i;
    95
    96          phys  = nv50_vm_addr(vma, pgt, phys, mem->memtype, 0);
    97          pte <<= 3;
    98          cnt <<= 3;
    99
   100          while (cnt) {
   101                  u32 offset_h = upper_32_bits(phys);
   102                  u32 offset_l = lower_32_bits(phys);
   103
   104                  for (i = 7; i >= 0; i--) {
                                    ^^^^^^

	i is unsigned so this test is always true.

   105                          block = 1 << (i + 3);
   106                          if (cnt >= block && !(pte & (block - 1)))
   107                                  break;
   108                  }
   109                  offset_l |= (i << 7);

regards,
dan carpenter


More information about the dri-devel mailing list