On 2018-02-28 09:56, Thomas Gleixner wrote: > On Wed, 21 Feb 2018, Felix Fietkau wrote: > >> This code needs to use ffs instead of fls on the mask to determine the >> shift for reading the GIC_CONFIG_COUNTBITS field. > > Why? >> count_width = read_gic_config() & GIC_CONFIG_COUNTBITS; >> - count_width >>= __fls(GIC_CONFIG_COUNTBITS); >> + count_width >>= __ffs(GIC_CONFIG_COUNTBITS); This code is trying to extract the GIC_CONFIG_COUNTBITS field from read_gic_config(), so it needs to shift count_width right by the index of the least significant bit (__ffs) instead of the most significant bit (__fls) of the field mask.
- Felix