From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754832AbcA0P7l (ORCPT ); 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 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 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(-) 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; } -- 2.7.0