)]}'
{
  "commit": "85a0ee342e0c06c19d78fdf48307211c6cf18fcb",
  "tree": "60022c0dca3c2dfc3084d1b301d349f6dcab5363",
  "parents": [
    "630bf20747e27391b20f137a5be2edb4235ca8fa"
  ],
  "author": {
    "name": "Simon Horman",
    "email": "horms@verge.net.au",
    "time": "Sat Oct 18 20:28:29 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Mon Oct 20 08:52:40 2008 -0700"
  },
  "message": "kdump: add is_vmcore_usable() and vmcore_unusable()\n\nThe usage of elfcorehdr_addr has changed recently such that being set to\nELFCORE_ADDR_MAX is used by is_kdump_kernel() to indicate if the code is\nexecuting in a kernel executed as a crash kernel.\n\nHowever, arch/ia64/kernel/setup.c:reserve_elfcorehdr will rest\nelfcorehdr_addr to ELFCORE_ADDR_MAX on error, which means any subsequent\ncalls to is_kdump_kernel() will return 0, even though they should return\n1.\n\nOk, at this point in time there are no subsequent calls, but I think its\nfair to say that there is ample scope for error or at the very least\nconfusion.\n\nThis patch add an extra state, ELFCORE_ADDR_ERR, which indicates that\nelfcorehdr_addr was passed on the command line, and thus execution is\ntaking place in a crashdump kernel, but vmcore can\u0027t be used for some\nreason.  This is tested for using is_vmcore_usable() and set using\nvmcore_unusable().  A subsequent patch makes use of this new code.\n\nTo summarise, the states that elfcorehdr_addr can now be in are as follows:\n\nELFCORE_ADDR_MAX: not a crashdump kernel\nELFCORE_ADDR_ERR: crashdump kernel but vmcore is unusable\nany other value:  crash dump kernel and vmcore is usable\n\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a0286be6c2355250f86757f8d853b7189d3ca392",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/setup.c",
      "new_id": "60286522d54a80e348a57bc83a1d31883dc163f5",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/setup.c"
    },
    {
      "type": "modify",
      "old_id": "4c65ca432d30797d760493b1fd85bb296fdda1b2",
      "old_mode": 33188,
      "old_path": "fs/proc/vmcore.c",
      "new_id": "cd9ca67f841bd38d6256f14eccfd3fd6d8174522",
      "new_mode": 33188,
      "new_path": "fs/proc/vmcore.c"
    },
    {
      "type": "modify",
      "old_id": "de027d1db74543444981ebaf567af219abb88f16",
      "old_mode": 33188,
      "old_path": "include/linux/crash_dump.h",
      "new_id": "0acf3b737e2ea179c30d9c9fa69076fbdf488a1c",
      "new_mode": 33188,
      "new_path": "include/linux/crash_dump.h"
    }
  ]
}
