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, ®, 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). 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, ®, 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@xxxxxxxxxxxxxxxxxxx >>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >>> >> _______________________________________________ >> kbuild-all mailing list >> kbuild-all@xxxxxxxxxxxx >> https://lists.01.org/mailman/listinfo/kbuild-all > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >