aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Garry <john.garry@huawei.com>2019-02-07 11:14:21 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2019-02-07 17:16:08 -0500
commit6cafe700b08cfd261a279b9e5ed99f3a346fe3b0 (patch)
tree92b7e05bac5867fe4e71df7bfaf835dffba8dbf1
parent98a455d91e7116ca417bc37da6aa2dd633206a6f (diff)
ACPI/PPTT: Add acpi_pptt_warn_missing() to consolidate logs
For a system using ACPI-based FW without a PPTT, we may get many warnings about the lack of a PPTT, as shown: root@(none)$ dmesg | grep -i pptt [ 0.010125] ACPI PPTT: No PPTT table found, cpu topology may be inaccurate [ 7.138339] ACPI PPTT: No PPTT table found, cache topology may be inaccurate [ 7.145368] ACPI PPTT: No PPTT table found, cache topology may be inaccurate These logs are generated with pr_warn_once(), so the intention was for a single log, but the logs overlap, so consolidate them. Signed-off-by: John Garry <john.garry@huawei.com> Reviewed-by: Jeremy Linton <jeremy.linton@arm.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--drivers/acpi/pptt.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
index da031b1df6f5..ad31c50de3be 100644
--- a/drivers/acpi/pptt.c
+++ b/drivers/acpi/pptt.c
@@ -451,6 +451,11 @@ static struct acpi_pptt_processor *acpi_find_processor_package_id(struct acpi_ta
451 return cpu; 451 return cpu;
452} 452}
453 453
454static void acpi_pptt_warn_missing(void)
455{
456 pr_warn_once("No PPTT table found, cpu and cache topology may be inaccurate\n");
457}
458
454/** 459/**
455 * topology_get_acpi_cpu_tag() - Find a unique topology value for a feature 460 * topology_get_acpi_cpu_tag() - Find a unique topology value for a feature
456 * @table: Pointer to the head of the PPTT table 461 * @table: Pointer to the head of the PPTT table
@@ -498,7 +503,7 @@ static int find_acpi_cpu_topology_tag(unsigned int cpu, int level, int flag)
498 503
499 status = acpi_get_table(ACPI_SIG_PPTT, 0, &table); 504 status = acpi_get_table(ACPI_SIG_PPTT, 0, &table);
500 if (ACPI_FAILURE(status)) { 505 if (ACPI_FAILURE(status)) {
501 pr_warn_once("No PPTT table found, cpu topology may be inaccurate\n"); 506 acpi_pptt_warn_missing();
502 return -ENOENT; 507 return -ENOENT;
503 } 508 }
504 retval = topology_get_acpi_cpu_tag(table, cpu, level, flag); 509 retval = topology_get_acpi_cpu_tag(table, cpu, level, flag);
@@ -531,7 +536,7 @@ int acpi_find_last_cache_level(unsigned int cpu)
531 acpi_cpu_id = get_acpi_id_for_cpu(cpu); 536 acpi_cpu_id = get_acpi_id_for_cpu(cpu);
532 status = acpi_get_table(ACPI_SIG_PPTT, 0, &table); 537 status = acpi_get_table(ACPI_SIG_PPTT, 0, &table);
533 if (ACPI_FAILURE(status)) { 538 if (ACPI_FAILURE(status)) {
534 pr_warn_once("No PPTT table found, cache topology may be inaccurate\n"); 539 acpi_pptt_warn_missing();
535 } else { 540 } else {
536 number_of_levels = acpi_find_cache_levels(table, acpi_cpu_id); 541 number_of_levels = acpi_find_cache_levels(table, acpi_cpu_id);
537 acpi_put_table(table); 542 acpi_put_table(table);
@@ -563,7 +568,7 @@ int cache_setup_acpi(unsigned int cpu)
563 568
564 status = acpi_get_table(ACPI_SIG_PPTT, 0, &table); 569 status = acpi_get_table(ACPI_SIG_PPTT, 0, &table);
565 if (ACPI_FAILURE(status)) { 570 if (ACPI_FAILURE(status)) {
566 pr_warn_once("No PPTT table found, cache topology may be inaccurate\n"); 571 acpi_pptt_warn_missing();
567 return -ENOENT; 572 return -ENOENT;
568 } 573 }
569 574
@@ -617,7 +622,7 @@ int find_acpi_cpu_cache_topology(unsigned int cpu, int level)
617 622
618 status = acpi_get_table(ACPI_SIG_PPTT, 0, &table); 623 status = acpi_get_table(ACPI_SIG_PPTT, 0, &table);
619 if (ACPI_FAILURE(status)) { 624 if (ACPI_FAILURE(status)) {
620 pr_warn_once("No PPTT table found, topology may be inaccurate\n"); 625 acpi_pptt_warn_missing();
621 return -ENOENT; 626 return -ENOENT;
622 } 627 }
623 628