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
Attachment:
.config.gz
Description: application/gzip