Lines Matching full:generic
3 * APEI Generic Hardware Error Source support
5 * Generic Hardware Error Source provides a way to report platform
13 * For more information about Generic Hardware Error Source, please
104 return ghes->generic->header.type == ACPI_HEST_TYPE_GENERIC_ERROR_V2; in is_hest_type_generic_v2()
116 u8 notify_type = ghes->generic->notify.type; in is_hest_sync_notify()
268 static struct ghes *ghes_new(struct acpi_hest_generic *generic) in ghes_new() argument
278 ghes->generic = generic; in ghes_new()
285 rc = apei_map_generic_address(&generic->error_status_address); in ghes_new()
288 error_block_length = generic->error_block_length; in ghes_new()
292 "generic hardware error source: %d.\n", in ghes_new()
293 error_block_length, generic->header.source_id); in ghes_new()
305 apei_unmap_generic_address(&generic->error_status_address); in ghes_new()
317 apei_unmap_generic_address(&ghes->generic->error_status_address); in ghes_fini()
374 if (len > ghes->generic->error_block_length) { in __ghes_check_estatus()
392 struct acpi_hest_generic *g = ghes->generic; in __ghes_peek_estatus()
499 "Invalid address in generic error data: %#llx\n", in ghes_do_memory_failure()
808 const struct acpi_hest_generic *generic, in __ghes_print_estatus() argument
824 printk("%s""Hardware error from APEI Generic Hardware Error Source: %d\n", in __ghes_print_estatus()
825 pfx_seq, generic->header.source_id); in __ghes_print_estatus()
830 const struct acpi_hest_generic *generic, in ghes_print_estatus() argument
843 __ghes_print_estatus(pfx, generic, estatus); in ghes_print_estatus()
883 struct acpi_hest_generic *generic, in ghes_estatus_cache_alloc() argument
907 cache->generic = generic; in ghes_estatus_cache_alloc()
925 ghes_estatus_cache_add(struct acpi_hest_generic *generic, in ghes_estatus_cache_add() argument
933 new_cache = ghes_estatus_cache_alloc(generic, estatus); in ghes_estatus_cache_add()
986 __ghes_print_estatus(KERN_EMERG, ghes->generic, estatus); in __ghes_panic()
1010 if (ghes_print_estatus(NULL, ghes->generic, estatus)) in ghes_proc()
1011 ghes_estatus_cache_add(ghes->generic, estatus); in ghes_proc()
1023 struct acpi_hest_generic *g = ghes->generic; in ghes_add_timer()
1027 pr_warn(FW_WARN GHES_PFX "Poll interval is 0 for generic hardware error source: %d, disabled.\n", in ghes_add_timer()
1104 struct acpi_hest_generic *generic; in ghes_proc_in_irq() local
1125 generic = estatus_node->generic; in ghes_proc_in_irq()
1126 if (ghes_print_estatus(NULL, generic, estatus)) in ghes_proc_in_irq()
1127 ghes_estatus_cache_add(generic, estatus); in ghes_proc_in_irq()
1151 struct acpi_hest_generic *generic; in ghes_print_queued_estatus() local
1164 generic = estatus_node->generic; in ghes_print_queued_estatus()
1165 ghes_print_estatus(NULL, generic, estatus); in ghes_print_queued_estatus()
1201 estatus_node->generic = ghes->generic; in ghes_in_nmi_queue_one_entry()
1408 struct acpi_hest_generic *generic; in ghes_probe() local
1414 generic = *(struct acpi_hest_generic **)ghes_dev->dev.platform_data; in ghes_probe()
1415 if (!generic->enabled) in ghes_probe()
1418 switch (generic->notify.type) { in ghes_probe()
1428 pr_warn(GHES_PFX "Generic hardware error source: %d notified via SEA is not supported\n", in ghes_probe()
1429 generic->header.source_id); in ghes_probe()
1436 …pr_warn(GHES_PFX "Generic hardware error source: %d notified via NMI interrupt is not supported!\n… in ghes_probe()
1437 generic->header.source_id); in ghes_probe()
1443 …pr_warn(GHES_PFX "Generic hardware error source: %d notified via SDE Interface is not supported!\n… in ghes_probe()
1444 generic->header.source_id); in ghes_probe()
1449 …pr_warn(GHES_PFX "Generic hardware error source: %d notified via local interrupt is not supported!… in ghes_probe()
1450 generic->header.source_id); in ghes_probe()
1453 pr_warn(FW_WARN GHES_PFX "Unknown notification type: %u for generic hardware error source: %d\n", in ghes_probe()
1454 generic->notify.type, generic->header.source_id); in ghes_probe()
1459 if (generic->error_block_length < in ghes_probe()
1461 pr_warn(FW_BUG GHES_PFX "Invalid error block length: %u for generic hardware error source: %d\n", in ghes_probe()
1462 generic->error_block_length, generic->header.source_id); in ghes_probe()
1465 ghes = ghes_new(generic); in ghes_probe()
1472 switch (generic->notify.type) { in ghes_probe()
1479 rc = acpi_gsi_to_irq(generic->notify.vector, &ghes->irq); in ghes_probe()
1481 pr_err(GHES_PFX "Failed to map GSI to IRQ for generic hardware error source: %d\n", in ghes_probe()
1482 generic->header.source_id); in ghes_probe()
1488 pr_err(GHES_PFX "Failed to register IRQ for generic hardware error source: %d\n", in ghes_probe()
1489 generic->header.source_id); in ghes_probe()
1546 struct acpi_hest_generic *generic; in ghes_remove() local
1549 generic = ghes->generic; in ghes_remove()
1552 switch (generic->notify.type) { in ghes_remove()