Have fixed it in the patch v5. On 2017/10/17 18:20, kbuild test robot wrote: > Hi Dongjiu, > > [auto build test ERROR on pm/linux-next] > [also build test ERROR on v4.14-rc5 next-20171016] > [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/Dongjiu-Geng/acpi-apei-remove-the-unused-dead-code-for-SEA-NMI-notification-type/20171017-141237 > base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next > config: x86_64-kexec (attached as .config) > compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 > reproduce: > # save the attached .config to linux build tree > make ARCH=x86_64 > > All errors (new ones prefixed by >>): > > drivers/acpi/apei/ghes.c: In function 'ghes_probe': >>> drivers/acpi/apei/ghes.c:1191:3: error: implicit declaration of function 'ghes_abort_add' [-Werror=implicit-function-declaration] > ghes_abort_add(ghes); > ^~~~~~~~~~~~~~ > drivers/acpi/apei/ghes.c: In function 'ghes_remove': >>> drivers/acpi/apei/ghes.c:1245:3: error: implicit declaration of function 'ghes_abort_remove' [-Werror=implicit-function-declaration] > ghes_abort_remove(ghes); > ^~~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors > > vim +/ghes_abort_add +1191 drivers/acpi/apei/ghes.c > > 1085 > 1086 static int ghes_probe(struct platform_device *ghes_dev) > 1087 { > 1088 struct acpi_hest_generic *generic; > 1089 struct ghes *ghes = NULL; > 1090 > 1091 int rc = -EINVAL; > 1092 > 1093 generic = *(struct acpi_hest_generic **)ghes_dev->dev.platform_data; > 1094 if (!generic->enabled) > 1095 return -ENODEV; > 1096 > 1097 switch (generic->notify.type) { > 1098 case ACPI_HEST_NOTIFY_POLLED: > 1099 case ACPI_HEST_NOTIFY_EXTERNAL: > 1100 case ACPI_HEST_NOTIFY_SCI: > 1101 case ACPI_HEST_NOTIFY_GSIV: > 1102 case ACPI_HEST_NOTIFY_GPIO: > 1103 break; > 1104 > 1105 case ACPI_HEST_NOTIFY_SEA: > 1106 if (!IS_ENABLED(CONFIG_ACPI_APEI_SEA)) { > 1107 pr_warn(GHES_PFX "Generic hardware error source: %d notified via SEA is not supported\n", > 1108 generic->header.source_id); > 1109 rc = -ENOTSUPP; > 1110 goto err; > 1111 } > 1112 break; > 1113 case ACPI_HEST_NOTIFY_SEI: > 1114 if (!IS_ENABLED(CONFIG_ACPI_APEI_SEI)) { > 1115 pr_warn(GHES_PFX "Generic hardware error source: %d notified via SEI is not supported!\n", > 1116 generic->header.source_id); > 1117 goto err; > 1118 } > 1119 break; > 1120 case ACPI_HEST_NOTIFY_NMI: > 1121 if (!IS_ENABLED(CONFIG_HAVE_ACPI_APEI_NMI)) { > 1122 pr_warn(GHES_PFX "Generic hardware error source: %d notified via NMI interrupt is not supported!\n", > 1123 generic->header.source_id); > 1124 goto err; > 1125 } > 1126 break; > 1127 case ACPI_HEST_NOTIFY_LOCAL: > 1128 pr_warning(GHES_PFX "Generic hardware error source: %d notified via local interrupt is not supported!\n", > 1129 generic->header.source_id); > 1130 goto err; > 1131 default: > 1132 pr_warning(FW_WARN GHES_PFX "Unknown notification type: %u for generic hardware error source: %d\n", > 1133 generic->notify.type, generic->header.source_id); > 1134 goto err; > 1135 } > 1136 > 1137 rc = -EIO; > 1138 if (generic->error_block_length < > 1139 sizeof(struct acpi_hest_generic_status)) { > 1140 pr_warning(FW_BUG GHES_PFX "Invalid error block length: %u for generic hardware error source: %d\n", > 1141 generic->error_block_length, > 1142 generic->header.source_id); > 1143 goto err; > 1144 } > 1145 ghes = ghes_new(generic); > 1146 if (IS_ERR(ghes)) { > 1147 rc = PTR_ERR(ghes); > 1148 ghes = NULL; > 1149 goto err; > 1150 } > 1151 > 1152 rc = ghes_edac_register(ghes, &ghes_dev->dev); > 1153 if (rc < 0) > 1154 goto err; > 1155 > 1156 switch (generic->notify.type) { > 1157 case ACPI_HEST_NOTIFY_POLLED: > 1158 setup_deferrable_timer(&ghes->timer, ghes_poll_func, > 1159 (unsigned long)ghes); > 1160 ghes_add_timer(ghes); > 1161 break; > 1162 case ACPI_HEST_NOTIFY_EXTERNAL: > 1163 /* External interrupt vector is GSI */ > 1164 rc = acpi_gsi_to_irq(generic->notify.vector, &ghes->irq); > 1165 if (rc) { > 1166 pr_err(GHES_PFX "Failed to map GSI to IRQ for generic hardware error source: %d\n", > 1167 generic->header.source_id); > 1168 goto err_edac_unreg; > 1169 } > 1170 rc = request_irq(ghes->irq, ghes_irq_func, IRQF_SHARED, > 1171 "GHES IRQ", ghes); > 1172 if (rc) { > 1173 pr_err(GHES_PFX "Failed to register IRQ for generic hardware error source: %d\n", > 1174 generic->header.source_id); > 1175 goto err_edac_unreg; > 1176 } > 1177 break; > 1178 > 1179 case ACPI_HEST_NOTIFY_SCI: > 1180 case ACPI_HEST_NOTIFY_GSIV: > 1181 case ACPI_HEST_NOTIFY_GPIO: > 1182 mutex_lock(&ghes_list_mutex); > 1183 if (list_empty(&ghes_hed)) > 1184 register_acpi_hed_notifier(&ghes_notifier_hed); > 1185 list_add_rcu(&ghes->list, &ghes_hed); > 1186 mutex_unlock(&ghes_list_mutex); > 1187 break; > 1188 > 1189 case ACPI_HEST_NOTIFY_SEA: > 1190 case ACPI_HEST_NOTIFY_SEI: >> 1191 ghes_abort_add(ghes); > 1192 break; > 1193 case ACPI_HEST_NOTIFY_NMI: > 1194 ghes_nmi_add(ghes); > 1195 break; > 1196 default: > 1197 BUG(); > 1198 } > 1199 platform_set_drvdata(ghes_dev, ghes); > 1200 > 1201 /* Handle any pending errors right away */ > 1202 ghes_proc(ghes); > 1203 > 1204 return 0; > 1205 err_edac_unreg: > 1206 ghes_edac_unregister(ghes); > 1207 err: > 1208 if (ghes) { > 1209 ghes_fini(ghes); > 1210 kfree(ghes); > 1211 } > 1212 return rc; > 1213 } > 1214 > 1215 static int ghes_remove(struct platform_device *ghes_dev) > 1216 { > 1217 struct ghes *ghes; > 1218 struct acpi_hest_generic *generic; > 1219 > 1220 ghes = platform_get_drvdata(ghes_dev); > 1221 generic = ghes->generic; > 1222 > 1223 ghes->flags |= GHES_EXITING; > 1224 switch (generic->notify.type) { > 1225 case ACPI_HEST_NOTIFY_POLLED: > 1226 del_timer_sync(&ghes->timer); > 1227 break; > 1228 case ACPI_HEST_NOTIFY_EXTERNAL: > 1229 free_irq(ghes->irq, ghes); > 1230 break; > 1231 > 1232 case ACPI_HEST_NOTIFY_SCI: > 1233 case ACPI_HEST_NOTIFY_GSIV: > 1234 case ACPI_HEST_NOTIFY_GPIO: > 1235 mutex_lock(&ghes_list_mutex); > 1236 list_del_rcu(&ghes->list); > 1237 if (list_empty(&ghes_hed)) > 1238 unregister_acpi_hed_notifier(&ghes_notifier_hed); > 1239 mutex_unlock(&ghes_list_mutex); > 1240 synchronize_rcu(); > 1241 break; > 1242 > 1243 case ACPI_HEST_NOTIFY_SEA: > 1244 case ACPI_HEST_NOTIFY_SEI: >> 1245 ghes_abort_remove(ghes); > 1246 break; > 1247 case ACPI_HEST_NOTIFY_NMI: > 1248 ghes_nmi_remove(ghes); > 1249 break; > 1250 default: > 1251 BUG(); > 1252 break; > 1253 } > 1254 > 1255 ghes_fini(ghes); > 1256 > 1257 ghes_edac_unregister(ghes); > 1258 > 1259 kfree(ghes); > 1260 > 1261 platform_set_drvdata(ghes_dev, NULL); > 1262 > 1263 return 0; > 1264 } > 1265 > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html