[PATCH v2 09/11] ACPI: APEI: share GHES CPER helpers
kernel test robot
lkp at intel.com
Fri Feb 20 11:24:15 PST 2026
Hi Ahmed,
kernel test robot noticed the following build errors:
[auto build test ERROR on 8bf22c33e7a172fbc72464f4cc484d23a6b412ba]
url: https://github.com/intel-lab-lkp/linux/commits/Ahmed-Tiba/ACPI-APEI-GHES-share-macros-via-a-private-header/20260220-214812
base: 8bf22c33e7a172fbc72464f4cc484d23a6b412ba
patch link: https://lore.kernel.org/r/20260220-topics-ahmtib01-ras_ffh_arm_internal_review-v2-9-347fa2d7351b%40arm.com
patch subject: [PATCH v2 09/11] ACPI: APEI: share GHES CPER helpers
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260220/202602202042.cliczLhi-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260220/202602202042.cliczLhi-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602202042.cliczLhi-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/acpi/apei/ghes_cper.c:261:6: error: call to undeclared function 'FIELD_GET'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
261 | FIELD_GET(CPER_ARM_ERR_TYPE_MASK, err_info->type),
| ^
1 error generated.
vim +/FIELD_GET +261 drivers/acpi/apei/ghes_cper.c
202
203 bool ghes_handle_arm_hw_error(struct acpi_hest_generic_data *gdata,
204 int sev, bool sync)
205 {
206 struct cper_sec_proc_arm *err = acpi_hest_get_payload(gdata);
207 int flags = sync ? MF_ACTION_REQUIRED : 0;
208 int length = gdata->error_data_length;
209 char error_type[120];
210 bool queued = false;
211 int sec_sev, i;
212 char *p;
213
214 sec_sev = ghes_severity(gdata->error_severity);
215 if (length >= sizeof(*err)) {
216 log_arm_hw_error(err, sec_sev);
217 } else {
218 pr_warn(FW_BUG "arm error length: %d\n", length);
219 pr_warn(FW_BUG "length is too small\n");
220 pr_warn(FW_BUG "firmware-generated error record is incorrect\n");
221 return false;
222 }
223
224 if (sev != GHES_SEV_RECOVERABLE || sec_sev != GHES_SEV_RECOVERABLE)
225 return false;
226
227 p = (char *)(err + 1);
228 length -= sizeof(err);
229
230 for (i = 0; i < err->err_info_num; i++) {
231 struct cper_arm_err_info *err_info;
232 bool is_cache, has_pa;
233
234 /* Ensure we have enough data for the error info header */
235 if (length < sizeof(*err_info))
236 break;
237
238 err_info = (struct cper_arm_err_info *)p;
239
240 /* Validate the claimed length before using it */
241 length -= err_info->length;
242 if (length < 0)
243 break;
244
245 is_cache = err_info->type & CPER_ARM_CACHE_ERROR;
246 has_pa = (err_info->validation_bits & CPER_ARM_INFO_VALID_PHYSICAL_ADDR);
247
248 /*
249 * The field (err_info->error_info & BIT(26)) is fixed to set to
250 * 1 in some old firmware of HiSilicon Kunpeng920. We assume that
251 * firmware won't mix corrected errors in an uncorrected section,
252 * and don't filter out 'corrected' error here.
253 */
254 if (is_cache && has_pa) {
255 queued = ghes_do_memory_failure(err_info->physical_fault_addr, flags);
256 p += err_info->length;
257 continue;
258 }
259
260 cper_bits_to_str(error_type, sizeof(error_type),
> 261 FIELD_GET(CPER_ARM_ERR_TYPE_MASK, err_info->type),
262 cper_proc_error_type_strs,
263 ARRAY_SIZE(cper_proc_error_type_strs));
264
265 pr_warn_ratelimited(FW_WARN GHES_PFX
266 "Unhandled processor error type 0x%02x: %s%s\n",
267 err_info->type, error_type,
268 (err_info->type & ~CPER_ARM_ERR_TYPE_MASK) ? " with reserved bit(s)" : "");
269 p += err_info->length;
270 }
271
272 return queued;
273 }
274
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the linux-arm-kernel
mailing list