)]}'
{
  "commit": "ed3768a8d9dc2d345d4f27eb44ee1e4825056c08",
  "tree": "7ca8b45e83fa1eac70b285898e41332b28fe1626",
  "parents": [
    "86e62b93368cffca9111996e3ed9e5b7bf6f0af3"
  ],
  "author": {
    "name": "Dave Martin",
    "email": "dave.martin@linaro.org",
    "time": "Wed Dec 01 15:39:23 2010 +0100"
  },
  "committer": {
    "name": "Russell King",
    "email": "rmk+kernel@arm.linux.org.uk",
    "time": "Mon Dec 20 15:09:12 2010 +0000"
  },
  "message": "ARM: 6516/1: Allow SMP_ON_UP to work with Thumb-2 kernels.\n\n  * __fixup_smp_on_up has been modified with support for the\n    THUMB2_KERNEL case.  For THUMB2_KERNEL only, fixups are split\n    into halfwords in case of misalignment, since we can\u0027t rely on\n    unaligned accesses working before turning the MMU on.\n\n    No attempt is made to optimise the aligned case, since the\n    number of fixups is typically small, and it seems best to keep\n    the code as simple as possible.\n\n  * Add a rotate in the fixup_smp code in order to support\n    CPU_BIG_ENDIAN, as suggested by Nicolas Pitre.\n\n  * Add an assembly-time sanity-check to ALT_UP() to ensure that\n    the content really is the right size (4 bytes).\n\n    (No check is done for ALT_SMP().  Possibly, this could be fixed\n    by splitting the two uses ot ALT_SMP() (ALT_SMP...SMP_UP versus\n    ALT_SMP...SMP_UP_B) into two macros.  In the first case,\n    ALT_SMP needs to expand to \u003e\u003d 4 bytes, not \u003d\u003d 4.)\n\n  * smp_mpidr.h (which implements ALT_SMP()/ALT_UP() manually due\n    to macro limitations) has not been modified: the affected\n    instruction (mov) has no 16-bit encoding, so the correct\n    instruction size is satisfied in this case.\n\n  * A \"mode\" parameter has been added to smp_dmb:\n\n    smp_dmb arm @ assumes 4-byte instructions (for ARM code, e.g. kuser)\n    smp_dmb     @ uses W() to ensure 4-byte instructions for ALT_SMP()\n\n    This avoids assembly failures due to use of W() inside smp_dmb,\n    when assembling pure-ARM code in the vectors page.\n\n    There might be a better way to achieve this.\n\n  * Kconfig: make SMP_ON_UP depend on\n    (!THUMB2_KERNEL || !BIG_ENDIAN) i.e., THUMB2_KERNEL is now\n    supported, but only if !BIG_ENDIAN (The fixup code for Thumb-2\n    currently assumes little-endian order.)\n\nTested using a single generic realview kernel on:\n\tARM RealView PB-A8 (CONFIG_THUMB2_KERNEL\u003d{n,y})\n\tARM RealView PBX-A9 (SMP)\n\nSigned-off-by: Dave Martin \u003cdave.martin@linaro.org\u003e\nAcked-by: Nicolas Pitre \u003cnicolas.pitre@linaro.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "db524e75c4a21e4f45bc4b72e459adcdaf1dda4b",
      "old_mode": 33188,
      "old_path": "arch/arm/Kconfig",
      "new_id": "290a4b57617f74c53e1bc59432f8f63eb13d76e9",
      "new_mode": 33188,
      "new_path": "arch/arm/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "749bb6622404b3aed8e9234d2c8ff67e13a731b1",
      "old_mode": 33188,
      "old_path": "arch/arm/include/asm/assembler.h",
      "new_id": "72d3389e9c12ee3f838e06947c4eb47d3a4e31ac",
      "new_mode": 33188,
      "new_path": "arch/arm/include/asm/assembler.h"
    },
    {
      "type": "modify",
      "old_id": "955cf5f539ed958b7fb0e625e16f187af909dd97",
      "old_mode": 33188,
      "old_path": "arch/arm/kernel/entry-armv.S",
      "new_id": "7f22a11a5105011f50399f395c9d6811785bdb8e",
      "new_mode": 33188,
      "new_path": "arch/arm/kernel/entry-armv.S"
    },
    {
      "type": "modify",
      "old_id": "fd94e4e82fc92c41508d3b681a5c0f483985616f",
      "old_mode": 33188,
      "old_path": "arch/arm/kernel/head.S",
      "new_id": "359e54e83bd5c5e9541651a4ae565a5af53d03cc",
      "new_mode": 33188,
      "new_path": "arch/arm/kernel/head.S"
    }
  ]
}
