lkml.org 
[lkml]   [2023]   [Apr]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 3/4] arch_topology: Remove early cacheinfo error message if -ENOENT
    Date
    fetch_cache_info() tries to get the number of cache leaves/levels
    for each CPU in order to pre-allocate memory for cacheinfo struct.
    Allocating this memory later triggers a:
    'BUG: sleeping function called from invalid context'
    in PREEMPT_RT kernels.

    If there is no cache related information available in DT or ACPI,
    fetch_cache_info() fails and an error message is printed:
    'Early cacheinfo failed, ret = ...'

    Not having cache information should be a valid configuration.
    Remove the error message if fetch_cache_info() fails with -ENOENT.

    Suggested-by: Conor Dooley <conor.dooley@microchip.com>
    Link: https://lore.kernel.org/all/20230404-hatred-swimmer-6fecdf33b57a@spud/
    Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
    Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
    ---
    drivers/base/arch_topology.c | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
    index b1c1dd38ab01..c4b6198d7461 100644
    --- a/drivers/base/arch_topology.c
    +++ b/drivers/base/arch_topology.c
    @@ -843,10 +843,11 @@ void __init init_cpu_topology(void)

    for_each_possible_cpu(cpu) {
    ret = fetch_cache_info(cpu);
    - if (ret) {
    + if (!ret)
    + continue;
    + else if (ret != -ENOENT)
    pr_err("Early cacheinfo failed, ret = %d\n", ret);
    - break;
    - }
    + return;
    }
    }

    --
    2.25.1
    \
     
     \ /
      Last update: 2023-04-14 10:17    [W:3.136 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site