diff mbox series

[kvmtool] arm: Initialize target in kvm_cpu__arch_init

Message ID 20230927112117.3935537-1-smostafa@google.com (mailing list archive)
State New, archived
Headers show
Series [kvmtool] arm: Initialize target in kvm_cpu__arch_init | expand

Commit Message

Mostafa Saleh Sept. 27, 2023, 11:21 a.m. UTC
After updating my toolchain to:
aarch64-linux-gnu-gcc (Debian 13.2.0-2) 13.2.0

I hit compilation error:
arm/kvm-cpu.c: In function ‘kvm_cpu__arch_init’:
arm/kvm-cpu.c:119:41: error: ‘target’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |         vcpu->cpu_compatible    = target->compatible;
      |                                   ~~~~~~^~~~~~~~~~~~
arm/kvm-cpu.c:40:32: note: ‘target’ was declared here
   40 |         struct kvm_arm_target *target;
      |                                ^~~~~~

target is guaranteed to be initialized, as targets would be registered
from other compilation units (arm/aarch(32|64)/arm-cpu.c).

Initializing the variable to NULL is sufficient to silence the compiler.

Signed-off-by: Mostafa Saleh <smostafa@google.com>
---
 arm/kvm-cpu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Zenghui Yu Sept. 27, 2023, 12:21 p.m. UTC | #1
On 2023/9/27 19:21, Mostafa Saleh wrote:
> arm/kvm-cpu.c: In function ‘kvm_cpu__arch_init’:
> arm/kvm-cpu.c:119:41: error: ‘target’ may be used uninitialized [-Werror=maybe-uninitialized]
>   119 |         vcpu->cpu_compatible    = target->compatible;
>       |                                   ~~~~~~^~~~~~~~~~~~
> arm/kvm-cpu.c:40:32: note: ‘target’ was declared here
>    40 |         struct kvm_arm_target *target;
>       |                                ^~~~~~

Already addressed by 426e875213d3 ("arm/kvm-cpu: Fix new build
warning").

Zenghui
Mostafa Saleh Sept. 27, 2023, 12:31 p.m. UTC | #2
Hi Zenghui,

On Wed, Sep 27, 2023 at 08:21:47PM +0800, Zenghui Yu wrote:
> On 2023/9/27 19:21, Mostafa Saleh wrote:
> > arm/kvm-cpu.c: In function ‘kvm_cpu__arch_init’:
> > arm/kvm-cpu.c:119:41: error: ‘target’ may be used uninitialized [-Werror=maybe-uninitialized]
> >   119 |         vcpu->cpu_compatible    = target->compatible;
> >       |                                   ~~~~~~^~~~~~~~~~~~
> > arm/kvm-cpu.c:40:32: note: ‘target’ was declared here
> >    40 |         struct kvm_arm_target *target;
> >       |                                ^~~~~~
> 
> Already addressed by 426e875213d3 ("arm/kvm-cpu: Fix new build
> warning").

Oh, I see that now, I was on the wrong branch, thanks for pointing
this!

> Zenghui

Thanks,
Mostafa
diff mbox series

Patch

diff --git a/arm/kvm-cpu.c b/arm/kvm-cpu.c
index 98bc5fd..57f92ee 100644
--- a/arm/kvm-cpu.c
+++ b/arm/kvm-cpu.c
@@ -37,7 +37,7 @@  int kvm_cpu__register_kvm_arm_target(struct kvm_arm_target *target)
 
 struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm, unsigned long cpu_id)
 {
-	struct kvm_arm_target *target;
+	struct kvm_arm_target *target = NULL;
 	struct kvm_cpu *vcpu;
 	int coalesced_offset, mmap_size, err = -1;
 	unsigned int i;