A couple of things to point out here: On Wed, Jun 22, 2011 at 04:16:58PM +0100, Russell King - ARM Linux wrote: > - mrc p15, 0, r4, c13, c0, 1 @ Context ID > - mrc p15, 0, r5, c13, c0, 2 @ User r/w thread and process ID > - mrc p15, 0, r6, c12, c0, 0 @ Secure or NS vector base address > - mrs r7, cpsr @ Store current cpsr > - stmia r8!, {r4-r7} 1. The User r/w thread and process ID is not saved/restored by Linux over context switches, so it doesn't serve any useful purpose to save and restore over resume. 2. Compare the instruction saving and restoring the vector base address (see below for the restore code.) > - ldmia r3!,{r4-r7} > - mcr p15, 0, r4, c13, c0, 1 @ Context ID > - mcr p15, 0, r5, c13, c0, 2 @ User r/w thread and process ID > - mrc p15, 0, r6, c12, c0, 0 @ Secure or NS vector base address > - msr cpsr, r7 @ store cpsr Which means it's pointless saving and restoring that register, because we already aren't restoring it (plus there's the possibility that if we were to write to it, we'd get an abort.) -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html