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

Auger Eric eric.auger at redhat.com
Thu Mar 30 01:29:45 PDT 2017


Hi Xiaolong,

On 30/03/2017 09:29, Ye Xiaolong wrote:
> 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.

no worries

Thanks

Eric
> 
> 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 at lists.infradead.org
>>>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>>>>
>>>> _______________________________________________
>>>> kbuild-all mailing list
>>>> kbuild-all at lists.01.org
>>>> https://lists.01.org/mailman/listinfo/kbuild-all
>>>
>>> _______________________________________________
>>> linux-arm-kernel mailing list
>>> linux-arm-kernel at lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>>



More information about the linux-arm-kernel mailing list