From patchwork Fri Mar 22 14:35:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 160911 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp886410jan; Fri, 22 Mar 2019 07:35:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqwnPxn/TDpnBkGlHDDsRLx8pWCFnVjAXJVjcKwYuPsuyi6fY++STxW0WI3xNm0tQtkRyxhQ X-Received: by 2002:a63:5366:: with SMTP id t38mr1301197pgl.425.1553265332441; Fri, 22 Mar 2019 07:35:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553265332; cv=none; d=google.com; s=arc-20160816; b=Ze7PjzfnpI+bt+turbf+U5PJz8rNSee8vZAUhxIZ2wXFPDMcsO5wosa6ETRU+qjcj0 00Q1ginezv3palnSy7hgPrlXoUJ0dU08SuJOucjOYpruYDJrkoF+jU+pFc6oY10UeByr jycXFXGiwAHybHitksek6ArkLEDZPJ3xxB9MfVge98Bsm3+S5RDoeSN/XF7swmUIWpkg oU1GsPH7hankDJ1UqeB4tinckw5Kf2KsITxQUJjONrV9UDazB3nzXoKjKCH6JSEf0n00 AdFW1hMEDzqCVpcJbpDqMD+jpf7DAAkgrzCU1m8Dp4OJczUhrtdU1dgpdpVgvOX0TPXK QlNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=g/CueXNWT40wMjJBd4WIk2h9CiItsPOk3nYQrPwdVpk=; b=jaOVfrSDsZqFY2cLl8UHdGAy14j+/WNjPdSmjGWPv+dekRLvZtg5wcyhI7kD0/Cs98 4sW9MkDwf+gDe2vSkyo8KsEjx0vvU12MzyH7Kz9qsZGbSRCFB4WxE5vGiG8rbPejDbm4 02ABLgOa5GMRK8NHje+ksWKbPJtuwSaTSoIrcuM4M019kF1EnnuQGlWPmFjUnV0n9QZS lSNsXwCVhrpNCW4GMUKqKJgJcRH8lklRRe1puZL/B86JUmDhgNC4ex32Tt1Pg4T75afh dWBexdfxhA044Zhmxlfqimi2tACK0CQ00ita9uQqRE2FydlANlfVFfFK+H/e7wMHhq0o Rd/Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 10si6716650pfi.183.2019.03.22.07.35.32; Fri, 22 Mar 2019 07:35:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729183AbfCVOfa (ORCPT + 31 others); Fri, 22 Mar 2019 10:35:30 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:46733 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728332AbfCVOf3 (ORCPT ); Fri, 22 Mar 2019 10:35:29 -0400 Received: from wuerfel.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.129]) with ESMTPA (Nemesis) id 1Mdva2-1gXSTg2JgU-00b3lz; Fri, 22 Mar 2019 15:35:10 +0100 From: Arnd Bergmann To: Coly Li , Kent Overstreet Cc: clang-built-linux@googlegroups.com, Nick Desaulniers , Nathan Chancellor , Arnd Bergmann , Jens Axboe , Shenghui Wang , Hannes Reinecke , linux-bcache@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] bcache: avoid clang -Wunintialized warning Date: Fri, 22 Mar 2019 15:35:00 +0100 Message-Id: <20190322143507.1256436-1-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:QGc/GctXeJV59y1OYuIdUj9uiL6P2qx1feNmYMt8dpTQTNu+k3a A4oJk+zaSs2dKRb4dyyUedkK8pChtVPfa1xr10aOIlVE6rSzxRQJ+ilqwJyQ/o2wZuemRs1 v+E+RH/lew3kXBt1cOp4r908FUSNoMVbVf3u8Zbjp97duzuT3bXfVPbKf8RGJUgrIidnSME qqZMyKS82+UzgaS7Drqdg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:FCS8Mkl7YUc=:km6Y6cIIqK/kGxSFuwuqxk mua3NXz9W0OQvAwCvR5gw1hMa+lTOPAPxA3RScHH4Xp4pyajEj7QdZRZuy42V70ZSHYjkfck6 opEh+TtAfX+/oALb2fRY5Mg2CTDYp/DzzpXaI25V+nKo0QdEJrydJ+QfGyP+8B0DZV0FhxF8s Unp2O1HqAhFDcfOTs7Bjps3PIfGwtEFe69MYXv/A7f8/05eBcKGD7TNjwxtoKQgPHrPyWwGys 8LS6BXDiHzhv/2h9n8N4JKTnkKpOtDiAak71Qi9+DkPZW+TKgFExHKODtHbzclU/tPzS7UjxY BqK7Pq9fxRy//wOzAnhXC7tJkAHgPb2mICU8IeSyaXAYQGOHdzaPDh8WV7QlF9j2LpN0nT1l4 LZGsEPF9wbdxquzlRguRDnVb046Y9QC2+ZjENBOenbBi1UPahz1Ocn0fUQVI6jkCLhhL+AK6Y wcJkd+ZZZFqtBbED63DLf5kh8vIWd+4+wTsQLrs1pWBAPTosq0vxV18/tztm6d6D2Vp+eVyAE PjbVGNN9AoZkoKrzyhHAmi2wttlJPmm32LRFnBF7bsZ3mXAuypT/d2ygJ/3jE976KdtnOjL5n 5/4yhIT77MuLXpQWCqy2nU62U3MGI1JdZU2zM7lxHIoUJU3REz0RDBg23dbL5iqmb4opJAPye TzsELFkvXSr1ggXkpYLp9WZY5lEpdJR4yP9yfyOYtj205ny7O2F6Sd3HxgrrWLZvOoOVcsmWW 8qE0512zgWD9zBgx9kqe20vMIuI+pGXXT+E4qw== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org clang has identified a code path in which it thinks a variable may be unused: drivers/md/bcache/alloc.c:333:4: error: variable 'bucket' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] fifo_pop(&ca->free_inc, bucket); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/md/bcache/util.h:219:27: note: expanded from macro 'fifo_pop' #define fifo_pop(fifo, i) fifo_pop_front(fifo, (i)) ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/md/bcache/util.h:189:6: note: expanded from macro 'fifo_pop_front' if (_r) { \ ^~ drivers/md/bcache/alloc.c:343:46: note: uninitialized use occurs here allocator_wait(ca, bch_allocator_push(ca, bucket)); ^~~~~~ drivers/md/bcache/alloc.c:287:7: note: expanded from macro 'allocator_wait' if (cond) \ ^~~~ drivers/md/bcache/alloc.c:333:4: note: remove the 'if' if its condition is always true fifo_pop(&ca->free_inc, bucket); ^ drivers/md/bcache/util.h:219:27: note: expanded from macro 'fifo_pop' #define fifo_pop(fifo, i) fifo_pop_front(fifo, (i)) ^ drivers/md/bcache/util.h:189:2: note: expanded from macro 'fifo_pop_front' if (_r) { \ ^ drivers/md/bcache/alloc.c:331:15: note: initialize the variable 'bucket' to silence this warning long bucket; ^ This cannot happen in practice because we only enter the loop if there is at least one element in the list. Slightly rearranging the code makes this clearer to both the reader and the compiler, which avoids the warning. Signed-off-by: Arnd Bergmann --- drivers/md/bcache/alloc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -- 2.20.0 Reviewed-by: Nathan Chancellor diff --git a/drivers/md/bcache/alloc.c b/drivers/md/bcache/alloc.c index 5002838ea476..f8986effcb50 100644 --- a/drivers/md/bcache/alloc.c +++ b/drivers/md/bcache/alloc.c @@ -327,10 +327,11 @@ static int bch_allocator_thread(void *arg) * possibly issue discards to them, then we add the bucket to * the free list: */ - while (!fifo_empty(&ca->free_inc)) { + while (1) { long bucket; - fifo_pop(&ca->free_inc, bucket); + if (!fifo_pop(&ca->free_inc, bucket)) + break; if (ca->discard) { mutex_unlock(&ca->set->bucket_lock);