On Wed, May 16, 2018 at 01:00:15PM -0700, Andrey Smirnov wrote: > Both TTB index and address used to fill that entry are derived from > the same variable 'addr' which requires shifting right and left by 20 > and somewhat confusing. > > Split the counter used to iterate over elements of TTB into a > separate variable to make this code a bit easier to read. > > Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx> > --- > arch/arm/cpu/mmu.h | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/cpu/mmu.h b/arch/arm/cpu/mmu.h > index 59f72049f..d71cd7e38 100644 > --- a/arch/arm/cpu/mmu.h > +++ b/arch/arm/cpu/mmu.h > @@ -1,6 +1,8 @@ > #ifndef __ARM_MMU_H > #define __ARM_MMU_H > > +#include <linux/sizes.h> > + > #ifdef CONFIG_MMU > void __mmu_cache_on(void); > void __mmu_cache_off(void); > @@ -28,8 +30,12 @@ static inline void > create_sections(uint32_t *ttb, unsigned long addr, > int size_m, unsigned int flags) > { > - for (addr >>= 20; addr < size_m; addr++) > - ttb[addr] = (addr << 20) | flags; > + unsigned long ttb_start = addr >> 20; > + unsigned long ttb_end = ttb_start + size_m; > + unsigned int i; > + > + for (i = ttb_start; i < ttb_end; i++, addr += SZ_1M) > + ttb[i] = addr | flags; > } Much more readable - thanks. Of personal taste I would have put the assignment of addr inside the for loop to IMO increase readability. Sam _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox