From patchwork Wed Jun 21 22:10:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 106138 Delivered-To: patch@linaro.org Received: by 10.140.91.2 with SMTP id y2csp2156148qgd; Wed, 21 Jun 2017 15:11:20 -0700 (PDT) X-Received: by 10.84.175.3 with SMTP id s3mr43694860plb.105.1498083080179; Wed, 21 Jun 2017 15:11:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498083080; cv=none; d=google.com; s=arc-20160816; b=mtnEmGZoWPtr25Em69ZR4SgYd83XmhPC3Wy4PBXdndVO+2iJgh4dekJfvCyZFtDpDd H6hB9lg5GT1N41uV3LnABRdYYtpfg8uGFf90SMSicrgGXSn0wCuPbZgnlTV9T85ec7JB O/Oj2tSpJsnpeSubTHAKUmjru+gseCBmQNo2tX1Vzp206VOKhIVB9UmIxnKN2D/hl+cg 3gigB9/91ZD4xgDiDXBMSZpw8SRFgG6Zu/s78Mc1Gsm/vlvR4kwOnPvPMma3aVaYGSNC svExpHnFEObG314gS+xzxtWt3ZIEXHnCZC2saztEVkStYTSSO21xHVzBrLEHj4/MJQWg YUlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=oVkmsqwBFNCc/OO944JgcXf/hWXzTbJKGsUpSMqdWyc=; b=c+W/GqofkIoeKQ42I4hZSPqz3A9oEWEOFoB7Y6OI9/43OCUhD9EWWIkacveA7WCndM RY0j/5p+jZu2xwHQKYvFM3POos4HtDO4ZU5sYlzbx2TNZ4EcONsjdWDQdqRDyeZLnSsY +GBxQB5NCHyfR+JA0roj0OLUExqZaf5rrit/v1AM+znwu2Nn3euMgxML3T9T+79VHJRY Xlaaa74ktjej2YHmaE2FZiyLTo8iTEnh25XMfUBGmqw12ZHSrc5Sqk4twynGXHKqm85q gNfSmft/as9ItTkEgYdmFjJVsnOU6AWaGc9Ea9VpqwZmsr5l9okXYrhsCw1KhzxM4CWc 2Hwg== 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 f131si14095583pgc.386.2017.06.21.15.11.17; Wed, 21 Jun 2017 15:11:20 -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 S1752307AbdFUWLE (ORCPT + 25 others); Wed, 21 Jun 2017 18:11:04 -0400 Received: from mout.kundenserver.de ([217.72.192.74]:49624 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751979AbdFUWLC (ORCPT ); Wed, 21 Jun 2017 18:11:02 -0400 Received: from wuerfel.lan ([5.56.224.194]) by mrelayeu.kundenserver.de (mreue104 [212.227.15.145]) with ESMTPA (Nemesis) id 0MNtut-1dPje71NNr-007QuW; Thu, 22 Jun 2017 00:10:48 +0200 From: Arnd Bergmann To: Hans Verkuil , Mauro Carvalho Chehab Cc: Arnd Bergmann , Colin Ian King , Wei Yongjun , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] [media] rainshadow-cec: avoid -Wmaybe-uninitialized warning again Date: Thu, 22 Jun 2017 00:10:32 +0200 Message-Id: <20170621221047.128705-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:MobarWjIlbtZkZ1PbvUoFZWAywzLsF6CV8altj5RVP1E3FW+v0h JPESlibL2T3zX1od16CksQrCccoJzPt5qCy8qHUlgx2h2ssNOZ7gTt4Rw4QrDLK6MMDMxWA 9iyALhNRoBLrxAxYFS1+ASRiH5pp9Ij+DelMBJat5SavFWV9RnEVVwRVdHS8+Yx3esUuLHz hshkyQF2dzX4kwYai4HGA== X-UI-Out-Filterresults: notjunk:1; V01:K0:BmEY7KdHfq4=:43cMpf/Yt8+QkB+PfzB//E MK/ThpTvOOs8nC28XRgWgJKXat5xl4BfydNe7C4tap0pcmMYH3AJhw1NGA6ILFanik4MhfxEW ySxzRwBP6Wbjo0DjQUSXOAsgToJtDO2z9ipy0dlhFr7cBK0FpRgGHgdQknyuOKsOMkPHZjmPi cm8mAKMST8K3zdX1/RYDd58b4xlocs851hvGaJKdlVl8Tpy1NJ2U2QsahOrggIjYrdeRugkCA 4PirsSPCBJOPB9TogXMCAnErGz+5oukOKdWVd2WrzZBLeawfadMBnQ/5p07jswLkqFZAA5vk0 Diid8dlLFWv4+VNlfTmPUnVrc1CikD3c5huY0I/Vqgv+GIr6r8/3x8L1zgAWulADgCNMNbCre dHzjz25y+zwabSWdzdnnBZydfZxfimsah74b4ukJyq9ihVDREk99V7vZ+EHcYbf+c3XlwqT5d uMeOYg7/MtYaRA/Xln8L4S7/JhSPcD/zw0iL3whD0Kavxhxc0QsuRsIQ810YJBBwa02ZTkFBj +p3R8dV3fpMrkkVJRLXk22LwN13jyS9Cp6QXDfYDRktCDvgf5BZeZCQ7i7h1cxhw0M5oQVx61 BoSTLCXJ4R/KGI2c+Y0IzbYVNlGiOl7RSyJeg+VtiucflxOdN3tgneeG7KQnxnQsAPgho+8kY gt8XhePZ/9w/LQ8Hp5ps+dFMrH9jT3GiYPjPVm7kSGXzm6HlFzEvcFCpgSCc1uSiNpaA= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Back in April I created a patch to address a false-positive warning: drivers/media/usb/rainshadow-cec/rainshadow-cec.c: In function 'rain_irq_work_handler': drivers/media/usb/rainshadow-cec/rainshadow-cec.c:171:31: error: 'data' may be used uninitialized in this function [-Werror=maybe-uninitialized] My patch was totally wrong and introduced a real bug, and Colin Ian King thankfully noticed it now and fixed my mistake. Unfortunately, fixing the actual uninitialized data in this case brought back the original bogus warning. This is a new version of the patch, which simplifies the code to the point where gcc notices the behavior is correct. Fixes: ca33784ba494 ("[media] rainshadow-cec: ensure exit_loop is intialized") Fixes: ea6a69defd3311 ("[media] rainshadow-cec: avoid -Wmaybe-uninitialized warning") Cc: Colin Ian King Signed-off-by: Arnd Bergmann --- drivers/media/usb/rainshadow-cec/rainshadow-cec.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) -- 2.9.0 diff --git a/drivers/media/usb/rainshadow-cec/rainshadow-cec.c b/drivers/media/usb/rainshadow-cec/rainshadow-cec.c index ad468efc4399..7bc28bb92c35 100644 --- a/drivers/media/usb/rainshadow-cec/rainshadow-cec.c +++ b/drivers/media/usb/rainshadow-cec/rainshadow-cec.c @@ -119,21 +119,19 @@ static void rain_irq_work_handler(struct work_struct *work) while (true) { unsigned long flags; - bool exit_loop = false; char data; spin_lock_irqsave(&rain->buf_lock, flags); - if (rain->buf_len) { - data = rain->buf[rain->buf_rd_idx]; - rain->buf_len--; - rain->buf_rd_idx = (rain->buf_rd_idx + 1) & 0xff; - } else { - exit_loop = true; + if (!rain->buf_len) { + spin_unlock_irqrestore(&rain->buf_lock, flags); + break; } - spin_unlock_irqrestore(&rain->buf_lock, flags); - if (exit_loop) - break; + data = rain->buf[rain->buf_rd_idx]; + rain->buf_len--; + rain->buf_rd_idx = (rain->buf_rd_idx + 1) & 0xff; + + spin_unlock_irqrestore(&rain->buf_lock, flags); if (!rain->cmd_started && data != '?') continue;