Re: [PATCH] ahci: qoriq: fixed using uninitialized variable warnings
From: Tejun Heo <tj@kernel.org>
Date: 2015-09-09 14:01:44
Also in:
linux-ide, lkml
From: Tejun Heo <tj@kernel.org>
Date: 2015-09-09 14:01:44
Also in:
linux-ide, lkml
On Wed, Sep 09, 2015 at 05:16:22PM +0800, Yuantian.Tang@freescale.com wrote:
From: Tang Yuantian <redacted> kbuild test robot reports the warnings: drivers/ata/ahci_qoriq.c: In function 'ahci_qoriq_hardreset':quoted
quoted
include/asm-generic/io.h:163:2: warning: 'px_is' may be used uninitialized in this function [-Wuninitialized]drivers/ata/ahci_qoriq.c:70:14: note: 'px_is' was declared herequoted
quoted
include/asm-generic/io.h:163:2: warning: 'px_cmd' may be used uninitialized in this function [-Wuninitialized]drivers/ata/ahci_qoriq.c:70:6: note: 'px_cmd' was declared here This patch fixed it by assigning 0 to px_is and px_cmd variables. This patch also remove line 'struct ccsr_ahci *reg_base' which is not referred by any other codes and thus a dead one.
Hmm... I think the problem here is that the complier can't know whether qoriq_priv->type would change across intervening function calls. Maybe a better solution is caching the type in a local variable so that the compiler can tell that those two tests will always move together? It generally isn't a good idea to clear variables unnecessarily as that can hide actual bugs that compiler can detect. Thanks. -- tejun