Some of the cross compilers rightly complain there are cases where ret
may not be set. 0 seems to be the reasonable default unless particular
slot explicitly returns -1.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
accel/kvm/kvm-all.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index aabe097c41..d2d96d73e8 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -712,11 +712,11 @@ static int kvm_physical_log_clear(KVMMemoryListener *kml,
KVMState *s = kvm_state;
uint64_t start, size, offset, count;
KVMSlot *mem;
- int ret, i;
+ int ret = 0, i;
if (!s->manual_dirty_log_protect) {
/* No need to do explicit clear */
- return 0;
+ return ret;
}
start = section->offset_within_address_space;
@@ -724,7 +724,7 @@ static int kvm_physical_log_clear(KVMMemoryListener *kml,
if (!size) {
/* Nothing more we can do... */
- return 0;
+ return ret;
}
kvm_slots_lock(kml);
--
2.20.1
On 02/10/19 12:22, Alex Bennée wrote: > Some of the cross compilers rightly complain there are cases where ret > may not be set. 0 seems to be the reasonable default unless particular > slot explicitly returns -1. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > accel/kvm/kvm-all.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c > index aabe097c41..d2d96d73e8 100644 > --- a/accel/kvm/kvm-all.c > +++ b/accel/kvm/kvm-all.c > @@ -712,11 +712,11 @@ static int kvm_physical_log_clear(KVMMemoryListener *kml, > KVMState *s = kvm_state; > uint64_t start, size, offset, count; > KVMSlot *mem; > - int ret, i; > + int ret = 0, i; > > if (!s->manual_dirty_log_protect) { > /* No need to do explicit clear */ > - return 0; > + return ret; > } > > start = section->offset_within_address_space; > @@ -724,7 +724,7 @@ static int kvm_physical_log_clear(KVMMemoryListener *kml, > > if (!size) { > /* Nothing more we can do... */ > - return 0; > + return ret; > } > > kvm_slots_lock(kml); > Queued, thanks. Paolo
On Wed, Oct 02, 2019 at 01:08:40PM +0200, Paolo Bonzini wrote: > On 02/10/19 12:22, Alex Bennée wrote: > > Some of the cross compilers rightly complain there are cases where ret > > may not be set. 0 seems to be the reasonable default unless particular > > slot explicitly returns -1. > > Even Coverity reported it (CID 1405857). > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > > --- > > accel/kvm/kvm-all.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c > > index aabe097c41..d2d96d73e8 100644 > > --- a/accel/kvm/kvm-all.c > > +++ b/accel/kvm/kvm-all.c > > @@ -712,11 +712,11 @@ static int kvm_physical_log_clear(KVMMemoryListener *kml, > > KVMState *s = kvm_state; > > uint64_t start, size, offset, count; > > KVMSlot *mem; > > - int ret, i; > > + int ret = 0, i; > > > > if (!s->manual_dirty_log_protect) { > > /* No need to do explicit clear */ > > - return 0; > > + return ret; > > } > > > > start = section->offset_within_address_space; > > @@ -724,7 +724,7 @@ static int kvm_physical_log_clear(KVMMemoryListener *kml, > > > > if (!size) { > > /* Nothing more we can do... */ > > - return 0; > > + return ret; > > } > > > > kvm_slots_lock(kml); > > > > Queued, thanks. > > Paolo > --
On 10/3/19 11:22 AM, Stefano Garzarella wrote: > On Wed, Oct 02, 2019 at 01:08:40PM +0200, Paolo Bonzini wrote: >> On 02/10/19 12:22, Alex Bennée wrote: >>> Some of the cross compilers rightly complain there are cases where ret >>> may not be set. 0 seems to be the reasonable default unless particular >>> slot explicitly returns -1. >>> > > Even Coverity reported it (CID 1405857). And GCC ;) /home/phil/source/qemu/accel/kvm/kvm-all.c: In function ‘kvm_log_clear’: /home/phil/source/qemu/accel/kvm/kvm-all.c:1121:8: error: ‘ret’ may be used uninitialized in this function [-Werror=maybe-uninitialized] if (r < 0) { ^ cc1: all warnings being treated as errors make[1]: *** [/home/phil/source/qemu/rules.mak:69: accel/kvm/kvm-all.o] Error 1 Fixes: 4222147dfb7 >>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >>> --- >>> accel/kvm/kvm-all.c | 6 +++--- >>> 1 file changed, 3 insertions(+), 3 deletions(-) >>> >>> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c >>> index aabe097c41..d2d96d73e8 100644 >>> --- a/accel/kvm/kvm-all.c >>> +++ b/accel/kvm/kvm-all.c >>> @@ -712,11 +712,11 @@ static int kvm_physical_log_clear(KVMMemoryListener *kml, >>> KVMState *s = kvm_state; >>> uint64_t start, size, offset, count; >>> KVMSlot *mem; >>> - int ret, i; >>> + int ret = 0, i; >>> >>> if (!s->manual_dirty_log_protect) { >>> /* No need to do explicit clear */ >>> - return 0; >>> + return ret; >>> } >>> >>> start = section->offset_within_address_space; >>> @@ -724,7 +724,7 @@ static int kvm_physical_log_clear(KVMMemoryListener *kml, >>> >>> if (!size) { >>> /* Nothing more we can do... */ >>> - return 0; >>> + return ret; >>> } >>> >>> kvm_slots_lock(kml); >>> >> >> Queued, thanks. >> >> Paolo >> >
Philippe Mathieu-Daudé <philmd@redhat.com> writes: > On 10/3/19 11:22 AM, Stefano Garzarella wrote: >> On Wed, Oct 02, 2019 at 01:08:40PM +0200, Paolo Bonzini wrote: >>> On 02/10/19 12:22, Alex Bennée wrote: >>>> Some of the cross compilers rightly complain there are cases where ret >>>> may not be set. 0 seems to be the reasonable default unless particular >>>> slot explicitly returns -1. >>>> >> Even Coverity reported it (CID 1405857). > > And GCC ;) So my normal gcc didn't catch that - which is odd as I didn't expect the shippable gcc's to be ahead of my local buster install. > > /home/phil/source/qemu/accel/kvm/kvm-all.c: In function ‘kvm_log_clear’: > /home/phil/source/qemu/accel/kvm/kvm-all.c:1121:8: error: ‘ret’ may be > used uninitialized in this function [-Werror=maybe-uninitialized] > if (r < 0) { > ^ > cc1: all warnings being treated as errors > make[1]: *** [/home/phil/source/qemu/rules.mak:69: > accel/kvm/kvm-all.o] Error 1 > > Fixes: 4222147dfb7 > >>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >>>> --- >>>> accel/kvm/kvm-all.c | 6 +++--- >>>> 1 file changed, 3 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c >>>> index aabe097c41..d2d96d73e8 100644 >>>> --- a/accel/kvm/kvm-all.c >>>> +++ b/accel/kvm/kvm-all.c >>>> @@ -712,11 +712,11 @@ static int kvm_physical_log_clear(KVMMemoryListener *kml, >>>> KVMState *s = kvm_state; >>>> uint64_t start, size, offset, count; >>>> KVMSlot *mem; >>>> - int ret, i; >>>> + int ret = 0, i; >>>> if (!s->manual_dirty_log_protect) { >>>> /* No need to do explicit clear */ >>>> - return 0; >>>> + return ret; >>>> } >>>> start = section->offset_within_address_space; >>>> @@ -724,7 +724,7 @@ static int kvm_physical_log_clear(KVMMemoryListener *kml, >>>> if (!size) { >>>> /* Nothing more we can do... */ >>>> - return 0; >>>> + return ret; >>>> } >>>> kvm_slots_lock(kml); >>>> >>> >>> Queued, thanks. >>> >>> Paolo >>> >> -- Alex Bennée
© 2016 - 2024 Red Hat, Inc.