)]}'
{
  "commit": "4dcc29e1574d88f4465ba865ed82800032f76418",
  "tree": "5579a225a6782f0f5014cbbe6938847b7f3cd53f",
  "parents": [
    "e490517a039a99d692cb3a5561941b0a5f576172"
  ],
  "author": {
    "name": "Tony Luck",
    "email": "tony.luck@intel.com",
    "time": "Tue May 27 13:23:16 2008 -0700"
  },
  "committer": {
    "name": "Tony Luck",
    "email": "tony.luck@intel.com",
    "time": "Tue May 27 13:24:39 2008 -0700"
  },
  "message": "[IA64] Workaround for RSE issue\n\nProblem: An application violating the architectural rules regarding\noperation dependencies and having specific Register Stack Engine (RSE)\nstate at the time of the violation, may result in an illegal operation\nfault and invalid RSE state.  Such faults may initiate a cascade of\nrepeated illegal operation faults within OS interruption handlers.\nThe specific behavior is OS dependent.\n\nImplication: An application causing an illegal operation fault with\nspecific RSE state may result in a series of illegal operation faults\nand an eventual OS stack overflow condition.\n\nWorkaround: OS interruption handlers that switch to kernel backing\nstore implement a check for invalid RSE state to avoid the series\nof illegal operation faults.\n\nThe core of the workaround is the RSE_WORKAROUND code sequence\ninserted into each invocation of the SAVE_MIN_WITH_COVER and\nSAVE_MIN_WITH_COVER_R19 macros.  This sequence includes hard-coded\nconstants that depend on the number of stacked physical registers\nbeing 96.  The rest of this patch consists of code to disable this\nworkaround should this not be the case (with the presumption that\nif a future Itanium processor increases the number of registers, it\nwould also remove the need for this patch).\n\nMove the start of the RBS up to a mod32 boundary to avoid some\ncorner cases.\n\nThe dispatch_illegal_op_fault code outgrew the spot it was\nsquatting in when built with this patch and CONFIG_VIRT_CPU_ACCOUNTING\u003dy\nMove it out to the end of the ivt.\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6678c49daba3c40fcf9972c572ad6087e4690ce5",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/ivt.S",
      "new_id": "80b44ea052d74420abca826c119d8ee192743144",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/ivt.S"
    },
    {
      "type": "modify",
      "old_id": "7c548ac52bbc0956b4683a197f713c29436d0c71",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/minstate.h",
      "new_id": "74b6d670aaef2d42a4c7574a3543b3fb26e6dd98",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/minstate.h"
    },
    {
      "type": "modify",
      "old_id": "e0dca8743dbb11b87031b7ec9e8e845638a7bb4a",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/patch.c",
      "new_id": "b83b2c516008d4cdac5db340a53c74dfa8f4444a",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/patch.c"
    },
    {
      "type": "modify",
      "old_id": "e9596cd0cdab21595f7c5f85d7da7d2952beb5d6",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/setup.c",
      "new_id": "f48a809c686d899be2d431a96487e292329dc9c8",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/setup.c"
    },
    {
      "type": "modify",
      "old_id": "80622acc95deea98c83f5e2ce97cc11cc4bc883a",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/vmlinux.lds.S",
      "new_id": "5929ab10a289d8adeec09ee13ba0a4b03ed4d2ca",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/vmlinux.lds.S"
    },
    {
      "type": "modify",
      "old_id": "a71543084fb41dc51cd90b168824a6a5a4b5eb26",
      "old_mode": 33188,
      "old_path": "include/asm-ia64/patch.h",
      "new_id": "295fe6ab4584c4db9585c6a84ff9ac450d590c77",
      "new_mode": 33188,
      "new_path": "include/asm-ia64/patch.h"
    },
    {
      "type": "modify",
      "old_id": "4b2a8d40ebc5ed398538a5aa63650605b561d803",
      "old_mode": 33188,
      "old_path": "include/asm-ia64/ptrace.h",
      "new_id": "15f8dcfe6eeef8d675d07cb13d7aa71ceea0fc00",
      "new_mode": 33188,
      "new_path": "include/asm-ia64/ptrace.h"
    },
    {
      "type": "modify",
      "old_id": "dc42a359894fe759617fdf47b5e6a048eda8190b",
      "old_mode": 33188,
      "old_path": "include/asm-ia64/sections.h",
      "new_id": "7286e4a9fe8449e1b02e5e762eb9dc7e1aeb53ce",
      "new_mode": 33188,
      "new_path": "include/asm-ia64/sections.h"
    }
  ]
}
