Hi Alexander, [auto build test ERROR on kvm/linux-next] [also build test ERROR on v4.8-rc6 next-20160916] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] [Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information] url: https://github.com/0day-ci/linux/commits/Alexander-Graf/KVM-arm-arm64-Route-vtimer-events-to-user-space/20160916-073838 base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next config: arm64-allmodconfig (attached as .config) compiler: aarch64-linux-gnu-gcc (Debian 5.4.0-6) 5.4.0 20160609 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/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 error/warnings (new ones prefixed by >>): arch/arm64/kvm/../../../arch/arm/kvm/arm.c: In function 'kvm_arch_vcpu_ioctl': >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1000:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, struct kvm_dirty_log *log) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1016:12: error: invalid storage class for function 'kvm_vm_ioctl_set_device_addr' static int kvm_vm_ioctl_set_device_addr(struct kvm *kvm, ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1077:13: error: invalid storage class for function 'cpu_init_hyp_mode' static void cpu_init_hyp_mode(void *dummy) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1098:13: error: invalid storage class for function 'cpu_hyp_reinit' static void cpu_hyp_reinit(void) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1112:13: error: invalid storage class for function 'cpu_hyp_reset' static void cpu_hyp_reset(void) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1119:13: error: invalid storage class for function '_kvm_arch_hardware_enable' static void _kvm_arch_hardware_enable(void *discard) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1133:13: error: invalid storage class for function '_kvm_arch_hardware_disable' static void _kvm_arch_hardware_disable(void *discard) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1147:12: error: invalid storage class for function 'hyp_init_cpu_pm_notifier' static int hyp_init_cpu_pm_notifier(struct notifier_block *self, ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1180:19: error: initializer element is not constant .notifier_call = hyp_init_cpu_pm_notifier, ^ arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1180:19: note: (near initialization for 'hyp_init_cpu_pm_nb.notifier_call') >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1183:20: error: invalid storage class for function 'hyp_cpu_pm_init' static void __init hyp_cpu_pm_init(void) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1187:20: error: invalid storage class for function 'hyp_cpu_pm_exit' static void __init hyp_cpu_pm_exit(void) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1200:13: error: invalid storage class for function 'teardown_common_resources' static void teardown_common_resources(void) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1205:12: error: invalid storage class for function 'init_common_resources' static int init_common_resources(void) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1216:12: error: invalid storage class for function 'init_subsystems' static int init_subsystems(void) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1263:13: error: invalid storage class for function 'teardown_hyp_mode' static void teardown_hyp_mode(void) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1276:12: error: invalid storage class for function 'init_vhe_mode' static int init_vhe_mode(void) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1289:12: error: invalid storage class for function 'init_hyp_mode' static int init_hyp_mode(void) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1379:13: error: invalid storage class for function 'check_kvm_target_cpu' static void check_kvm_target_cpu(void *ret) ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1448:12: error: invalid storage class for function 'arm_init' static int arm_init(void) ^ In file included from include/linux/printk.h:5:0, from include/linux/kernel.h:13, from include/linux/cpu_pm.h:21, from arch/arm64/kvm/../../../arch/arm/kvm/arm.c:19: arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1454:13: error: initializer element is not constant module_init(arm_init); ^ include/linux/init.h:182:58: note: in definition of macro '__define_initcall' __attribute__((__section__(".initcall" #id ".init"))) = fn; \ ^ include/linux/init.h:217:24: note: in expansion of macro 'device_initcall' #define __initcall(fn) device_initcall(fn) ^ include/linux/module.h:86:24: note: in expansion of macro '__initcall' #define module_init(x) __initcall(x); ^ >> arch/arm64/kvm/../../../arch/arm/kvm/arm.c:1454:1: note: in expansion of macro 'module_init' module_init(arm_init); ^ vim +/kvm_vm_ioctl_set_device_addr +1016 arch/arm64/kvm/../../../arch/arm/kvm/arm.c 53c810c36 Mario Smarduch 2015-01-15 994 * 53c810c36 Mario Smarduch 2015-01-15 995 * 1. Take a snapshot of the bit and clear it if needed. 53c810c36 Mario Smarduch 2015-01-15 996 * 2. Write protect the corresponding page. 53c810c36 Mario Smarduch 2015-01-15 997 * 3. Copy the snapshot to the userspace. 53c810c36 Mario Smarduch 2015-01-15 998 * 4. Flush TLB's if needed. 53c810c36 Mario Smarduch 2015-01-15 999 */ 749cf76c5 Christoffer Dall 2013-01-20 @1000 int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, struct kvm_dirty_log *log) 749cf76c5 Christoffer Dall 2013-01-20 1001 { 53c810c36 Mario Smarduch 2015-01-15 1002 bool is_dirty = false; 53c810c36 Mario Smarduch 2015-01-15 1003 int r; 53c810c36 Mario Smarduch 2015-01-15 1004 53c810c36 Mario Smarduch 2015-01-15 1005 mutex_lock(&kvm->slots_lock); 53c810c36 Mario Smarduch 2015-01-15 1006 53c810c36 Mario Smarduch 2015-01-15 1007 r = kvm_get_dirty_log_protect(kvm, log, &is_dirty); 53c810c36 Mario Smarduch 2015-01-15 1008 53c810c36 Mario Smarduch 2015-01-15 1009 if (is_dirty) 53c810c36 Mario Smarduch 2015-01-15 1010 kvm_flush_remote_tlbs(kvm); 53c810c36 Mario Smarduch 2015-01-15 1011 53c810c36 Mario Smarduch 2015-01-15 1012 mutex_unlock(&kvm->slots_lock); 53c810c36 Mario Smarduch 2015-01-15 1013 return r; 749cf76c5 Christoffer Dall 2013-01-20 1014 } 749cf76c5 Christoffer Dall 2013-01-20 1015 3401d5469 Christoffer Dall 2013-01-23 @1016 static int kvm_vm_ioctl_set_device_addr(struct kvm *kvm, 3401d5469 Christoffer Dall 2013-01-23 1017 struct kvm_arm_device_addr *dev_addr) 3401d5469 Christoffer Dall 2013-01-23 1018 { 330690cdc Christoffer Dall 2013-01-21 1019 unsigned long dev_id, type; 330690cdc Christoffer Dall 2013-01-21 1020 330690cdc Christoffer Dall 2013-01-21 1021 dev_id = (dev_addr->id & KVM_ARM_DEVICE_ID_MASK) >> 330690cdc Christoffer Dall 2013-01-21 1022 KVM_ARM_DEVICE_ID_SHIFT; 330690cdc Christoffer Dall 2013-01-21 1023 type = (dev_addr->id & KVM_ARM_DEVICE_TYPE_MASK) >> 330690cdc Christoffer Dall 2013-01-21 1024 KVM_ARM_DEVICE_TYPE_SHIFT; 330690cdc Christoffer Dall 2013-01-21 1025 330690cdc Christoffer Dall 2013-01-21 1026 switch (dev_id) { 330690cdc Christoffer Dall 2013-01-21 1027 case KVM_ARM_DEVICE_VGIC_V2: c7da6fa43 Pavel Fedin 2015-12-18 1028 if (!vgic_present) c7da6fa43 Pavel Fedin 2015-12-18 1029 return -ENXIO; ce01e4e88 Christoffer Dall 2013-09-23 1030 return kvm_vgic_addr(kvm, type, &dev_addr->addr, true); 330690cdc Christoffer Dall 2013-01-21 1031 default: 3401d5469 Christoffer Dall 2013-01-23 1032 return -ENODEV; 3401d5469 Christoffer Dall 2013-01-23 1033 } 330690cdc Christoffer Dall 2013-01-21 1034 } 3401d5469 Christoffer Dall 2013-01-23 1035 749cf76c5 Christoffer Dall 2013-01-20 1036 long kvm_arch_vm_ioctl(struct file *filp, 749cf76c5 Christoffer Dall 2013-01-20 1037 unsigned int ioctl, unsigned long arg) 749cf76c5 Christoffer Dall 2013-01-20 1038 { 3401d5469 Christoffer Dall 2013-01-23 1039 struct kvm *kvm = filp->private_data; 3401d5469 Christoffer Dall 2013-01-23 1040 void __user *argp = (void __user *)arg; 3401d5469 Christoffer Dall 2013-01-23 1041 3401d5469 Christoffer Dall 2013-01-23 1042 switch (ioctl) { 5863c2ce7 Marc Zyngier 2013-01-21 1043 case KVM_CREATE_IRQCHIP: { a28ebea2a Christoffer Dall 2016-08-09 1044 int ret; c7da6fa43 Pavel Fedin 2015-12-18 1045 if (!vgic_present) c7da6fa43 Pavel Fedin 2015-12-18 1046 return -ENXIO; a28ebea2a Christoffer Dall 2016-08-09 1047 mutex_lock(&kvm->lock); a28ebea2a Christoffer Dall 2016-08-09 1048 ret = kvm_vgic_create(kvm, KVM_DEV_TYPE_ARM_VGIC_V2); a28ebea2a Christoffer Dall 2016-08-09 1049 mutex_unlock(&kvm->lock); a28ebea2a Christoffer Dall 2016-08-09 1050 return ret; 5863c2ce7 Marc Zyngier 2013-01-21 1051 } 3401d5469 Christoffer Dall 2013-01-23 1052 case KVM_ARM_SET_DEVICE_ADDR: { 3401d5469 Christoffer Dall 2013-01-23 1053 struct kvm_arm_device_addr dev_addr; 3401d5469 Christoffer Dall 2013-01-23 1054 3401d5469 Christoffer Dall 2013-01-23 1055 if (copy_from_user(&dev_addr, argp, sizeof(dev_addr))) 3401d5469 Christoffer Dall 2013-01-23 1056 return -EFAULT; 3401d5469 Christoffer Dall 2013-01-23 1057 return kvm_vm_ioctl_set_device_addr(kvm, &dev_addr); 3401d5469 Christoffer Dall 2013-01-23 1058 } 42c4e0c77 Anup Patel 2013-09-30 1059 case KVM_ARM_PREFERRED_TARGET: { 42c4e0c77 Anup Patel 2013-09-30 1060 int err; 42c4e0c77 Anup Patel 2013-09-30 1061 struct kvm_vcpu_init init; 42c4e0c77 Anup Patel 2013-09-30 1062 42c4e0c77 Anup Patel 2013-09-30 1063 err = kvm_vcpu_preferred_target(&init); 42c4e0c77 Anup Patel 2013-09-30 1064 if (err) 42c4e0c77 Anup Patel 2013-09-30 1065 return err; 42c4e0c77 Anup Patel 2013-09-30 1066 42c4e0c77 Anup Patel 2013-09-30 1067 if (copy_to_user(argp, &init, sizeof(init))) 42c4e0c77 Anup Patel 2013-09-30 1068 return -EFAULT; 42c4e0c77 Anup Patel 2013-09-30 1069 42c4e0c77 Anup Patel 2013-09-30 1070 return 0; 42c4e0c77 Anup Patel 2013-09-30 1071 } 3401d5469 Christoffer Dall 2013-01-23 1072 default: 749cf76c5 Christoffer Dall 2013-01-20 1073 return -EINVAL; 749cf76c5 Christoffer Dall 2013-01-20 1074 } 3401d5469 Christoffer Dall 2013-01-23 1075 } 749cf76c5 Christoffer Dall 2013-01-20 1076 d157f4a51 Marc Zyngier 2013-04-12 @1077 static void cpu_init_hyp_mode(void *dummy) 342cd0ab0 Christoffer Dall 2013-01-20 1078 { dac288f7b Marc Zyngier 2013-05-14 1079 phys_addr_t pgd_ptr; 342cd0ab0 Christoffer Dall 2013-01-20 1080 unsigned long hyp_stack_ptr; 342cd0ab0 Christoffer Dall 2013-01-20 1081 unsigned long stack_page; 342cd0ab0 Christoffer Dall 2013-01-20 1082 unsigned long vector_ptr; 342cd0ab0 Christoffer Dall 2013-01-20 1083 342cd0ab0 Christoffer Dall 2013-01-20 1084 /* Switch from the HYP stub to our own HYP init vector */ 5a677ce04 Marc Zyngier 2013-04-12 1085 __hyp_set_vectors(kvm_get_idmap_vector()); 342cd0ab0 Christoffer Dall 2013-01-20 1086 dac288f7b Marc Zyngier 2013-05-14 1087 pgd_ptr = kvm_mmu_get_httbr(); 1436c1aa6 Christoph Lameter 2013-10-21 1088 stack_page = __this_cpu_read(kvm_arm_hyp_stack_page); 342cd0ab0 Christoffer Dall 2013-01-20 1089 hyp_stack_ptr = stack_page + PAGE_SIZE; a0bf9776c Ard Biesheuvel 2016-02-16 1090 vector_ptr = (unsigned long)kvm_ksym_ref(__kvm_hyp_vector); 342cd0ab0 Christoffer Dall 2013-01-20 1091 12fda8123 Marc Zyngier 2016-06-30 1092 __cpu_init_hyp_mode(pgd_ptr, hyp_stack_ptr, vector_ptr); 35a2491a6 Marc Zyngier 2016-02-01 1093 __cpu_init_stage2(); 56c7f5e77 Alex Bennée 2015-07-07 1094 56c7f5e77 Alex Bennée 2015-07-07 1095 kvm_arm_init_debug(); 342cd0ab0 Christoffer Dall 2013-01-20 1096 } 342cd0ab0 Christoffer Dall 2013-01-20 1097 5f5560b1c James Morse 2016-03-30 @1098 static void cpu_hyp_reinit(void) 5f5560b1c James Morse 2016-03-30 1099 { 5f5560b1c James Morse 2016-03-30 1100 if (is_kernel_in_hyp_mode()) { 5f5560b1c James Morse 2016-03-30 1101 /* 67f691976 AKASHI Takahiro 2016-04-27 1102 * __cpu_init_stage2() is safe to call even if the PM 5f5560b1c James Morse 2016-03-30 1103 * event was cancelled before the CPU was reset. 5f5560b1c James Morse 2016-03-30 1104 */ 67f691976 AKASHI Takahiro 2016-04-27 1105 __cpu_init_stage2(); 5f5560b1c James Morse 2016-03-30 1106 } else { 5f5560b1c James Morse 2016-03-30 1107 if (__hyp_get_vectors() == hyp_default_vectors) 5f5560b1c James Morse 2016-03-30 1108 cpu_init_hyp_mode(NULL); 5f5560b1c James Morse 2016-03-30 1109 } 5f5560b1c James Morse 2016-03-30 1110 } 5f5560b1c James Morse 2016-03-30 1111 67f691976 AKASHI Takahiro 2016-04-27 @1112 static void cpu_hyp_reset(void) 67f691976 AKASHI Takahiro 2016-04-27 1113 { 12fda8123 Marc Zyngier 2016-06-30 1114 if (!is_kernel_in_hyp_mode()) e537ecd7e Marc Zyngier 2016-06-30 1115 __cpu_reset_hyp_mode(hyp_default_vectors, e537ecd7e Marc Zyngier 2016-06-30 1116 kvm_get_idmap_start()); 67f691976 AKASHI Takahiro 2016-04-27 1117 } 67f691976 AKASHI Takahiro 2016-04-27 1118 67f691976 AKASHI Takahiro 2016-04-27 @1119 static void _kvm_arch_hardware_enable(void *discard) d157f4a51 Marc Zyngier 2013-04-12 1120 { 67f691976 AKASHI Takahiro 2016-04-27 1121 if (!__this_cpu_read(kvm_arm_hardware_enabled)) { 5f5560b1c James Morse 2016-03-30 1122 cpu_hyp_reinit(); 67f691976 AKASHI Takahiro 2016-04-27 1123 __this_cpu_write(kvm_arm_hardware_enabled, 1); 67f691976 AKASHI Takahiro 2016-04-27 1124 } d157f4a51 Marc Zyngier 2013-04-12 1125 } d157f4a51 Marc Zyngier 2013-04-12 1126 67f691976 AKASHI Takahiro 2016-04-27 1127 int kvm_arch_hardware_enable(void) 67f691976 AKASHI Takahiro 2016-04-27 1128 { 67f691976 AKASHI Takahiro 2016-04-27 1129 _kvm_arch_hardware_enable(NULL); 67f691976 AKASHI Takahiro 2016-04-27 1130 return 0; 342cd0ab0 Christoffer Dall 2013-01-20 1131 } 342cd0ab0 Christoffer Dall 2013-01-20 1132 67f691976 AKASHI Takahiro 2016-04-27 @1133 static void _kvm_arch_hardware_disable(void *discard) 67f691976 AKASHI Takahiro 2016-04-27 1134 { 67f691976 AKASHI Takahiro 2016-04-27 1135 if (__this_cpu_read(kvm_arm_hardware_enabled)) { 67f691976 AKASHI Takahiro 2016-04-27 1136 cpu_hyp_reset(); 67f691976 AKASHI Takahiro 2016-04-27 1137 __this_cpu_write(kvm_arm_hardware_enabled, 0); 67f691976 AKASHI Takahiro 2016-04-27 1138 } 67f691976 AKASHI Takahiro 2016-04-27 1139 } 67f691976 AKASHI Takahiro 2016-04-27 1140 67f691976 AKASHI Takahiro 2016-04-27 1141 void kvm_arch_hardware_disable(void) 67f691976 AKASHI Takahiro 2016-04-27 1142 { 67f691976 AKASHI Takahiro 2016-04-27 1143 _kvm_arch_hardware_disable(NULL); 67f691976 AKASHI Takahiro 2016-04-27 1144 } d157f4a51 Marc Zyngier 2013-04-12 1145 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1146 #ifdef CONFIG_CPU_PM 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 @1147 static int hyp_init_cpu_pm_notifier(struct notifier_block *self, 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1148 unsigned long cmd, 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1149 void *v) 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1150 { 67f691976 AKASHI Takahiro 2016-04-27 1151 /* 67f691976 AKASHI Takahiro 2016-04-27 1152 * kvm_arm_hardware_enabled is left with its old value over 67f691976 AKASHI Takahiro 2016-04-27 1153 * PM_ENTER->PM_EXIT. It is used to indicate PM_EXIT should 67f691976 AKASHI Takahiro 2016-04-27 1154 * re-enable hyp. 67f691976 AKASHI Takahiro 2016-04-27 1155 */ 67f691976 AKASHI Takahiro 2016-04-27 1156 switch (cmd) { 67f691976 AKASHI Takahiro 2016-04-27 1157 case CPU_PM_ENTER: 67f691976 AKASHI Takahiro 2016-04-27 1158 if (__this_cpu_read(kvm_arm_hardware_enabled)) 67f691976 AKASHI Takahiro 2016-04-27 1159 /* 67f691976 AKASHI Takahiro 2016-04-27 1160 * don't update kvm_arm_hardware_enabled here 67f691976 AKASHI Takahiro 2016-04-27 1161 * so that the hardware will be re-enabled 67f691976 AKASHI Takahiro 2016-04-27 1162 * when we resume. See below. 67f691976 AKASHI Takahiro 2016-04-27 1163 */ 67f691976 AKASHI Takahiro 2016-04-27 1164 cpu_hyp_reset(); 67f691976 AKASHI Takahiro 2016-04-27 1165 67f691976 AKASHI Takahiro 2016-04-27 1166 return NOTIFY_OK; 67f691976 AKASHI Takahiro 2016-04-27 1167 case CPU_PM_EXIT: 67f691976 AKASHI Takahiro 2016-04-27 1168 if (__this_cpu_read(kvm_arm_hardware_enabled)) 67f691976 AKASHI Takahiro 2016-04-27 1169 /* The hardware was enabled before suspend. */ 5f5560b1c James Morse 2016-03-30 1170 cpu_hyp_reinit(); 67f691976 AKASHI Takahiro 2016-04-27 1171 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1172 return NOTIFY_OK; 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1173 67f691976 AKASHI Takahiro 2016-04-27 1174 default: 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1175 return NOTIFY_DONE; 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1176 } 67f691976 AKASHI Takahiro 2016-04-27 1177 } 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1178 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1179 static struct notifier_block hyp_init_cpu_pm_nb = { 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 @1180 .notifier_call = hyp_init_cpu_pm_notifier, 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1181 }; 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1182 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 @1183 static void __init hyp_cpu_pm_init(void) 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1184 { 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1185 cpu_pm_register_notifier(&hyp_init_cpu_pm_nb); 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1186 } 06a71a24b Sudeep Holla 2016-04-04 @1187 static void __init hyp_cpu_pm_exit(void) 06a71a24b Sudeep Holla 2016-04-04 1188 { 06a71a24b Sudeep Holla 2016-04-04 1189 cpu_pm_unregister_notifier(&hyp_init_cpu_pm_nb); 06a71a24b Sudeep Holla 2016-04-04 1190 } 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1191 #else 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1192 static inline void hyp_cpu_pm_init(void) 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1193 { 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1194 } 06a71a24b Sudeep Holla 2016-04-04 1195 static inline void hyp_cpu_pm_exit(void) 06a71a24b Sudeep Holla 2016-04-04 1196 { 06a71a24b Sudeep Holla 2016-04-04 1197 } 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1198 #endif 1fcf7ce0c Lorenzo Pieralisi 2013-08-05 1199 1e947bad0 Marc Zyngier 2015-01-29 @1200 static void teardown_common_resources(void) 1e947bad0 Marc Zyngier 2015-01-29 1201 { 1e947bad0 Marc Zyngier 2015-01-29 1202 free_percpu(kvm_host_cpu_state); 1e947bad0 Marc Zyngier 2015-01-29 1203 } 1e947bad0 Marc Zyngier 2015-01-29 1204 1e947bad0 Marc Zyngier 2015-01-29 @1205 static int init_common_resources(void) 1e947bad0 Marc Zyngier 2015-01-29 1206 { 1e947bad0 Marc Zyngier 2015-01-29 1207 kvm_host_cpu_state = alloc_percpu(kvm_cpu_context_t); 1e947bad0 Marc Zyngier 2015-01-29 1208 if (!kvm_host_cpu_state) { :::::: The code at line 1016 was first introduced by commit :::::: 3401d54696f992edf036f00f46c8c399d1b75c2a KVM: ARM: Introduce KVM_ARM_SET_DEVICE_ADDR ioctl :::::: TO: Christoffer Dall <c.dall@xxxxxxxxxxxxxxxxxxxxxx> :::::: CC: Marc Zyngier <marc.zyngier@xxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: Binary data