Commit e861caac authored by Guido Barzini's avatar Guido Barzini Committed by Russell King

[ARM PATCH] 1179/1: ldm/stm alignement fixups: treat 920T the same as 922T

 The check in do_alignment_ldmstm for addr and eaddr being the same is #ifdef'd
out for the ARM922T because they aren't expected to be the same due to the 
different way the MMU sets addr. The ARM920T is just a 922T with more cache, 
and should be treated the same. I've checked on a real ARM920T and it does 
complain loudly every time it fixes up a misaligned ldm/stm unless this 
patch is applied.
 I suspect that the ARM926 should be treated the same way as well, but I can't
find any relevant documentation on ARM's web-site, so have left it out. 
parent 36023e6d
...@@ -399,13 +399,13 @@ do_alignment_ldmstm(unsigned long addr, unsigned long instr, struct pt_regs *reg ...@@ -399,13 +399,13 @@ do_alignment_ldmstm(unsigned long addr, unsigned long instr, struct pt_regs *reg
eaddr += 4; eaddr += 4;
/* /*
* For alignment faults on the ARM922T the MMU makes * For alignment faults on the ARM922T/ARM920T the MMU makes
* the FSR (and hence addr) equal to the updated base address * the FSR (and hence addr) equal to the updated base address
* of the multiple access rather than the restored value. * of the multiple access rather than the restored value.
* Switch this messsage off if we've got a ARM922, otherwise * Switch this messsage off if we've got a ARM92[02], otherwise
* [ls]dm alignment faults are noisy! * [ls]dm alignment faults are noisy!
*/ */
#if !(defined CONFIG_CPU_ARM922T) #if !(defined CONFIG_CPU_ARM922T) && !(defined CONFIG_CPU_ARM920T)
/* /*
* This is a "hint" - we already have eaddr worked out by the * This is a "hint" - we already have eaddr worked out by the
* processor for us. * processor for us.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment