Re: [kbuild-all] [PATCH v4 13/22] KVM: arm64: ITS: KVM_DEV_ARM_VGIC_GRP_ITS_TABLES group

Ye Xiaolong
2017-03-30T07:29:08Z

On 03/30, Auger Eric wrote:
>Hi Xiaolong
>
>On 30/03/2017 04:21, Ye Xiaolong wrote:
>> Hi, Eric
>>
>> On 03/27, Auger Eric wrote:
>>> Hi,
>>>
>>> On 27/03/2017 17:04, kbuild test robot wrote:
>>>> Hi Eric,
>>>>
>>>> [auto build test ERROR on kvmarm/next]
>>>> [also build test ERROR on v4.11-rc4 next-20170327]
>>>> [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/vITS-save-restore/20170327-195443
>>>> base: https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git next
>>>> config: arm64-defconfig (attached as .config)
>>>> compiler: aarch64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
>>>> reproduce:
>>>> wget https://raw.githubusercontent.com/01org/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=arm64
>>>>
>>>> All errors (new ones prefixed by >>):
>>>>
>>>> arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c: In function 'vgic_its_has_attr':
>>>>>> arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:1766:33: error: 'its' undeclared (first use in this function)
>>>> return vgic_its_table_restore(its);
>>>
>>> I think this is due to the fact the series is applied on KVM: arm/arm64:
>>> Emulate the EL1 phys timer registers (kvmarm-for-4.11).
>>>
>>> Please apply it to (kvmarm/queue, kvmarm/next, kvm_next) KVM: arm/arm64:
>>> vgic: Improve sync_hwstate performance (255905e)
>>> I also checked it compiles on 4.11-rc4.
>>
>> Hmm, we did apply your series on top of kvarm/next, judging from the function
>> code below, I can't see the 'its' declaration.
>>
>> static int vgic_its_has_attr(struct kvm_device *dev,
>> struct kvm_device_attr *attr)
>> {
>> switch (attr->group) {
>> case KVM_DEV_ARM_VGIC_GRP_ADDR:
>> switch (attr->attr) {
>> case KVM_VGIC_ITS_ADDR_TYPE:
>> return 0;
>> }
>> break;
>> case KVM_DEV_ARM_VGIC_GRP_CTRL:
>> switch (attr->attr) {
>> case KVM_DEV_ARM_VGIC_CTRL_INIT:
>> return 0;
>> }
>> break;
>> case KVM_DEV_ARM_VGIC_GRP_ITS_REGS: {
>> u64 __user *uaddr = (u64 __user *)(long)attr->addr;
>> u64 reg;
>>
>> if (get_user(reg, uaddr))
>> return -EFAULT;
>>
>> return vgic_its_attr_regs_access(dev, attr, &reg, true);
>> }
>> case KVM_DEV_ARM_VGIC_GRP_ITS_TABLES:
>> if (attr->attr)
>> return -EINVAL;
>> return vgic_its_table_restore(its);
>The above code shows that my series is not correctly applied since that
>call to vgic_its_table_restore() should normally be in
>vgic_its_set_attr() and not in vgic_its_has_attr() function
>(virt/kvm/arm/vgic-its.c).
>

Er, you are right, the real problem here seems we had a rather old kvmarm/next mirror
at the time 0day applied your series.

Thanks for the clarification and sorry for the noise.

Thanks,
Xiaolong
>I pushed this series applied on top of up to date kvmarm/next at
>https://github.com/eauger/linux/tree/v4.11-rc3-its-mig-v4.
>
>As noticed earlier, the series is applied on top of 255905e (KVM:
>arm/arm64: vgic: Improve sync_hwstate performance)
>
>Thanks
>
>Eric
>
>
>> }
>> return -ENXIO;
>> }
>>
>> Thanks,
>> Xiaolong
>>
>>>
>>> Please let me know if I got something wrong.
>>>
>>> Thanks
>>>
>>> Eric
>>>> ^~~
>>>> arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:1766:33: note: each undeclared identifier is reported only once for each function it appears in
>>>>
>>>> vim +/its +1766 arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c
>>>>
>>>> 1750 case KVM_DEV_ARM_VGIC_CTRL_INIT:
>>>> 1751 return 0;
>>>> 1752 }
>>>> 1753 break;
>>>> 1754 case KVM_DEV_ARM_VGIC_GRP_ITS_REGS: {
>>>> 1755 u64 __user *uaddr = (u64 __user *)(long)attr->addr;
>>>> 1756 u64 reg;
>>>> 1757
>>>> 1758 if (get_user(reg, uaddr))
>>>> 1759 return -EFAULT;
>>>> 1760
>>>> 1761 return vgic_its_attr_regs_access(dev, attr, &reg, true);
>>>> 1762 }
>>>> 1763 case KVM_DEV_ARM_VGIC_GRP_ITS_TABLES:
>>>> 1764 if (attr->attr)
>>>> 1765 return -EINVAL;
>>>>> 1766 return vgic_its_table_restore(its);
>>>> 1767 }
>>>> 1768 return -ENXIO;
>>>> 1769 }
>>>> 1770
>>>> 1771 static int vgic_its_set_attr(struct kvm_device *dev,
>>>> 1772 struct kvm_device_attr *attr)
>>>> 1773 {
>>>> 1774 struct vgic_its *its = dev->private;
>>>>
>>>> ---
>>>> 0-DAY kernel test infrastructure Open Source Technology Center
>>>> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> linux-arm-kernel mailing list
>>>> linux-arm-kernel@lists.infradead.org
>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>>>
>>> _______________________________________________
>>> kbuild-all mailing list
>>> kbuild-all@lists.01.org
>>> https://lists.01.org/mailman/listinfo/kbuild-all
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>