diff options
Diffstat (limited to 'drivers/acpi/apei')
-rw-r--r-- | drivers/acpi/apei/einj.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index 3d3816f6d367..8e1793649ec0 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c | |||
@@ -74,6 +74,8 @@ struct vendor_error_type_extension { | |||
74 | u8 reserved[3]; | 74 | u8 reserved[3]; |
75 | }; | 75 | }; |
76 | 76 | ||
77 | static u32 notrigger; | ||
78 | |||
77 | static u32 vendor_flags; | 79 | static u32 vendor_flags; |
78 | static struct debugfs_blob_wrapper vendor_blob; | 80 | static struct debugfs_blob_wrapper vendor_blob; |
79 | static char vendor_dev[64]; | 81 | static char vendor_dev[64]; |
@@ -496,9 +498,11 @@ static int __einj_error_inject(u32 type, u64 param1, u64 param2) | |||
496 | if (rc) | 498 | if (rc) |
497 | return rc; | 499 | return rc; |
498 | trigger_paddr = apei_exec_ctx_get_output(&ctx); | 500 | trigger_paddr = apei_exec_ctx_get_output(&ctx); |
499 | rc = __einj_error_trigger(trigger_paddr, type, param1, param2); | 501 | if (notrigger == 0) { |
500 | if (rc) | 502 | rc = __einj_error_trigger(trigger_paddr, type, param1, param2); |
501 | return rc; | 503 | if (rc) |
504 | return rc; | ||
505 | } | ||
502 | rc = apei_exec_run_optional(&ctx, ACPI_EINJ_END_OPERATION); | 506 | rc = apei_exec_run_optional(&ctx, ACPI_EINJ_END_OPERATION); |
503 | 507 | ||
504 | return rc; | 508 | return rc; |
@@ -700,6 +704,11 @@ static int __init einj_init(void) | |||
700 | einj_debug_dir, &error_param2); | 704 | einj_debug_dir, &error_param2); |
701 | if (!fentry) | 705 | if (!fentry) |
702 | goto err_unmap; | 706 | goto err_unmap; |
707 | |||
708 | fentry = debugfs_create_x32("notrigger", S_IRUSR | S_IWUSR, | ||
709 | einj_debug_dir, ¬rigger); | ||
710 | if (!fentry) | ||
711 | goto err_unmap; | ||
703 | } | 712 | } |
704 | 713 | ||
705 | if (vendor_dev[0]) { | 714 | if (vendor_dev[0]) { |