lkml.org 
[lkml]   [2020]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 04/15] MIPS: cpu-probe: ingenic: Fix broken BUG_ON
    Date
    The previous code was doing:
    BUG_ON(!__builtin_constant_p(cpu_has_counter) || cpu_has_counter);

    This only worked as the "cpu_has_counter" macro was overridden in
    <cpu-feature-overrides.h>. The default "cpu_has_counter" macro is
    non-constant, which triggered the BUG_ON() independently of the value
    returned by the macro.

    What we want to check here, is that *if* the macro was overridden to a
    compile-time constant, then must be defined to zero, otherwise it's a
    bug.

    So the correct check is:
    BUG_ON(__builtin_constant_p(cpu_has_counter) && cpu_has_counter);

    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    ---

    Notes:
    v2-v3: No change

    arch/mips/kernel/cpu-probe.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
    index a07e66a6e063..6be23f205e74 100644
    --- a/arch/mips/kernel/cpu-probe.c
    +++ b/arch/mips/kernel/cpu-probe.c
    @@ -2123,7 +2123,7 @@ static inline void cpu_probe_ingenic(struct cpuinfo_mips *c, unsigned int cpu)

    /* XBurst does not implement the CP0 counter. */
    c->options &= ~MIPS_CPU_COUNTER;
    - BUG_ON(!__builtin_constant_p(cpu_has_counter) || cpu_has_counter);
    + BUG_ON(__builtin_constant_p(cpu_has_counter) && cpu_has_counter);

    /* XBurst has virtually tagged icache */
    c->icache.flags |= MIPS_CACHE_VTAG;
    --
    2.28.0
    \
     
     \ /
      Last update: 2020-09-06 21:31    [W:2.872 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site