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 - 2026 Red Hat, Inc.