From patchwork Tue Nov 22 14:32:54 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101470 Delivered-To: patch@linaro.org Received: by 10.140.97.165 with SMTP id m34csp2126507qge; Tue, 22 Nov 2016 06:33:39 -0800 (PST) X-Received: by 10.98.84.68 with SMTP id i65mr26256974pfb.133.1479825219385; Tue, 22 Nov 2016 06:33:39 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p21si22190990pgh.130.2016.11.22.06.33.39; Tue, 22 Nov 2016 06:33:39 -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 S933606AbcKVOdf (ORCPT + 26 others); Tue, 22 Nov 2016 09:33:35 -0500 Received: from mout.kundenserver.de ([217.72.192.74]:49890 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933135AbcKVOdd (ORCPT ); Tue, 22 Nov 2016 09:33:33 -0500 Received: from wuerfel.lan ([78.43.21.235]) by mrelayeu.kundenserver.de (mreue103 [212.227.15.145]) with ESMTPA (Nemesis) id 0MW8Zl-1cG1df43y5-00XO7B; Tue, 22 Nov 2016 15:33:11 +0100 From: Arnd Bergmann To: "Martin K. Petersen" Cc: Hannes Reinecke , Arnd Bergmann , Don Brace , "James E.J. Bottomley" , Kevin Barnett , Scott Teel , Justin Lindley , esc.storagedev@microsemi.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] scsi: hpsa: fix uninitialized variable access Date: Tue, 22 Nov 2016 15:32:54 +0100 Message-Id: <20161122143303.1871678-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:mGRWzFk3imcfcXdIv868ZnSCu7x2OX7F5GHV59hUQMInkQjdo5A L0Pn27WhCmppsXcgOGv7OHWTrd/ZOfjK7hYFVsF8IJy245B795iB4obsBz9ALRpfw8/yZ1V UXy3zSndKt0pCr4oUURFIurMo65V7lxxU4WBzjN3OmiWiWSl2SMEfyPZzK7YO5mLNVS3B7O ppnB7vY7VEDI5b7FRx4pA== X-UI-Out-Filterresults: notjunk:1; V01:K0:76DzSRTzI1A=:vkkG5VnkfVCxwWovhpKCGL 7466ZnK1y2mf2yFaEn10aLSZLkaINs7e7ew+mtkZWYZvI2WX8ubhLa0hnpF0T6v3ccvkCNXfV OkLT/kgUPVWrHCgf2kfdokB8bm89vrLwJCZVcxujPjUMyFdcbdlsx8Vbz3Ja/b9C6ayNP9567 9FxtME4tAEn1w9HccJ5yMPuk4CWvNRAGyL3pFYN4OQUA2dvnubptps97bqmguKAjZTFF0lwi9 aVLdnljbBH7LmXeAYivTu8EtlvY/sJkNDcr/QS42+4bLxMC4bilDjA7kk4hHkli1ZbYA/FVoX GQQ9u+9Xk8BYYjQSEyIf/VrHuTbIEqPesWQhuc9ocW6+z2glAvagaB++siWTTj0irkpr9hwq0 FFP+6XRvsiVo3+Sbc0yMqv2jGRyJqD0qTxSfvARBD8JQOhguZAlHYzU0OXqC5N0xEuKOYv0oH ScYM8wxAhxr+BCTFBrEToufeJN1EV8c3x7Ry1Wv/EktzyjgzuBEVE+/Y6Ord8qPFbKRr445dq d2xlSiJPUp7TWQIoYhvR8wLDZTrY5hxXJQreOsX/LP+XzA34piwvz8ObIoOSHU5t5/vzBhWSq 9qsbegvKo7J0VcHp5aXIzSCka5i5NFOUFgueOyzsnwcFAtcBQDOrruRnLYWJ0T6/jmAtVcYkS capi3lu/gPqFEnyPftBKNQs5woVgJdZiYka6+oFiiIEEawc3gVRcnllG5TyR+2p9eFEs= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A bugfix has left the 'sd' variable uninitialized: drivers/scsi/hpsa.c: In function 'hpsa_slave_alloc': drivers/scsi/hpsa.c:2033:5: error: 'sd' may be used uninitialized in this function [-Werror=maybe-uninitialized] This reverts back to calling lookup_hpsa_scsi_dev() for the HPSA_PHYSICAL_DEVICE_BUS case, but also keeps doing that when hpsa_find_device_by_sas_rphy() returns NULL, as is currently done. The patch that caused this is marked for stable backports, so this one has to be backported on top as well. Fixes: 4eb307f7b18d ("scsi: hpsa: use bus '3' for legacy HBA devices") Signed-off-by: Arnd Bergmann --- I did not try hard to figure out what the correct behavior should be, so please treat this as a bugreport that might contain the right fix. --- drivers/scsi/hpsa.c | 3 +++ 1 file changed, 3 insertions(+) -- 2.9.0 diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index ea64c01f3d42..d17ee63045c3 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c @@ -2029,7 +2029,10 @@ static int hpsa_slave_alloc(struct scsi_device *sdev) sd->target = sdev_id(sdev); sd->lun = sdev->lun; } + } else { + sd = NULL; } + if (!sd) sd = lookup_hpsa_scsi_dev(h, sdev_channel(sdev), sdev_id(sdev), sdev->lun);