)]}'
{
  "commit": "b445e26cbf784cdba10f2b6c3e2cd3ee7bab360a",
  "tree": "8c8c377a7e5cbf608d730ec45e091e4f2b826a82",
  "parents": [
    "020f46a39eb7b99a575b9f4d105fce2b142acdf1"
  ],
  "author": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Mon Jun 27 15:42:04 2005 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Mon Jun 27 15:42:04 2005 -0700"
  },
  "message": "[SPARC64]: Avoid membar instructions in delay slots.\n\nIn particular, avoid membar instructions in the delay\nslot of a jmpl instruction.\n\nUltraSPARC-I, II, IIi, and IIe have a bug, documented in\nthe UltraSPARC-IIi User\u0027s Manual, Appendix K, Erratum 51\n\nThe long and short of it is that if the IMU unit misses\non a branch or jmpl, and there is a store buffer synchronizing\nmembar in the delay slot, the chip can stop fetching instructions.\n\nIf interrupts are enabled or some other trap is enabled, the\nchip will unwedge itself, but performance will suffer.\n\nWe already had a workaround for this bug in a few spots, but\nit\u0027s better to have the entire tree sanitized for this rule.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a47f2d0b1a29b326df9c813f53f455c4a5074c25",
      "old_mode": 33188,
      "old_path": "arch/sparc64/kernel/entry.S",
      "new_id": "ffe717ab7f83f1a90f3b2f8670a915ac91c9ba25",
      "new_mode": 33188,
      "new_path": "arch/sparc64/kernel/entry.S"
    },
    {
      "type": "modify",
      "old_id": "63496c43fe1736861e36edeeff29a28335fb18c0",
      "old_mode": 33188,
      "old_path": "arch/sparc64/kernel/semaphore.c",
      "new_id": "a809e63f03ef8f63f37ece764d1ee26a3db297b1",
      "new_mode": 33188,
      "new_path": "arch/sparc64/kernel/semaphore.c"
    },
    {
      "type": "modify",
      "old_id": "2c8f9344b4eeac3af10732e1bdd8d6f76de9eb0a",
      "old_mode": 33188,
      "old_path": "arch/sparc64/kernel/trampoline.S",
      "new_id": "3a145fc39cf2d4b4b619bbb1038e50bd383f2bd1",
      "new_mode": 33188,
      "new_path": "arch/sparc64/kernel/trampoline.S"
    },
    {
      "type": "modify",
      "old_id": "da9b520c71894488d844ff71f69c015766ac16ef",
      "old_mode": 33188,
      "old_path": "arch/sparc64/lib/U1memcpy.S",
      "new_id": "bafd2fc07acb181b7861459b721fd8722eb66969",
      "new_mode": 33188,
      "new_path": "arch/sparc64/lib/U1memcpy.S"
    },
    {
      "type": "modify",
      "old_id": "65e328d600a840af2063ff740589172e7c2bbd0a",
      "old_mode": 33188,
      "old_path": "arch/sparc64/lib/VISsave.S",
      "new_id": "4e18989bd60299e67b693f7e2d9070b52d0cb190",
      "new_mode": 33188,
      "new_path": "arch/sparc64/lib/VISsave.S"
    },
    {
      "type": "modify",
      "old_id": "e528b8d1a3e69fc8d57128df8f8d7654a1ef8ab6",
      "old_mode": 33188,
      "old_path": "arch/sparc64/lib/atomic.S",
      "new_id": "faf87c31598bc30f44a42d5a76079db4322096a7",
      "new_mode": 33188,
      "new_path": "arch/sparc64/lib/atomic.S"
    },
    {
      "type": "modify",
      "old_id": "886dcd2b376a0e9d1359b35b04da1124db7746b8",
      "old_mode": 33188,
      "old_path": "arch/sparc64/lib/bitops.S",
      "new_id": "31afbfe6c1e86864242f7e5bc75f5902a4da4387",
      "new_mode": 33188,
      "new_path": "arch/sparc64/lib/bitops.S"
    },
    {
      "type": "modify",
      "old_id": "c421e0c653253270c9b5edda838a22134e803c5d",
      "old_mode": 33188,
      "old_path": "arch/sparc64/lib/debuglocks.c",
      "new_id": "f03344cf784e1785efbef5e0b195d89a568549b3",
      "new_mode": 33188,
      "new_path": "arch/sparc64/lib/debuglocks.c"
    },
    {
      "type": "modify",
      "old_id": "7e6fdaebedbab9bf088170e40420307f8f730ed7",
      "old_mode": 33188,
      "old_path": "arch/sparc64/lib/dec_and_lock.S",
      "new_id": "8ee288dd0afc87d9eb18ba92f193f51e2fd9f46b",
      "new_mode": 33188,
      "new_path": "arch/sparc64/lib/dec_and_lock.S"
    },
    {
      "type": "modify",
      "old_id": "174ff7b9164c5493f2062967fdd6ecc165746051",
      "old_mode": 33188,
      "old_path": "arch/sparc64/lib/rwsem.S",
      "new_id": "75f0e6b951d61b9ff5ef5ecf4187bac65ea785bf",
      "new_mode": 33188,
      "new_path": "arch/sparc64/lib/rwsem.S"
    },
    {
      "type": "modify",
      "old_id": "9c5222075da93ac61018cb996f32008178dffcbd",
      "old_mode": 33188,
      "old_path": "arch/sparc64/mm/init.c",
      "new_id": "8fc413cb6acd9116763ce2eb4edcf12d0d765f3c",
      "new_mode": 33188,
      "new_path": "arch/sparc64/mm/init.c"
    },
    {
      "type": "modify",
      "old_id": "7a0934321010afbd603fb46378102b17bcc01bba",
      "old_mode": 33188,
      "old_path": "arch/sparc64/mm/ultra.S",
      "new_id": "7a2431d3abc7e9057d862add7040d97f56849d91",
      "new_mode": 33188,
      "new_path": "arch/sparc64/mm/ultra.S"
    },
    {
      "type": "modify",
      "old_id": "bf2ae90ed3df8ecef35fbb62444675e7ae8fea9e",
      "old_mode": 33188,
      "old_path": "include/asm-sparc64/rwsem.h",
      "new_id": "a1cc94f95984039f4e416686ca5a427964a6bc95",
      "new_mode": 33188,
      "new_path": "include/asm-sparc64/rwsem.h"
    },
    {
      "type": "modify",
      "old_id": "db7581bdb53141a8493991dc02c8bb20af768f1d",
      "old_mode": 33188,
      "old_path": "include/asm-sparc64/spinlock.h",
      "new_id": "9cb93a5c2b4feac61ab2245c9ca17cb74997ded0",
      "new_mode": 33188,
      "new_path": "include/asm-sparc64/spinlock.h"
    },
    {
      "type": "modify",
      "old_id": "9d7613eea8129a58dbbcca8dbaef05f2228f6d66",
      "old_mode": 33188,
      "old_path": "include/asm-sparc64/spitfire.h",
      "new_id": "1aa932773af8464bd5ff779a4375026814165f4b",
      "new_mode": 33188,
      "new_path": "include/asm-sparc64/spitfire.h"
    }
  ]
}
