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

Reply via email to