From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Subject: smatch: nouveau: bogus compare against zero Date: Mon, 20 Dec 2010 09:48:25 +0300 Message-ID: <20101220064825.GP1936@bicker> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wy0-f177.google.com (mail-wy0-f177.google.com [74.125.82.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 3A0409E76A for ; Sun, 19 Dec 2010 22:48:35 -0800 (PST) Received: by wyf22 with SMTP id 22so2502196wyf.36 for ; Sun, 19 Dec 2010 22:48:34 -0800 (PST) Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Ben Skeggs Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org 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