From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nathan Chancellor Subject: [PATCH] scsi: hpsa: Avoid using dev uninitialized in hpsa_eh_device_reset_handler Date: Wed, 22 May 2019 18:38:59 -0700 Message-ID: <20190523013859.14778-1-natechancellor@gmail.com> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Return-path: Sender: linux-kernel-owner@vger.kernel.org To: Don Brace Cc: "James E.J. Bottomley" , "Martin K. Petersen" , esc.storagedev@microsemi.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Nick Desaulniers , clang-built-linux@googlegroups.com, Nathan Chancellor List-Id: linux-scsi@vger.kernel.org Clang warns: drivers/scsi/hpsa.c:5964:6: warning: variable 'dev' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] if (lockup_detected(h)) { ^~~~~~~~~~~~~~~~~~ drivers/scsi/hpsa.c:6042:6: note: uninitialized use occurs here if (dev) ^~~ drivers/scsi/hpsa.c:5964:2: note: remove the 'if' if its condition is always false if (lockup_detected(h)) { ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/scsi/hpsa.c:5950:29: note: initialize the variable 'dev' to silence this warning struct hpsa_scsi_dev_t *dev; ^ = NULL 1 warning generated. dev is potentially used uninitialized in the return_reset_status block for a NULL check if the first 'if (lockup_detected(h))' is taken, as dev is initialized right after that block. Initialize dev to NULL in its declaration so that it can be safely checked within the return_reset_status block. Fixes: 14991a5bade5 ("scsi: hpsa: correct device resets") Link: https://github.com/ClangBuiltLinux/linux/issues/492 Signed-off-by: Nathan Chancellor --- drivers/scsi/hpsa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index c560a4532733..ac8338b0571b 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c @@ -5947,7 +5947,7 @@ static int hpsa_eh_device_reset_handler(struct scsi_cmnd *scsicmd) int rc = SUCCESS; int i; struct ctlr_info *h; - struct hpsa_scsi_dev_t *dev; + struct hpsa_scsi_dev_t *dev = NULL; u8 reset_type; char msg[48]; unsigned long flags; -- 2.22.0.rc1