From patchwork Wed Jan 27 15:57:21 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101062 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp2664105lbb; Wed, 27 Jan 2016 07:59:45 -0800 (PST) X-Received: by 10.98.64.215 with SMTP id f84mr43456740pfd.113.1453910383291; Wed, 27 Jan 2016 07:59:43 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id wg9si10183973pab.242.2016.01.27.07.59.42; Wed, 27 Jan 2016 07:59:43 -0800 (PST) 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 S1754833AbcA0P7l (ORCPT + 30 others); Wed, 27 Jan 2016 10:59:41 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:58525 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753248AbcA0P7c (ORCPT ); Wed, 27 Jan 2016 10:59:32 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue102) with ESMTPA (Nemesis) id 0M7Kru-1aCj8l0TUU-00x57P; Wed, 27 Jan 2016 16:59:01 +0100 From: Arnd Bergmann To: "Martin K. Petersen" , James.Bottomley@HansenPartnership.com Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , linux-scsi@vger.kernel.org, "James E.J. Bottomley" , QLogic-Storage-Upstream@qlogic.com, linux-kernel@vger.kernel.org Subject: [PATCH 5/7] scsi: qla4xxx: shut up warning for rd_reg_indirect Date: Wed, 27 Jan 2016 16:57:21 +0100 Message-Id: <1453910247-3447628-6-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1453910247-3447628-1-git-send-email-arnd@arndb.de> References: <1453910247-3447628-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:7jqmaIxu1U87yzN2HeYz+y8f0DhDCQObvh5CO6v1LkArUxAnsLw LjDYHeHHcjQ1p8T67HP6PpHqRXM6ivfwxxH9agI75lARq3RmHuoW6RpE6EmQQ+FI/thH/JI g85ZmqfPWO80kl+pvZVr+Ed3DlDIWd8VRFUsvshizK6HNM1WxiT8sOgxIfQr4CJLiv+j6iT J7vrPnJ0EA5FH3J5664FA== X-UI-Out-Filterresults: notjunk:1; V01:K0:g/vw7tjbVZA=:zF7CzlAseq9uSYfSAYWC62 9bOaVf4SEQaBW3BVhYq/GbvwWlKo8/+AU9U3B70emp2vWr4iSUtlFdbc4hWCx80NM115Ilz4v CgIyOCeqcdSzzXF1oAZQC3xoyCMxzsc3WQy/ZYyN1Af4Y9OEuowuhyp7UuHZPidAN/23CEPMJ hYx+PFRTYsQidYH7/+29ts3agTpK8hzxG1M6BazFD94pj/jnRYF+7qYRITDw9ByaFBmTv/uMy KRJ7RnJgtrf6PIO04v7s/Zu8LvlsxqWRZNJLxweNUVhgE1ki/HelIUlz94pbJbTXTWAccrQEH Qzk90SloyWWG5cZ4Vw8v4CBQQHM0d5yvZCdG3k1+pSXa9vQtmF/f6KlSCqCBav8/VHdNhnNZq H3mqJApFVJXtDs7zOVfKiC7xbKuTOjP3JM0ZzWPozRZaaG0sWvzXSM4wEVBtnlvPUvMGIaE6I DSPtS0Pbou+WtrtBUzWj0GCK/wdBj788AJmbTBuyXL/s8L0yH2F91oQ3O54f1RIpxHjsUxdHv xYg46VYis4XNoXUH2MAJw42+hTugHdzG9VBIXQ37p2jPPPGJUbWGI/CgBYWHoaSuvjX5GDdHz JXEJv2BwSn8IX6DunssQ7tJNyDn1zxw7xqwTPr7IwwB9J0UMRzKm8WuA/PcGphLXPcvwhvipW MXPE1h0w1niYXoc7mlO0VRLgn5O/PIuP4VYhNNSYCXdiOCClEkt/ucFN4sL+rYbONkM0= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The qla4_83xx_rd_reg_indirect() function can fail when it is unable to read a register, but not all callers check its return value before using the register data, and gcc correctly warns about this: qla4xxx/ql4_83xx.c: In function 'qla4_83xx_process_reset_template': qla4xxx/ql4_83xx.c:1073:36: warning: 'value' may be used uninitialized in this function ha->reset_tmplt.array[index++] = value; ^ qla4xxx/ql4_83xx.c:1050:11: note: 'value' was declared here uint32_t value; ^ qla4xxx/ql4_83xx.c:902:8: warning: 'value' may be used uninitialized in this function value &= p_rmw_hdr->test_mask; ^ qla4xxx/ql4_83xx.c:895:11: note: 'value' was declared here uint32_t value; ^ In file included from ../include/linux/io.h:25:0, from ../include/linux/pci.h:31, from ../drivers/scsi/qla4xxx/ql4_def.h:16, from ../drivers/scsi/qla4xxx/ql4_83xx.c:10: asm/io.h:101:2: warning: 'value' may be used uninitialized in this function asm volatile("str %1, %0" ^ qla4xxx/ql4_83xx.c:874:11: note: 'value' was declared here uint32_t value; ^ Unfortunately, I don't see any helpful way to add proper error handling for this case, and the failure scenario for rd_reg seems rather obscure, so this bails out and makes the rd_reg accessor set the result to 0xffffffff so we at least get a predictable value. Signed-off-by: Arnd Bergmann --- drivers/scsi/qla4xxx/ql4_83xx.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -- 2.7.0 Acked-by: Nilesh Javali diff --git a/drivers/scsi/qla4xxx/ql4_83xx.c b/drivers/scsi/qla4xxx/ql4_83xx.c index 5d4f8e67fb25..638f72c5ab05 100644 --- a/drivers/scsi/qla4xxx/ql4_83xx.c +++ b/drivers/scsi/qla4xxx/ql4_83xx.c @@ -46,11 +46,13 @@ int qla4_83xx_rd_reg_indirect(struct scsi_qla_host *ha, uint32_t addr, ret_val = qla4_83xx_set_win_base(ha, addr); - if (ret_val == QLA_SUCCESS) + if (ret_val == QLA_SUCCESS) { *data = qla4_83xx_rd_reg(ha, QLA83XX_WILDCARD); - else + } else { + *data = 0xffffffff; ql4_printk(KERN_ERR, ha, "%s: failed read of addr 0x%x!\n", __func__, addr); + } return ret_val; }