On Sat, Aug 11, 2018 at 12:44:05AM -0700, Max Filippov wrote: > When building kernel for xtensa cores with big cache lines (e.g. 128 > bytes or more) __loop_cache_all and __loop_cache_page may generate > assembly instructions with immediate fields that are too big. This > results in the following build errors: > > arch/xtensa/mm/misc.S: Assembler messages: > arch/xtensa/mm/misc.S:464: Error: operand 2 of 'diwbi' has invalid value '256' > arch/xtensa/mm/misc.S:464: Error: operand 2 of 'diwbi' has invalid value '384' > arch/xtensa/kernel/head.S: Assembler messages: > arch/xtensa/kernel/head.S:172: Error: operand 2 of 'diu' has invalid value '256' > arch/xtensa/kernel/head.S:172: Error: operand 2 of 'diu' has invalid value '384' > arch/xtensa/kernel/head.S:176: Error: operand 2 of 'iiu' has invalid value '256' > arch/xtensa/kernel/head.S:176: Error: operand 2 of 'iiu' has invalid value '384' > arch/xtensa/kernel/head.S:255: Error: operand 2 of 'diwb' has invalid value '256' > arch/xtensa/kernel/head.S:255: Error: operand 2 of 'diwb' has invalid value '384' > > Add parameter max_immed to these macros and use it to limit values of > immediate operands. Extract common code of these macros into the new > macro __loop_cache_unroll. > > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> > --- > arch/xtensa/include/asm/cacheasm.h | 65 +++++++++++++++++++++++--------------- > 1 file changed, 40 insertions(+), 25 deletions(-) <formletter> This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html for how to do this properly. </formletter>