[GIT PULL] nommu-fixes, r7 and MPU support for 3.11

Russell King - ARM Linux linux at arm.linux.org.uk
Mon Jun 17 09:19:28 EDT 2013


On Sat, Jun 08, 2013 at 12:51:35AM +0100, Jonathan Austin wrote:
> This is rebased (and re-tested) on your devel-stable branch because
> otherwise there were going to be conflicts with Uwe's V7M work now that
> you've merged that. I've included the fix for limiting MPU to CPU_V7.

It looks like you have some rebasing errors:

In your 75709659007e7c33153129082bd85dfb74427078:

@@ -1414,7 +1414,8 @@ config SMP
        depends on CPU_V6K || CPU_V7
        depends on GENERIC_CLOCKEVENTS
        depends on HAVE_SMP
-       depends on MMU
+       depends on MMU || ARM_MPU
+       select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP

Yet, 4c3ffffdbca2e6f6f5125fa7b149d87a13f92c94 (ARM: Push selects for TWD/SCU into
machine entries), that select was removed because it was moved elsewhere:

@@ -1400,7 +1402,6 @@ config SMP
        depends on GENERIC_CLOCKEVENTS
        depends on HAVE_SMP
        depends on MMU
-       select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP

In arch/arm/include/asm/tlbflush.h:

+static inline void local_flush_tlb_all(void)                                                                  { }

Yes, the lines are really that long - needlessly.  What's wrong with:

+static inline void local_flush_tlb_all(void)
+{
+}

?

+               if ((cpsr & MODE32_BIT) && !IS_ENABLED(CONFIG_ARM_MPU)) {
                        /*
                         * 32-bit code can use the new high-page
-                        * signal return code support.
+                        * signal return code support except when the MPU has
+                        * protected the vectors page from PL0

Note that this means you can't support NX, because you need your stack to
be executable.  You need to ensure that arm_elf_read_implies_exec()
returns appropriately for MPU (it needs to return 1 for MPU.)



More information about the linux-arm-kernel mailing list