RE: [PATCH 07/11] powerpc/8xx: macro for handling CPU15 errata

From: David Laight
Date: Mon Apr 20 2015 - 07:41:57 EST


From: Christophe Leroy
> Sent: 20 April 2015 06:27
> Having a macro will help keep clear code.
...
> * We have to use the MD_xxx registers for the tablewalk because the
> * equivalent MI_xxx registers only perform the attribute functions.
> */
> +
> +#ifdef CONFIG_8xx_CPU15
> +#define DO_8xx_CPU15(tmp, addr) \
> + addi tmp, addr, PAGE_SIZE; \
> + tlbie tmp; \
> + addi tmp, addr, PAGE_SIZE; \
> + tlbie tmp
> +#else
> +#define DO_8xx_CPU15(tmp, addr)
> +#endif

I'm sure I've spotted the same obvious error in the above before.

I'd also suggest calling it 'invalidate_adjacent_pages' - since that it
what it does.

I also guess that the execution time of 'tlbie' is non-trivial.
So you might as well get rid of the temporary register and put an
'addi' to reset 'addr' at the end.

David