Re: [PATCH v7 08/13] KVM: arm/arm64: Remove kvm_vgic_vcpu_early_init

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Eric,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on kvmarm/next]
[also build test WARNING on v4.17-rc6 next-20180517]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Eric-Auger/KVM-arm-arm64-Allow-multiple-GICv3-redistributor-regions/20180522-004717
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git next
config: arm-axm55xx_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   arch/arm/kvm/../../../virt/kvm/arm/vgic/vgic-init.c: In function 'kvm_vgic_vcpu_init':
>> arch/arm/kvm/../../../virt/kvm/arm/vgic/vgic-init.c:199:9: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
     int i, ret;
            ^~~

vim +/ret +199 arch/arm/kvm/../../../virt/kvm/arm/vgic/vgic-init.c

   185	
   186	/**
   187	 * kvm_vgic_vcpu_init() - Initialize static VGIC VCPU data
   188	 * structures and register VCPU-specific KVM iodevs
   189	 *
   190	 * @vcpu: pointer to the VCPU being created and initialized
   191	 *
   192	 * Only do initialization, but do not actually enable the
   193	 * VGIC CPU interface
   194	 */
   195	int kvm_vgic_vcpu_init(struct kvm_vcpu *vcpu)
   196	{
   197		struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic_cpu;
   198		struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
 > 199		int i, ret;
   200	
   201		INIT_LIST_HEAD(&vgic_cpu->ap_list_head);
   202		spin_lock_init(&vgic_cpu->ap_list_lock);
   203	
   204		/*
   205		 * Enable and configure all SGIs to be edge-triggered and
   206		 * configure all PPIs as level-triggered.
   207		 */
   208		for (i = 0; i < VGIC_NR_PRIVATE_IRQS; i++) {
   209			struct vgic_irq *irq = &vgic_cpu->private_irqs[i];
   210	
   211			INIT_LIST_HEAD(&irq->ap_list);
   212			spin_lock_init(&irq->irq_lock);
   213			irq->intid = i;
   214			irq->vcpu = NULL;
   215			irq->target_vcpu = vcpu;
   216			irq->targets = 1U << vcpu->vcpu_id;
   217			kref_init(&irq->refcount);
   218			if (vgic_irq_is_sgi(i)) {
   219				/* SGIs */
   220				irq->enabled = 1;
   221				irq->config = VGIC_CONFIG_EDGE;
   222			} else {
   223				/* PPIs */
   224				irq->config = VGIC_CONFIG_LEVEL;
   225			}
   226		}
   227	
   228		if (!irqchip_in_kernel(vcpu->kvm))
   229			return 0;
   230	
   231		/*
   232		 * If we are creating a VCPU with a GICv3 we must also register the
   233		 * KVM io device for the redistributor that belongs to this VCPU.
   234		 */
   235		if (dist->vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) {
   236			mutex_lock(&vcpu->kvm->lock);
   237			ret = vgic_register_redist_iodev(vcpu);
   238			mutex_unlock(&vcpu->kvm->lock);
   239		}
   240		return ret;
   241	}
   242	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux