lkml.org 
[lkml]   [2018]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 170/496] clocksource/drivers/mips-gic-timer: Use correct shift count to extract data
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Felix Fietkau <nbd@nbd.name>

    [ Upstream commit 5753405e27f8fe4c42c1537d3ddbd9e058e54cdc ]

    __gic_clocksource_init() extracts the GIC_CONFIG_COUNTBITS field from
    read_gic_config() by right shifting the register value. The shift count is
    determined by the most significant bit (__fls) of the bitmask which is
    wrong as it shifts out the complete bitfield.

    Use the least significant bit (__ffs) instead to shift the bitfield down to
    bit 0.

    Fixes: e07127a077c7 ("clocksource: mips-gic-timer: Use new GIC accessor functions")
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: daniel.lezcano@linaro.org
    Cc: paul.burton@imgtec.com
    Link: https://lkml.kernel.org/r/20180228095610.50341-1-nbd@nbd.name
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/clocksource/mips-gic-timer.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/clocksource/mips-gic-timer.c
    +++ b/drivers/clocksource/mips-gic-timer.c
    @@ -164,7 +164,7 @@ static int __init __gic_clocksource_init

    /* Set clocksource mask. */
    count_width = read_gic_config() & GIC_CONFIG_COUNTBITS;
    - count_width >>= __fls(GIC_CONFIG_COUNTBITS);
    + count_width >>= __ffs(GIC_CONFIG_COUNTBITS);
    count_width *= 4;
    count_width += 32;
    gic_clocksource.mask = CLOCKSOURCE_MASK(count_width);

    \
     
     \ /
      Last update: 2018-05-28 15:23    [W:2.505 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site