From: Bin Meng <bin.meng@windriver.com>
Current QEMU HEAD nvme.c does not compile:
hw/block/nvme.c: In function ‘nvme_process_sq’:
hw/block/nvme.c:3242:9: error: ‘result’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
trace_pci_nvme_getfeat_vwcache(result ? "enabled" : "disabled");
^
hw/block/nvme.c:3150:14: note: ‘result’ was declared here
uint32_t result;
^
Explicitly initialize the result to fix it.
Fixes: aa5e55e3b07e ("hw/block/nvme: open code for volatile write cache")
Signed-off-by: Bin Meng <bin.meng@windriver.com>
---
hw/block/nvme.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 5ce21b7..c122ac0 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -3228,6 +3228,7 @@ static uint16_t nvme_get_feature(NvmeCtrl *n, NvmeRequest *req)
result = ns->features.err_rec;
goto out;
case NVME_VOLATILE_WRITE_CACHE:
+ result = 0;
for (i = 1; i <= n->num_namespaces; i++) {
ns = nvme_ns(n, i);
if (!ns) {
--
2.7.4
On Wed, Feb 10, 2021 at 5:54 PM Bin Meng <bmeng.cn@gmail.com> wrote: > > From: Bin Meng <bin.meng@windriver.com> > > Current QEMU HEAD nvme.c does not compile: > > hw/block/nvme.c: In function ‘nvme_process_sq’: Not sure why compiler reports this error happens in nvme_process_sq()? But it should be in nvme_get_feature(). I will update the commit message in v2. > hw/block/nvme.c:3242:9: error: ‘result’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > trace_pci_nvme_getfeat_vwcache(result ? "enabled" : "disabled"); > ^ > hw/block/nvme.c:3150:14: note: ‘result’ was declared here > uint32_t result; > ^ > > Explicitly initialize the result to fix it. > > Fixes: aa5e55e3b07e ("hw/block/nvme: open code for volatile write cache") > Signed-off-by: Bin Meng <bin.meng@windriver.com> > --- > > hw/block/nvme.c | 1 + > 1 file changed, 1 insertion(+) > Regards, Bin
On Feb 10 18:15, Bin Meng wrote: > On Wed, Feb 10, 2021 at 5:54 PM Bin Meng <bmeng.cn@gmail.com> wrote: > > > > From: Bin Meng <bin.meng@windriver.com> > > > > Current QEMU HEAD nvme.c does not compile: > > > > hw/block/nvme.c: In function ‘nvme_process_sq’: > > Not sure why compiler reports this error happens in nvme_process_sq()? > Yeah that is kinda wierd. Also, this went through the full CI suite. What compiler is this? > But it should be in nvme_get_feature(). I will update the commit message in v2. > > > hw/block/nvme.c:3242:9: error: ‘result’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > > trace_pci_nvme_getfeat_vwcache(result ? "enabled" : "disabled"); > > ^ > > hw/block/nvme.c:3150:14: note: ‘result’ was declared here > > uint32_t result; > > ^ > > > > Explicitly initialize the result to fix it. > > > > Fixes: aa5e55e3b07e ("hw/block/nvme: open code for volatile write cache") > > Signed-off-by: Bin Meng <bin.meng@windriver.com> > > --- > > > > hw/block/nvme.c | 1 + > > 1 file changed, 1 insertion(+) > > > > Regards, > Bin >
On Wed, Feb 10, 2021 at 6:23 PM Klaus Jensen <its@irrelevant.dk> wrote: > > On Feb 10 18:15, Bin Meng wrote: > > On Wed, Feb 10, 2021 at 5:54 PM Bin Meng <bmeng.cn@gmail.com> wrote: > > > > > > From: Bin Meng <bin.meng@windriver.com> > > > > > > Current QEMU HEAD nvme.c does not compile: > > > > > > hw/block/nvme.c: In function ‘nvme_process_sq’: > > > > Not sure why compiler reports this error happens in nvme_process_sq()? > > > > Yeah that is kinda wierd. Also, this went through the full CI suite. > What compiler is this? > Yes it's quite strange. I am using the default GCC 5.4 on a Ubuntu 16.04 host. Regards, Bin
© 2016 - 2024 Red Hat, Inc.