|
@@ -699,7 +699,6 @@ do_alignment_t32_to_handler(unsigned long *pinstr, struct pt_regs *regs,
|
|
|
unsigned long instr = *pinstr;
|
|
|
u16 tinst1 = (instr >> 16) & 0xffff;
|
|
|
u16 tinst2 = instr & 0xffff;
|
|
|
- poffset->un = 0;
|
|
|
|
|
|
switch (tinst1 & 0xffe0) {
|
|
|
/* A6.3.5 Load/Store multiple */
|
|
@@ -854,9 +853,10 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
|
|
|
break;
|
|
|
|
|
|
case 0x08000000: /* ldm or stm, or thumb-2 32bit instruction */
|
|
|
- if (thumb2_32b)
|
|
|
+ if (thumb2_32b) {
|
|
|
+ offset.un = 0;
|
|
|
handler = do_alignment_t32_to_handler(&instr, regs, &offset);
|
|
|
- else
|
|
|
+ } else
|
|
|
handler = do_alignment_ldmstm;
|
|
|
break;
|
|
|
|