1. 09 Feb, 2012 1 commit
  2. 02 Feb, 2012 1 commit
  3. 25 Jan, 2012 1 commit
  4. 23 Jan, 2012 1 commit
  5. 17 Jan, 2012 1 commit
    • Nathaniel Husted's avatar
      Kernel: Audit Support For The ARM Platform · 29ef73b7
      Nathaniel Husted authored
      This patch provides functionality to audit system call events on the
      ARM platform. The implementation was based off the structure of the
      MIPS platform and information in this
      (http://lists.fedoraproject.org/pipermail/arm/2009-October/000382.html
      
      )
      mailing list thread. The required audit_syscall_exit and
      audit_syscall_entry checks were added to ptrace using the standard
      registers for system call values (r0 through r3). A thread information
      flag was added for auditing (TIF_SYSCALL_AUDIT) and a meta-flag was
      added (_TIF_SYSCALL_WORK) to simplify modifications to the syscall
      entry/exit. Now, if either the TRACE flag is set or the AUDIT flag is
      set, the syscall_trace function will be executed. The prober changes
      were made to Kconfig to allow CONFIG_AUDITSYSCALL to be enabled.
      
      Due to platform availability limitations, this patch was only tested
      on the Android platform running the modified "android-goldfish-2.6.29"
      kernel. A test compile was performed using Code Sourcery's
      cross-compilation toolset and the current linux-3.0 stable kernel. The
      changes compile without error. I'm hoping, due to the simple modifications,
      the patch is "obviously correct".
      Signed-off-by: default avatarNathaniel Husted <nhusted@gmail.com>
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      29ef73b7
  6. 16 Jan, 2012 1 commit
  7. 13 Jan, 2012 1 commit
    • Russell King's avatar
      ARM: Add arm_memblock_steal() to allocate memory away from the kernel · 716a3dc2
      Russell King authored
      Several platforms are now using the memblock_alloc+memblock_free+
      memblock_remove trick to obtain memory which won't be mapped in the
      kernel's page tables.  Most platforms do this (correctly) in the
      ->reserve callback.  However, OMAP has started to call these functions
      outside of this callback, and this is extremely unsafe - memory will
      not be unmapped, and could well be given out after memblock is no
      longer responsible for its management.
      
      So, provide arm_memblock_steal() to perform this function, and ensure
      that it panic()s if it is used inappropriately.  Convert everyone
      over, including OMAP.
      
      As a result, OMAP with OMAP4_ERRATA_I688 enabled will panic on boot
      with this change.  Mark this option as BROKEN and make it depend on
      BROKEN.  OMAP needs to be fixed, or 137d105d
      
       (ARM: OMAP4: Fix
      errata i688 with MPU interconnect barriers.) reverted until such
      time it can be fixed correctly.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      716a3dc2
  8. 08 Jan, 2012 1 commit
  9. 06 Jan, 2012 2 commits
  10. 05 Jan, 2012 3 commits
  11. 04 Jan, 2012 1 commit
    • Fabio Estevam's avatar
      ARM: prom.h: Fix build error by removing unneeded header file · c89810ac
      Fabio Estevam authored
      
      
      Fix the following build error:
      
        CC [M]  fs/udf/balloc.o
      In file included from /home/fabio/next/linux-next/arch/arm/include/asm/prom.h:16,
                       from include/linux/of.h:140,
                       from include/asm-generic/gpio.h:7,
                       from arch/arm/plat-mxc/include/mach/irqs.h:14,
                       from /home/fabio/next/linux-next/arch/arm/include/asm/irq.h:4,
                       from /home/fabio/next/linux-next/arch/arm/include/asm/hardirq.h:6,
                       from include/linux/hardirq.h:7,
                       from include/linux/highmem.h:8,
                       from include/linux/pagemap.h:10,
                       from include/linux/buffer_head.h:13,
                       from fs/udf/udfdecl.h:11,
                       from fs/udf/balloc.c:22:
      /home/fabio/next/linux-next/arch/arm/include/asm/setup.h:146: error: redefinition of 'struct tag'
      Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
      [grant.likely: fix build failure on drivers/of/fdt.c]
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      c89810ac
  12. 03 Jan, 2012 2 commits
  13. 02 Jan, 2012 1 commit
  14. 27 Dec, 2011 1 commit
  15. 23 Dec, 2011 1 commit
  16. 22 Dec, 2011 1 commit
  17. 21 Dec, 2011 1 commit
    • Kay Sievers's avatar
      arm: convert sysdev_class to a regular subsystem · 4a858cfc
      Kay Sievers authored
      
      
      After all sysdev classes are ported to regular driver core entities, the
      sysdev implementation will be entirely removed from the kernel.
      
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Ben Dooks <ben-linux@fluff.org>
      Cc: Vinod Koul <vinod.koul@intel.com>
      Cc: Boojin Kim <boojin.kim@samsung.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Lucas De Marchi <lucas.demarchi@profusion.mobi>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Signed-off-by: default avatarKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      4a858cfc
  18. 18 Dec, 2011 1 commit
  19. 13 Dec, 2011 3 commits
  20. 11 Dec, 2011 1 commit
  21. 08 Dec, 2011 7 commits
  22. 06 Dec, 2011 6 commits
    • Will Deacon's avatar
      ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting · 4e8ee7de
      Will Deacon authored
      
      
      The ARM SMP booting code allocates a temporary set of page tables
      containing an identity mapping of the kernel image and provides this
      to secondary CPUs for initial booting.
      
      In reality, we only need to include the __turn_mmu_on function in the
      identity mapping since the rest of the kernel is executing from virtual
      addresses after this point.
      
      This patch adds __turn_mmu_on to the .idmap.text section, allowing the
      SMP booting code to use the idmap_pgd directly and not have to populate
      its own set of page table.
      
      As a result of this patch, we can make the identity_mapping_add function
      static (since it is only used within mm/idmap.c) and also remove the
      identity_mapping_del function. The identity map population is moved to
      an early initcall so that it is setup in time for secondary CPU bringup.
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      4e8ee7de
    • Will Deacon's avatar
      ARM: idmap: populate identity map pgd at init time using .init.text · 8903826d
      Will Deacon authored
      
      
      When disabling and re-enabling the MMU, it is necessary to take out an
      identity mapping for the code that manipulates the SCTLR in order to
      avoid it disappearing from under our feet. This is useful when soft
      rebooting and returning from CPU suspend.
      
      This patch allocates a set of page tables during boot and populates them
      with an identity mapping for the .idmap.text section. This means that
      users of the identity map do not need to manage their own pgd and can
      instead annotate their functions with __idmap or, in the case of assembly
      code, place them in the correct section.
      Acked-by: default avatarDave Martin <dave.martin@linaro.org>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Tested-by: default avatarLorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      8903826d
    • Uwe Kleine-König's avatar
      ARM: 7187/1: fix unwinding for XIP kernels · de66a979
      Uwe Kleine-König authored
      
      
      The linker places the unwind tables in readonly sections. So when using
      an XIP kernel these are located in ROM and cannot be modified.
      For that reason the current approach to convert the relative offsets in
      the unwind index to absolute addresses early in the boot process doesn't
      work with XIP.
      
      The offsets in the unwind index section are signed 31 bit numbers and
      the structs are sorted by this offset. So it first has offsets between
      0x40000000 and 0x7fffffff (i.e. the negative offsets) and then offsets
      between 0x00000000 and 0x3fffffff. When seperating these two blocks the
      numbers are sorted even when interpreting the offsets as unsigned longs.
      
      So determine the first non-negative entry once and track that using the
      new origin pointer. The actual bisection can then use a plain unsigned
      long comparison. The only thing that makes the new bisection more
      complicated is that the offsets are relative to their position in the
      index section, so the key to search needs to be adapted accordingly in
      each step.
      
      Moreover several consts are added to catch future writes and rename the
      member "addr" of struct unwind_idx to "addr_offset" to better match the
      new semantic. (This has the additional benefit of breaking eventual
      users at compile time to make them aware of the change.)
      
      In my tests the new algorithm was a tad faster than the original and has
      the additional upside of not needing the initial conversion and so saves
      some boot time and it's possible to unwind even earlier.
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Acked-by: default avatarNicolas Pitre <nico@fluxnic.net>
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      de66a979
    • Dave Martin's avatar
      ARM: 7173/1: Add optimised swahb32() byteswap helper for v6 and above · df0e74da
      Dave Martin authored
      
      
      ARMv6 and later processors have the REV16 instruction, which swaps
      the bytes within each halfword of a register value.
      
      This is already used to implement swab16(), but since the native
      operation performaed by REV16 is actually swahb32(), this patch
      renames the existing swab16() helper accordingly and defines
      __arch_swab16() in terms of it.  This allows calls to both swab16()
      and swahb32() to be optimised.
      
      The compiler's generated code might improve someday, but as of
      4.5.2 the code generated for pure C implementing these 16-bit
      bytesswaps remains pessimal.
      
      swahb32() is useful for converting 32-bit Thumb instructions
      between integer and memory representation on BE8 platforms (among
      other uses).
      Signed-off-by: default avatarDave Martin <dave.martin@linaro.org>
      Reviewed-by: default avatarNicolas Pitre <nico@linaro.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      df0e74da
    • Rob Herring's avatar
      ARM: 7169/1: topdown mmap support · 7dbaa466
      Rob Herring authored
      Similar to other architectures, this adds topdown mmap support in user
      process address space allocation policy. This allows mmap sizes greater
      than 2GB. This support is largely copied from MIPS and the generic
      implementations.
      
      The address space randomization is moved into arch_pick_mmap_layout.
      
      Tested on V-Express with ubuntu and a mmap test from here:
      https://bugs.launchpad.net/bugs/861296
      
      Signed-off-by: default avatarRob Herring <rob.herring@calxeda.com>
      Acked-by: default avatarNicolas Pitre <nico@linaro.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      7dbaa466
    • Kevin Hilman's avatar
      ARM: 7140/1: remove NR_IRQS dependency for ARM-specific HARDIRQ_BITS definition · 023bfa3d
      Kevin Hilman authored
      
      
      As a first step towards removing NR_IRQS, remove the ARM customization
      of HARDIRQ_BITS based on NR_IRQS.
      
      The generic code in <linux/hardirq.h> already has a default value of
      10 for HARDIRQ_BITS which is the max used on ARM, so let's just remove
      the NR_IRQS based customization and use the generic default.
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      Acked-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      023bfa3d
  23. 02 Dec, 2011 1 commit