)]}'
{
  "log": [
    {
      "commit": "73f05330497b98c45d157b7d0c60673798bb4c3b",
      "tree": "67fc16c0f55c482882aea49eaa1d8d95b23722e0",
      "parents": [
        "1a05e4678724c4a5fe7b9e4e208b616dfe8c3a32",
        "8cdde126aa60ced0d63ff137378e09dd01dfadda"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 16:12:23 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 16:14:02 2012 -0400"
      },
      "message": "Merge branch \u0027apei\u0027 into release\n\nConflicts:\n\tdrivers/acpi/apei/apei-base.c\n\nThis was a conflict between\n\n15afae604651d4e17652d2ffb56f5e36f991cfef\n(CPI, APEI: Fix incorrect APEI register bit width check and usage)\n\nand\n\n653f4b538f66d37db560e0f56af08117136d29b7\n(ACPICA: Expand OSL memory read/write interfaces to 64 bits)\n\nThe former changed a parameter in the call to acpi_os_read_memory64()\nand the later replaced all calls to acpi_os_read_memory64()\nwith calls to acpi_os_read_memory().\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "37d2a3622d249d83413c92a1cd9e94b5237d0fcc",
      "tree": "81456457d095b0615dd1664b12c880fe8859e449",
      "parents": [
        "15afae604651d4e17652d2ffb56f5e36f991cfef"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "liuj97@gmail.com",
        "time": "Wed Feb 15 00:01:44 2012 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 04:01:26 2012 -0400"
      },
      "message": "CPER failed to handle generic error records with multiple sections\n\nThe function apei_estatus_print() and apei_estatus_check() forget to move ahead\nthe gdata pointer when dealing with multiple generic error data sections.\n\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "15afae604651d4e17652d2ffb56f5e36f991cfef",
      "tree": "3386a102666376d1d987549d866f8232ec1aa8b1",
      "parents": [
        "6ef19ab7fa1535d35006535dba6c407dad2d845c"
      ],
      "author": {
        "name": "Gary Hade",
        "email": "garyhade@us.ibm.com",
        "time": "Wed Mar 21 15:28:50 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 03:30:19 2012 -0400"
      },
      "message": "ACPI, APEI: Fix incorrect APEI register bit width check and usage\n\nThe current code incorrectly assumes that\n(1) the APEI register bit width is always 8, 16, 32, or 64 and\n(2) the APEI register bit width is always equal to the APEI\n    register access width.\n\nERST serialization instructions entries such as:\n\n[030h 0048   1]                       Action : 00 [Begin Write Operation]\n[031h 0049   1]                  Instruction : 03 [Write Register Value]\n[032h 0050   1]        Flags (decoded below) : 01\n                      Preserve Register Bits : 1\n[033h 0051   1]                     Reserved : 00\n\n[034h 0052  12]              Register Region : [Generic Address Structure]\n[034h 0052   1]                     Space ID : 00 [SystemMemory]\n[035h 0053   1]                    Bit Width : 03\n[036h 0054   1]                   Bit Offset : 00\n[037h 0055   1]         Encoded Access Width : 03 [DWord Access:32]\n[038h 0056   8]                      Address : 000000007F2D7038\n\n[040h 0064   8]                        Value : 0000000000000001\n[048h 0072   8]                         Mask : 0000000000000007\n\nbreak this assumption by yielding:\n  [Firmware Bug]: APEI: Invalid bit width in GAR [0x7f2d7038/3/0]\n\nI have found no ACPI specification requirements corresponding\nwith the above assumptions.  There is even a good example in\nthe Serialization Instruction Entries section (ACPI 4.0 section\n17.4,1.2, ACPI 4.0a section 2.5.1.2, ACPI 5.0 section 18.5.1.2)\nthat mentions a serialization instruction with a bit range of\n[6:2] which is 5 bits wide, _not_ 8, 16, 32, or 64 bits wide.\n\nCompile and boot tested with 3.3.0-rc7 on a IBM HX5.\n\nSigned-off-by: Gary Hade \u003cgaryhade@us.ibm.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "ee49089dc7d9fc78db51e18f4fba68e88edc49a4",
      "tree": "998a8223c8f1457d5d1c9146d6602cb24c810688",
      "parents": [
        "185210cc754754c2504afcef9d1c9cd4b8761a9c"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Thu Mar 15 16:53:36 2012 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 03:30:18 2012 -0400"
      },
      "message": "ACPI, APEI, EINJ, new parameter to control trigger action\n\nSome APEI firmware implementation will access injected address\nspecified in param1 to trigger the error when injecting memory\nerror, which means if one SRAR error is injected, the crash\nalways happens because it is executed in kernel context. This\nnew parameter can disable trigger action and control is taken\nover by the user. In this way, an SRAR error can happen in user\ncontext instead of crashing the system. This function is highly\ndepended on BIOS implementation so please ensure you know the\nBIOS trigger procedure before you enable this switch.\n\nv2:\n  notrigger should be created together with param1/param2\n\nTested-by: Tony Luck \u003ctony.luck@lintel.com\u003e\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "185210cc754754c2504afcef9d1c9cd4b8761a9c",
      "tree": "81ac9a251dfd1100d3ed85c3161fbbcd488f43c3",
      "parents": [
        "7ed28f2ed43ece424ff2fa4dedac7928bb37a23a"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Sat Mar 03 11:56:43 2012 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 03:30:18 2012 -0400"
      },
      "message": "ACPI, APEI, EINJ, limit the range of einj_param\n\nOn the platforms with ACPI4.x support, parameter extension\nis not always doable, which means only parameter extension\nis enabled, einj_param can take effect.\n\nv2-\u003ev1: stopping early in einj_get_parameter_address for einj_param\n\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "7ed28f2ed43ece424ff2fa4dedac7928bb37a23a",
      "tree": "89228bebc7aa109829c14d78f91aae1218087adb",
      "parents": [
        "c16fa4f2ad19908a47c63d8fa436a1178438c7e7"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "liuj97@gmail.com",
        "time": "Wed Mar 07 22:15:06 2012 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 03:30:17 2012 -0400"
      },
      "message": "ACPI, APEI, Fix ERST header length check\n\nThis fixes a trivial copy \u0026 paste error in ERST header length check.\nIt\u0027s just for future safety because sizeof(struct acpi_table_einj)\nequals to sizeof(struct acpi_table_erst) with current ACPI5.0\nspecification. It applies to v3.3-rc6.\n\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nAcked-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "653f4b538f66d37db560e0f56af08117136d29b7",
      "tree": "1728249946368a4befa5ade048bafeba9d9fddce",
      "parents": [
        "33620c5419e8a11814dd11e02a80e6ef77a43407"
      ],
      "author": {
        "name": "Bob Moore",
        "email": "robert.moore@intel.com",
        "time": "Tue Feb 14 18:29:55 2012 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Mar 22 01:44:54 2012 -0400"
      },
      "message": "ACPICA: Expand OSL memory read/write interfaces to 64 bits\n\nThis change expands acpi_os_read_memory and acpi_os_write_memory to a\nfull 64 bits. This allows 64 bit transfers via the acpi_read and\nacpi_write interfaces. Note: The internal acpi_hw_read and acpi_hw_write\ninterfaces remain at 32 bits, because 64 bits is not needed to\naccess the standard ACPI registers.\n\nSigned-off-by: Bob Moore \u003crobert.moore@intel.com\u003e\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "459413db33d6c99fc13d60f88899fb72d2530ed3",
      "tree": "3d4d5a9d0785e61dbc4dd85e9348ad48b9ed29f9",
      "parents": [
        "29924b9f8f39e37275cff93740835d28b9e6fb36"
      ],
      "author": {
        "name": "Luck, Tony",
        "email": "tony.luck@intel.com",
        "time": "Mon Jan 23 15:27:56 2012 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Jan 23 19:39:10 2012 -0500"
      },
      "message": "Use acpi_os_map_memory() instead of ioremap() in einj driver\n\nioremap() has become more picky and is now spitting out console messages like:\n\n ioremap error for 0xbddbd000-0xbddbe000, requested 0x10, got 0x0\n\nwhen loading the einj driver.  What we are trying to so here is map\na couple of data structures that the EINJ table points to. Perhaps\nacpi_os_map_memory() is a better tool for this?\nMost importantly it works, but as a side benefit it maps the structures\ninto kernel virtual space so we can access them with normal C memory\ndereferences, so instead of using:\n\twritel(param1, \u0026v5param-\u003eapicid);\nwe can use the more natural:\n\tv5param-\u003eapicid \u003d param1;\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "29924b9f8f39e37275cff93740835d28b9e6fb36",
      "tree": "9e825881abbad761bef2b8cfba7731a2a1ef47cd",
      "parents": [
        "4c40aed869a200a621b53bcb491c5ee8a34ef5f1"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Fri Jan 20 10:57:14 2012 +0300"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Jan 23 19:38:52 2012 -0500"
      },
      "message": "ACPI, APEI, EINJ, cleanup 0 vs NULL confusion\n\nThis function is returning pointers.  Sparse complains here:\ndrivers/acpi/apei/einj.c:262:32: warning:\n\tUsing plain integer as NULL pointer\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nAcked-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4c40aed869a200a621b53bcb491c5ee8a34ef5f1",
      "tree": "a40591412b41866bf6b4403be6d64f570329973d",
      "parents": [
        "1001a3a307ca2425c028fd23b8ad05ad8bb048dd"
      ],
      "author": {
        "name": "Niklas Söderlund",
        "email": "niklas.soderlund@ericsson.com",
        "time": "Mon Jan 09 16:49:44 2012 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Jan 23 19:31:11 2012 -0500"
      },
      "message": "ACPI, APEI, EINJ Allow empty Trigger Error Action Table\n\nAccording to the ACPI spec [1] section 18.6.4 the TRIGGER_ERROR action\ntable can consists of zero elements.\n\n[1] Advanced Configuration and Power Interface Specification\n    Revision 5.0, December 6, 2011\n\thttp://www.acpi.info/DOWNLOADS/ACPIspec50.pdf\n\nSigned-off-by: Niklas Söderlund \u003cniklas.soderlund@ericsson.com\u003e\nAcked-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "e615bf5b5519862ab66172f4dec7455d6543a578",
      "tree": "c6d37861dc376b55bc5c4ece88f57faf9d51e99a",
      "parents": [
        "dcd6c92267155e70a94b3927bce681ce74b80d1f"
      ],
      "author": {
        "name": "Myron Stowe",
        "email": "mstowe@redhat.com",
        "time": "Fri Jan 20 19:13:24 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jan 21 01:08:17 2012 -0500"
      },
      "message": "ACPI, APEI: Add 64-bit read/write support for APEI on i386\n\nBase ACPI (CA) currently does not support atomic 64-bit reads and writes\n(acpi_read() and acpi_write() split 64-bit loads/stores into two\n32-bit transfers) yet APEI expects 64-bit transfer capability, even\nwhen running on 32-bit systems.\n\nThis patch implements 64-bit read and write routines for APEI usage.\n\nThis patch re-factors similar functionality introduced in commit\n04c25997c97, bringing it into the ACPI subsystem in preparation for\nremoving ./drivers/acpi/atomicio.[ch].  In the implementation I have\nreplicated acpi_os_read_memory() and acpi_os_write_memory(), creating\n64-bit versions for APEI to utilize, as opposed to something more\nelegant.  My thinking is that we should attempt to see if we can get\nACPI\u0027s CA/OSL changed so that the existing acpi_read() and acpi_write()\ninterfaces are natively 64-bit capable and then subsequently remove the\nreplication.\n\nSigned-off-by: Myron Stowe \u003cmyron.stowe@redhat.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "507a03c1cba0e32309223d23d19a1bfc0916c140",
      "tree": "8da15f9c635733948a73bfe35cb50e1195702952",
      "parents": [
        "be405411f712489f2f780ab085e1069e8fb85f19",
        "79ba0db69c5887f1ad4ed51d58894e7e889084b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 15:51:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 15:51:48 2012 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\nThis includes initial support for the recently published ACPI 5.0 spec.\nIn particular, support for the \"hardware-reduced\" bit that eliminates\nthe dependency on legacy hardware.\n\nAPEI has patches resulting from testing on real hardware.\n\nPlus other random fixes.\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (52 commits)\n  acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec\n  intel_idle: Split up and provide per CPU initialization func\n  ACPI processor: Remove unneeded variable passed by acpi_processor_hotadd_init V2\n  ACPI processor: Remove unneeded cpuidle_unregister_driver call\n  intel idle: Make idle driver more robust\n  intel_idle: Fix a cast to pointer from integer of different size warning in intel_idle\n  ACPI: kernel-parameters.txt : Add intel_idle.max_cstate\n  intel_idle: remove redundant local_irq_disable() call\n  ACPI processor: Fix error path, also remove sysdev link\n  ACPI: processor: fix acpi_get_cpuid for UP processor\n  intel_idle: fix API misuse\n  ACPI APEI: Convert atomicio routines\n  ACPI: Export interfaces for ioremapping/iounmapping ACPI registers\n  ACPI: Fix possible alignment issues with GAS \u0027address\u0027 references\n  ACPI, ia64: Use SRAT table rev to use 8bit or 16/32bit PXM fields (ia64)\n  ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64)\n  ACPI: Store SRAT table revision\n  ACPI, APEI, Resolve false conflict between ACPI NVS and APEI\n  ACPI, Record ACPI NVS regions\n  ACPI, APEI, EINJ, Refine the fix of resource conflict\n  ...\n"
    },
    {
      "commit": "79ba0db69c5887f1ad4ed51d58894e7e889084b0",
      "tree": "72948278c60e0997ad2e7cc0181d469c61b62fa8",
      "parents": [
        "cb7971756b901abd61d47f6eb1011066abfb348d",
        "c130bd6f82e5dda28b1a19741c4c2fe269713199",
        "5c2a9f06a9cd7194f884cdc88144866235dec07d",
        "65b7f839ceecc0a36c7969c0c9151d5748cd4242",
        "9f10f6a520deb3639fac78d81151a3ade88b4e7f",
        "553575f1ae048aa44682b46b3c51929a0b3ad337"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 18 01:15:54 2012 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 18 01:15:54 2012 -0500"
      },
      "message": "Merge branches \u0027einj\u0027, \u0027intel_idle\u0027, \u0027misc\u0027, \u0027srat\u0027 and \u0027turbostat-ivb\u0027 into release\n"
    },
    {
      "commit": "c130bd6f82e5dda28b1a19741c4c2fe269713199",
      "tree": "7561dc50d4c256ca9eb19cd55569bc7867289af7",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610"
      ],
      "author": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Tue Jan 17 12:10:16 2012 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 18 01:14:17 2012 -0500"
      },
      "message": "acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec\n\nACPI 5.0 provides extensions to the EINJ mechanism to specify the\ntarget for the error injection - by APICID for cpu related errors,\nby address for memory related errors, and by segment/bus/device/function\nfor PCIe related errors. Also extensions for vendor specific error\ninjections.\n\nTested-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "700130b41f4ee54520ac2ef2f7f1d072789711a4",
      "tree": "8fe06ea2fdce1afab67db16ca9ecf8b25e150ff5",
      "parents": [
        "6f68c91c55ea3576d366797fa8d45e31c4aa79f8"
      ],
      "author": {
        "name": "Myron Stowe",
        "email": "mstowe@redhat.com",
        "time": "Mon Nov 07 16:23:41 2011 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 17 04:36:40 2012 -0500"
      },
      "message": "ACPI APEI: Convert atomicio routines\n\nAPEI needs memory access in interrupt context.  The obvious choice is\nacpi_read(), but originally it couldn\u0027t be used in interrupt context\nbecause it makes temporary mappings with ioremap().  Therefore, we added\ndrivers/acpi/atomicio.c, which provides:\n    acpi_pre_map_gar()     -- ioremap in process context\n\tacpi_atomic_read()     -- memory access in interrupt context\n\tacpi_post_unmap_gar()  -- iounmap\n\nLater we added acpi_os_map_generic_address() (2971852) and enhanced\nacpi_read() so it works in interrupt context as long as the address has\nbeen previously mapped (620242a).  Now this sequence:\n    acpi_os_map_generic_address()    -- ioremap in process context\n    acpi_read()/apei_read()          -- now OK in interrupt context\n    acpi_os_unmap_generic_address()\nis equivalent to what atomicio.c provides.\n\nThis patch introduces apei_read() and apei_write(), which currently are\nfunctional equivalents of acpi_read() and acpi_write().  This is mainly\nproactive, to prevent APEI breakages if acpi_read() and acpi_write()\nare ever augmented to support the \u0027bit_offset\u0027 field of GAS, as APEI\u0027s\n__apei_exec_write_register() precludes splitting up functionality\nrelated to \u0027bit_offset\u0027 and APEI\u0027s \u0027mask\u0027 (see its\nAPEI_EXEC_PRESERVE_REGISTER block).\n\nWith apei_read() and apei_write() in place, usages of atomicio routines\nare converted to apei_read()/apei_write() and existing calls within\nosl.c and the CA, based on the re-factoring that was done in an earlier\npatch series - http://marc.info/?l\u003dlinux-acpi\u0026m\u003d128769263327206\u0026w\u003d2:\n    acpi_pre_map_gar()     --\u003e  acpi_os_map_generic_address()\n    acpi_post_unmap_gar()  --\u003e  acpi_os_unmap_generic_address()\n    acpi_atomic_read()     --\u003e  apei_read()\n    acpi_atomic_write()    --\u003e  apei_write()\n\nNote that acpi_read() and acpi_write() currently use \u0027bit_width\u0027\nfor accessing GARs which seems incorrect.  \u0027bit_width\u0027 is the size of\nthe register, while \u0027access_width\u0027 is the size of the access the\nprocessor must generate on the bus.  The \u0027access_width\u0027 may be larger,\nfor example, if the hardware only supports 32-bit or 64-bit reads.  I\nwanted to minimize any possible impacts with this patch series so I\ndid *not* change this behavior.\n\nSigned-off-by: Myron Stowe \u003cmyron.stowe@redhat.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4134b8c8811f23aa8a281db50dcee64dda414736",
      "tree": "92b5c931590dba047f6634b401a45b6f8ccd1aed",
      "parents": [
        "b54ac6d2a25084667da781c7ca2cebef52a2bcdd"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Thu Dec 08 11:25:50 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 17 03:54:46 2012 -0500"
      },
      "message": "ACPI, APEI, Resolve false conflict between ACPI NVS and APEI\n\nSome firmware will access memory in ACPI NVS region via APEI.  That\nis, instructions in APEI ERST/EINJ table will read/write ACPI NVS\nregion.  The original resource conflict checking in APEI code will\ncheck memory/ioport accessed by APEI via general resource management\nmech.  But ACPI NVS region is marked as busy already, so that the\nfalse resource conflict will prevent APEI ERST/EINJ to work.\n\nTo fix this, this patch excludes ACPI NVS regions when APEI components\nrequest resources.  So that they will not conflict with ACPI NVS\nregions.\n\nReported-and-tested-by: Pavel Ivanov \u003cpaivanof@gmail.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "b4e008dc53a31cb4bf6a12d9dbaf1d5c6070a838",
      "tree": "32098721489d63bdd571bd31df07770b06744a14",
      "parents": [
        "fdea163d8c17ba08814142259a467ba3e899010d"
      ],
      "author": {
        "name": "Xiao, Hui",
        "email": "hui.xiao@linux.intel.com",
        "time": "Thu Dec 08 11:25:48 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 17 03:54:41 2012 -0500"
      },
      "message": "ACPI, APEI, EINJ, Refine the fix of resource conflict\n\nCurrent fix for resource conflict is to remove the address region \u003cparam1 \u0026\nparam2, ~param2+1\u003e from trigger resource, which is highly relies on valid user\ninput. This patch is trying to avoid such potential issues by fetching the\nexact address region from trigger action table entry.\n\nSigned-off-by: Xiao, Hui \u003chui.xiao@linux.intel.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "fdea163d8c17ba08814142259a467ba3e899010d",
      "tree": "a512e00b3e569a2ce5d5456bcc8ef9a30020075f",
      "parents": [
        "76da3fb3575e39fb23b2c072997ccd1187a2ce9d"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Thu Dec 08 11:25:47 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 17 03:54:38 2012 -0500"
      },
      "message": "ACPI, APEI, EINJ, Fix resource conflict on some machine\n\nSome APEI firmware implementation will access injected address\nspecified in param1 to trigger the error when injecting memory error.\nThis will cause resource conflict with RAM.\n\nOn one of our testing machine, if injecting at memory address\n0x10000000, the following error will be reported in dmesg:\n\n  APEI: Can not request iomem region \u003c0000000010000000-0000000010000008\u003e for GARs.\n\nThis patch removes the injecting memory address range from trigger\ntable resources to avoid conflict.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nTested-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "46d12f0bcb17b2de89a059114349d472b7eb1783",
      "tree": "a87b3aff8d51c483c2c48e51106fa9a2f9b50a68",
      "parents": [
        "5ba82ab534a325d310fe02af1c149f1072792c7b"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Thu Dec 08 11:25:45 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 17 03:54:33 2012 -0500"
      },
      "message": "ACPI, APEI, Printk queued error record before panic\n\nBecause printk is not safe inside NMI handler, the recoverable error\nrecords received in NMI handler will be queued to be printked in a\ndelayed IRQ context via irq_work.  If a fatal error occurs after the\nrecoverable error and before the irq_work processed, we lost a error\nreport.\n\nTo solve the issue, the queued error records are printked in NMI\nhandler if system will go panic.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "5ba82ab534a325d310fe02af1c149f1072792c7b",
      "tree": "a92545ade1a4898431dfd0f6ad9897c6c03931cb",
      "parents": [
        "ad6861547b52ad7c31eacc336b79ac91d7fded75"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Thu Dec 08 11:25:44 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 17 03:54:31 2012 -0500"
      },
      "message": "ACPI, APEI, GHES, Distinguish interleaved error report in kernel log\n\nIn most cases, printk only guarantees messages from different printk\ncalling will not be interleaved between each other.  But, one APEI\nGHES hardware error report will involve multiple printk calling,\nnormally each for one line.  So it is possible that the hardware error\nreport comes from different generic hardware error source will be\ninterleaved.\n\nIn this patch, a sequence number is prefixed to each line of error\nreport.  So that, even if they are interleaved, they still can be\ndistinguished by the prefixed sequence number.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "ad6861547b52ad7c31eacc336b79ac91d7fded75",
      "tree": "1654c952dc8c30e650883d79466a8f6386ec7c0c",
      "parents": [
        "46b91e379f7180b482b789fbe615946d91e3a07f"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Thu Dec 08 11:25:43 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 17 03:54:29 2012 -0500"
      },
      "message": "ACPI, APEI, Remove table not found message\n\nBecause APEI tables are optional, these message may confuse users, for\nexample,\n\nhttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/599715\n\nReported-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "46b91e379f7180b482b789fbe615946d91e3a07f",
      "tree": "9740efda763a754afe07f2763bf1e9313fbb8692",
      "parents": [
        "a654e5ee4f2213844d23361eda4955fe9efaf35f"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bhelgaas@google.com",
        "time": "Thu Dec 08 11:25:42 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 17 03:54:26 2012 -0500"
      },
      "message": "ACPI, APEI, Print resource errors in conventional format\n\nUse the normal %pR-like format for MMIO and I/O port ranges.\n\nSigned-off-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "a654e5ee4f2213844d23361eda4955fe9efaf35f",
      "tree": "79e99e3314289cd3e2310e0c5c5aa8f579c12d2d",
      "parents": [
        "04c25997c97e57d95d1f5a7a6e5fff2411dbd48b"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Thu Dec 08 11:25:41 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 17 03:54:21 2012 -0500"
      },
      "message": "ACPI, APEI, GHES: Add PCIe AER recovery support\n\naer_recover_queue() is called when recoverable PCIe AER errors are\nnotified by firmware to do the recovery work.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "90ab5ee94171b3e28de6bb42ee30b527014e0be7",
      "tree": "fcf89889f6e881f2b231d3d20287c08174ce4b54",
      "parents": [
        "476bc0015bf09dad39d36a8b19f76f0c181d1ec9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:20 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:20 2012 +1030"
      },
      "message": "module_param: make bool parameters really bool (drivers \u0026 misc)\n\nmodule_param(bool) used to counter-intuitively take an int.  In\nfddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy\ntrick.\n\nIt\u0027s time to remove the int/unsigned int option.  For this version\nit\u0027ll simply give a warning, but it\u0027ll break next kernel version.\n\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3d6d8d20ec4fd3b256632edb373a9c504724b8a9",
      "tree": "6bb1a530bb50fcdb24a2db48d095480e741ae371",
      "parents": [
        "f6f8285132907757ef84ef8dae0a1244b8cde6ac"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Thu Nov 17 13:13:29 2011 -0800"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Nov 17 13:13:29 2011 -0800"
      },
      "message": "pstore: pass reason to backend write callback\n\nThis allows a backend to filter on the dmesg reason as well as the pstore\nreason. When ramoops is switched to pstore, this is needed since it has\nno interest in storing non-crash dmesg details.\n\nDrop pstore_write() as it has no users, and handling the \"reason\" here\nhas no obviously correct value.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "f6f8285132907757ef84ef8dae0a1244b8cde6ac",
      "tree": "f3d3b37349e79251cfe16ef0f39e0b4af1a266b1",
      "parents": [
        "cfcfc9eca2bcbd26a8e206baeb005b055dbf8e37"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Thu Nov 17 12:58:07 2011 -0800"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Nov 17 12:58:07 2011 -0800"
      },
      "message": "pstore: pass allocated memory region back to caller\n\nThe buf_lock cannot be held while populating the inodes, so make the backend\npass forward an allocated and filled buffer instead. This solves the following\nbacktrace. The effect is that \"buf\" is only ever used to notify the backends\nthat something was written to it, and shouldn\u0027t be used in the read path.\n\nTo replace the buf_lock during the read path, isolate the open/read/close\nloop with a separate mutex to maintain serialized access to the backend.\n\nNote that is is up to the pstore backend to cope if the (*write)() path is\ncalled in the middle of the read path.\n\n[   59.691019] BUG: sleeping function called from invalid context at .../mm/slub.c:847\n[   59.691019] in_atomic(): 0, irqs_disabled(): 1, pid: 1819, name: mount\n[   59.691019] Pid: 1819, comm: mount Not tainted 3.0.8 #1\n[   59.691019] Call Trace:\n[   59.691019]  [\u003c810252d5\u003e] __might_sleep+0xc3/0xca\n[   59.691019]  [\u003c810a26e6\u003e] kmem_cache_alloc+0x32/0xf3\n[   59.691019]  [\u003c810b53ac\u003e] ? __d_lookup_rcu+0x6f/0xf4\n[   59.691019]  [\u003c810b68b1\u003e] alloc_inode+0x2a/0x64\n[   59.691019]  [\u003c810b6903\u003e] new_inode+0x18/0x43\n[   59.691019]  [\u003c81142447\u003e] pstore_get_inode.isra.1+0x11/0x98\n[   59.691019]  [\u003c81142623\u003e] pstore_mkfile+0xae/0x26f\n[   59.691019]  [\u003c810a2a66\u003e] ? kmem_cache_free+0x19/0xb1\n[   59.691019]  [\u003c8116c821\u003e] ? ida_get_new_above+0x140/0x158\n[   59.691019]  [\u003c811708ea\u003e] ? __init_rwsem+0x1e/0x2c\n[   59.691019]  [\u003c810b67e8\u003e] ? inode_init_always+0x111/0x1b0\n[   59.691019]  [\u003c8102127e\u003e] ? should_resched+0xd/0x27\n[   59.691019]  [\u003c8137977f\u003e] ? _cond_resched+0xd/0x21\n[   59.691019]  [\u003c81142abf\u003e] pstore_get_records+0x52/0xa7\n[   59.691019]  [\u003c8114254b\u003e] pstore_fill_super+0x7d/0x91\n[   59.691019]  [\u003c810a7ff5\u003e] mount_single+0x46/0x82\n[   59.691019]  [\u003c8114231a\u003e] pstore_mount+0x15/0x17\n[   59.691019]  [\u003c811424ce\u003e] ? pstore_get_inode.isra.1+0x98/0x98\n[   59.691019]  [\u003c810a8199\u003e] mount_fs+0x5a/0x12d\n[   59.691019]  [\u003c810b9174\u003e] ? alloc_vfsmnt+0xa4/0x14a\n[   59.691019]  [\u003c810b9474\u003e] vfs_kern_mount+0x4f/0x7d\n[   59.691019]  [\u003c810b9d7e\u003e] do_kern_mount+0x34/0xb2\n[   59.691019]  [\u003c810bb15f\u003e] do_mount+0x5fc/0x64a\n[   59.691019]  [\u003c810912fb\u003e] ? strndup_user+0x2e/0x3f\n[   59.691019]  [\u003c810bb3cb\u003e] sys_mount+0x66/0x99\n[   59.691019]  [\u003c8137b537\u003e] sysenter_do_call+0x12/0x26\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "1c398651518c7e25a9fb3f08b456c73d5ca22469",
      "tree": "116ad4df5c8faa5f8e0d7982c479bf08ea01f2ec",
      "parents": [
        "f470f8d4e702593ee1d0852871ad80373bce707b",
        "b238b8fa93353ab50c9a2b1e2fa47a0ab01c37cd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 10:52:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 10:52:29 2011 -0700"
      },
      "message": "Merge branch \u0027pstore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux\n\n* \u0027pstore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:\n  pstore: make pstore write function return normal success/fail value\n  pstore: change mutex locking to spin_locks\n  pstore: defer inserting OOPS entries into pstore\n"
    },
    {
      "commit": "8a4a8918ed6e4a361f4df19f199bbc2d0a89a46c",
      "tree": "d76974986aaaa8549baf2d6a106fa6cb60d64b88",
      "parents": [
        "8686a0e200419322654a75155e2e6f80346a1297",
        "540f41edc15473ca3b2876de72646546ae101374"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:08:43 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:08:43 2011 +0200"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)\n  llist: Add back llist_add_batch() and llist_del_first() prototypes\n  sched: Don\u0027t use tasklist_lock for debug prints\n  sched: Warn on rt throttling\n  sched: Unify the -\u003ecpus_allowed mask copy\n  sched: Wrap scheduler p-\u003ecpus_allowed access\n  sched: Request for idle balance during nohz idle load balance\n  sched: Use resched IPI to kick off the nohz idle balance\n  sched: Fix idle_cpu()\n  llist: Remove cpu_relax() usage in cmpxchg loops\n  sched: Convert to struct llist\n  llist: Add llist_next()\n  irq_work: Use llist in the struct irq_work logic\n  llist: Return whether list is empty before adding in llist_add()\n  llist: Move cpu_relax() to after the cmpxchg()\n  llist: Remove the platform-dependent NMI checks\n  llist: Make some llist functions inline\n  sched, tracing: Show PREEMPT_ACTIVE state in trace_sched_switch\n  sched: Remove redundant test in check_preempt_tick()\n  sched: Add documentation for bandwidth control\n  sched: Return unused runtime on group dequeue\n  ...\n"
    },
    {
      "commit": "b238b8fa93353ab50c9a2b1e2fa47a0ab01c37cd",
      "tree": "a46a6ce7567d9826ae48c2f3dc5aa0167de1f26c",
      "parents": [
        "abd4d5587be911f63592537284dad78766d97d62"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Wed Oct 12 09:17:24 2011 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Wed Oct 12 09:17:24 2011 -0700"
      },
      "message": "pstore: make pstore write function return normal success/fail value\n\nCurrently pstore write interface employs record id as return\nvalue, but it is not enough because it can\u0027t tell caller if\nthe write operation is successful. Pass the record id back via\nan argument pointer and return zero for success, non-zero for\nfailure.\n\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "9c48f1c629ecfa114850c03f875c6691003214de",
      "tree": "5e454da487c90fc8399ce366aa2437597c9ff5e5",
      "parents": [
        "c9126b2ee8adb9235941cedbf558d39a9e65642d"
      ],
      "author": {
        "name": "Don Zickus",
        "email": "dzickus@redhat.com",
        "time": "Fri Sep 30 15:06:21 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 10 06:56:57 2011 +0200"
      },
      "message": "x86, nmi: Wire up NMI handlers to new routines\n\nJust convert all the files that have an nmi handler to the new routines.\nMost of it is straight forward conversion.  A couple of places needed some\ntweaking like kgdb which separates the debug notifier from the nmi handler\nand mce removes a call to notify_die.\n\n[Thanks to Ying for finding out the history behind that mce call\n\nhttps://lkml.org/lkml/2010/5/27/114\n\nAnd Boris responding that he would like to remove that call because of it\n\nhttps://lkml.org/lkml/2011/9/21/163]\n\nThe things that get converted are the registeration/unregistration routines\nand the nmi handler itself has its args changed along with code removal\nto check which list it is on (most are on one NMI list except for kgdb\nwhich has both an NMI routine and an NMI Unknown routine).\n\nSigned-off-by: Don Zickus \u003cdzickus@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Corey Minyard \u003cminyard@acm.org\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Corey Minyard \u003cminyard@acm.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nLink: http://lkml.kernel.org/r/1317409584-23662-4-git-send-email-dzickus@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1230db8e1543c0471dd165727d34647ab098cc1e",
      "tree": "6667af62e0a0bb24b315f5b9e61ea7635293135b",
      "parents": [
        "22f92bacbeea24b20e447444c28e7cad9f1ac3f8"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Thu Sep 08 14:00:42 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 04 11:30:53 2011 +0200"
      },
      "message": "llist: Make some llist functions inline\n\nBecause llist code will be used in performance critical scheduler\ncode path, make llist_add() and llist_del_all() inline to avoid\nfunction calling overhead and related \u0027glue\u0027 overhead.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1315461646-1379-2-git-send-email-ying.huang@intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "abd4d5587be911f63592537284dad78766d97d62",
      "tree": "50d88b64ded1189d6c816a1f90124a05354914ba",
      "parents": [
        "6dda9266913ad57e09afc1a10d6473f10c806a63"
      ],
      "author": {
        "name": "Don Zickus",
        "email": "dzickus@redhat.com",
        "time": "Fri Aug 12 10:54:51 2011 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Tue Aug 16 11:55:58 2011 -0700"
      },
      "message": "pstore: change mutex locking to spin_locks\n\npstore was using mutex locking to protect read/write access to the\nbackend plug-ins.  This causes problems when pstore is executed in\nan NMI context through panic() -\u003e kmsg_dump().\n\nThis patch changes the mutex to a spin_lock_irqsave then also checks to\nsee if we are in an NMI context.  If we are in an NMI and can\u0027t get the\nlock, just print a message stating that and blow by the locking.\n\nAll this is probably a hack around the bigger locking problem but it\nsolves my current situation of trying to sleep in an NMI context.\n\nTested by loading the lkdtm module and executing a HARDLOCKUP which\nwill cause the machine to panic inside the nmi handler.\n\nSigned-off-by: Don Zickus \u003cdzickus@redhat.com\u003e\nAcked-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "03ba176a29dae5b4849f45c0b5c89b9d78baa2c6",
      "tree": "87c4d4953f5a122c288bb1d20e83ab84c1c55fa1",
      "parents": [
        "b3b46d76d0fcbb1f737107cec1a1ee87bc5e5fd3"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Wed Aug 10 10:46:22 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Aug 11 15:42:09 2011 -0400"
      },
      "message": "ACPI APEI: Add Kconfig option IRQ_WORK for GHES\n\nIRQ_WORK is used by GHES, but it is selected by PERF_EVENT.\nFor now PERF_EVENT is selected by x86 by default, but\nin concept, IRQ_WORK should be selected by GHES, not by others.\n\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "b3b46d76d0fcbb1f737107cec1a1ee87bc5e5fd3",
      "tree": "b29858f8d675d3b872625a441aa10250830400d2",
      "parents": [
        "322a8b034003c0d46d39af85bf24fee27b902f48"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Thu Aug 11 12:06:28 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Aug 11 12:18:38 2011 -0400"
      },
      "message": "APEI: Fix WHEA _OSC call\n\nBit 0 of the support parameter to the OSC call should be set in order to\nindicate that the OS supports the WHEA mechanism. Stuart Hayes tracked\nan APEI issue on some Dell platforms down to this.\n\nReported-by: Stuart Hayes \u003cStuart_Hayes@Dell.com\u003e\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d0e323b47057f4492b8fa22345f38d80a469bf8d",
      "tree": "feb760c7e2cdb1e43640417409428ab858910ea3",
      "parents": [
        "c027a474a68065391c8773f6e83ed5412657e369",
        "c3e6088e1036f8084bc7444b38437da136b7588b"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:30:42 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:30:42 2011 -0400"
      },
      "message": "Merge branch \u0027apei\u0027 into apei-release\n\nSome trivial conflicts due to other various merges\nadding to the end of common lists sooner than this one.\n\n\tarch/ia64/Kconfig\n\tarch/powerpc/Kconfig\n\tarch/x86/Kconfig\n\tlib/Kconfig\n\tlib/Makefile\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "c3e6088e1036f8084bc7444b38437da136b7588b",
      "tree": "1c2d24c8e5812cd21f56679fa57165693c2fb7da",
      "parents": [
        "70cb6e1da00db6c9212e6fd69bd96fd41c797077"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 20 16:09:29 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:15:59 2011 -0400"
      },
      "message": "ACPI, APEI, EINJ Param support is disabled by default\n\nEINJ parameter support is only usable for some specific BIOS.\nOriginally, it is expected to have no harm for BIOS does not support\nit.  But now, we found it will cause issue (memory overwriting) for\nsome BIOS.  So param support is disabled by default and only enabled\nwhen newly added module parameter named \"param_extension\" is\nexplicitly specified.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Don Zickus \u003cdzickus@redhat.com\u003e\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "70cb6e1da00db6c9212e6fd69bd96fd41c797077",
      "tree": "480a59919c5dcf22c742fb270b003194a4ae0378",
      "parents": [
        "a7e09d450b2e0b068e850d103b6ee1af537d1910"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Aug 02 18:00:21 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:15:59 2011 -0400"
      },
      "message": "APEI GHES: 32-bit buildfix\n\ndrivers/acpi/apei/ghes.c:542: warning: integer overflow in expression\ndrivers/acpi/apei/ghes.c:619: warning: integer overflow in expression\n\nghes.c:(.text+0x46289): undefined reference to `__udivdi3\u0027\n  in function ghes_estatus_cache_add().\n\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "ba61ca4aab47441f1c6cec28a9a6aa0489fd1df3",
      "tree": "04859a2c04f238b41e535c8e64977aefa99e28d2",
      "parents": [
        "ea8f5fb8a71fddaf5f3a17100d3247855701f732"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:28 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:15:58 2011 -0400"
      },
      "message": "ACPI, APEI, GHES: Add hardware memory error recovery support\n\nmemory_failure_queue() is called when recoverable memory errors are\nnotified by firmware to do the recovery work.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "152cef40a808d3034e383465b3f7d6783613e458",
      "tree": "f0d098fbaea73e9636b02f7904c72e38d381cede",
      "parents": [
        "67eb2e99076708cc790019a6a08ca3e0ae130a3a"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:26 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:15:57 2011 -0400"
      },
      "message": "ACPI, APEI, GHES, Error records content based throttle\n\nprintk is used by GHES to report hardware errors.  Ratelimit is\nenforced on the printk to avoid too many hardware error reports in\nkernel log.  Because there may be thousands or even millions of\ncorrected hardware errors during system running.\n\nCurrently, a simple scheme is used.  That is, the total number of\nhardware error reporting is ratelimited.  This may cause some issues\nin practice.\n\nFor example, there are two kinds of hardware errors occurred in\nsystem.  One is corrected memory error, because the fault memory\naddress is accessed frequently, there may be hundreds error report\nper-second.  The other is corrected PCIe AER error, it will be\nreported once per-second.  Because they share one ratelimit control\nstructure, it is highly possible that only memory error is reported.\n\nTo avoid the above issue, an error record content based throttle\nalgorithm is implemented in the patch.  Where after the first\nsuccessful reporting, all error records that are same are throttled for\nsome time, to let other kinds of error records have the opportunity to\nbe reported.\n\nIn above example, the memory errors will be throttled for some time,\nafter being printked.  Then the PCIe AER error will be printked\nsuccessfully.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "67eb2e99076708cc790019a6a08ca3e0ae130a3a",
      "tree": "dc3863496a4b6c4e30450f1b94d3e1c87b858e7a",
      "parents": [
        "7f184275aa306046fe7edcbef3229754f0d97402"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:25 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:15:57 2011 -0400"
      },
      "message": "ACPI, APEI, GHES, printk support for recoverable error via NMI\n\nSome APEI GHES recoverable errors are reported via NMI, but printk is\nnot safe in NMI context.\n\nTo solve the issue, a lock-less memory allocator is used to allocate\nmemory in NMI handler, save the error record into the allocated\nmemory, put the error record into a lock-less list.  On the other\nhand, an irq_work is used to delay the operation from NMI context to\nIRQ context.  The irq_work IRQ handler will remove nodes from\nlock-less list, printk the error record and do some further processing\ninclude recovery operation, then free the memory.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "b94fdd077eef5e6cab56836bf62695b497946716",
      "tree": "f1278f560084e6689a88a4e47f81484ffdb113df",
      "parents": [
        "56280682ceeef74b692b3e21d1872049eea7c887"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Thu Jul 21 16:57:54 2011 -0400"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Fri Jul 22 16:14:29 2011 -0700"
      },
      "message": "pstore: Make \"part\" unsigned\n\nWe\u0027ll never have a negative part, so just make this an unsigned int.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "56280682ceeef74b692b3e21d1872049eea7c887",
      "tree": "6d00729db23dff065ad60bf2f7be3f96b6fd4008",
      "parents": [
        "638c1fd3033c76778e6d9975ad8a4a9cdd5b96d9"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Thu Jul 21 16:57:53 2011 -0400"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Fri Jul 22 16:14:20 2011 -0700"
      },
      "message": "pstore: Add extra context for writes and erases\n\nEFI only provides small amounts of individual storage, and conventionally\nputs metadata in the storage variable name. Rather than add a metadata\nheader to the (already limited) variable storage, it\u0027s easier for us to\nmodify pstore to pass all the information we need to construct a unique\nvariable name to the appropriate functions.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "638c1fd3033c76778e6d9975ad8a4a9cdd5b96d9",
      "tree": "de8b772157162b8a7a0901f4df5fb25faef6b21d",
      "parents": [
        "02f8c6aee8df3cdc935e9bdd4f2d020306035dbe"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Thu Jul 21 16:57:52 2011 -0400"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Fri Jul 22 16:14:06 2011 -0700"
      },
      "message": "pstore: Extend API for more flexibility in new backends\n\nSome pstore implementations may not have a static context, so extend the\nAPI to pass the pstore_info struct to all calls and allow for a context\npointer.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "9fb0bfe1408d5506b7b83d13d1eed573fd71d67d",
      "tree": "51700355f453ab47de4bd799a4468c030db6e088",
      "parents": [
        "eccddd32ced0df8f9130024157bf8d37df860d76"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:21 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jul 13 23:38:49 2011 -0400"
      },
      "message": "ACPI, APEI, Add WHEA _OSC support\n\nAPEI firmware first mode must be turned on explicitly on some\nmachines, otherwise there may be no GHES hardware error record for\nhardware error notification.  APEI bit in generic _OSC call can be\nused to do that, but on some machine, a special WHEA _OSC call must be\nused.  This patch adds the support to that WHEA _OSC call.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nReviewed-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "b6a9501658530d8b8374e37f1edb549039a8a260",
      "tree": "e41103e3cd5a389d679b208eb254430f5100db68",
      "parents": [
        "86cd47334b00b6aa9b5d0ebf389a6fe76f21c641"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:19 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jul 13 23:36:34 2011 -0400"
      },
      "message": "ACPI, APEI, GHES, Support disable GHES at boot time\n\nSome machine may have broken firmware so that GHES and firmware first\nmode should be disabled.  This patch adds support to that.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nReviewed-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "86cd47334b00b6aa9b5d0ebf389a6fe76f21c641",
      "tree": "b8b9b6475a864abc3a29d4ccae012464bf2a6aee",
      "parents": [
        "392913de7cc7446531922f29c0a4382d8d09626c"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:18 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jul 13 23:35:57 2011 -0400"
      },
      "message": "ACPI, APEI, GHES, Prevent GHES to be built as module\n\nGHES (Generic Hardware Error Source) is used to process hardware error\nnotification in firmware first mode.  But because firmware first mode\ncan be turned on but can not be turned off, it is unreasonable to\nunload the GHES module with firmware first mode turned on.  To avoid\nconfusion, this patch makes GHES can be enabled/disabled in\nconfiguration time, but not built as module and unloaded at run time.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nReviewed-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "392913de7cc7446531922f29c0a4382d8d09626c",
      "tree": "121ae577b2e713b1350e8eba3a53ad6c3723a4d3",
      "parents": [
        "eecf2f7124834dd1cad21807526a8ea031ba8217"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:17 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jul 13 23:35:14 2011 -0400"
      },
      "message": "ACPI, APEI, Use apei_exec_run_optional in APEI EINJ and ERST\n\nThis patch changes APEI EINJ and ERST to use apei_exec_run for\nmandatory actions, and apei_exec_run_optional for optional actions.\n\nCc: Thomas Renninger \u003ctrenn@novell.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "eecf2f7124834dd1cad21807526a8ea031ba8217",
      "tree": "2b664d60f327ca33a3934ab55e616b077793356b",
      "parents": [
        "5588340d46a484da53bbce8136184d9c7fbc259c"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:16 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jul 13 23:34:49 2011 -0400"
      },
      "message": "ACPI, APEI, Add apei_exec_run_optional\n\nSome actions in APEI ERST and EINJ tables are optional, for example,\nACPI_EINJ_BEGIN_OPERATION action is used to do some preparation for\nerror injection, and firmware may choose to do nothing here.  While\nsome other actions are mandatory, for example, firmware must provide\nACPI_EINJ_GET_ERROR_TYPE implementation.\n\nOriginal implementation treats all actions as optional (that is, can\nhave no instructions), that may cause issue if firmware does not\nprovide some mandatory actions.  To fix this, this patch adds\napei_exec_run_optional, which should be used for optional actions.\nThe original apei_exec_run should be used for mandatory actions.\n\nCc: Thomas Renninger \u003ctrenn@novell.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "5588340d46a484da53bbce8136184d9c7fbc259c",
      "tree": "bd6ac131e5f50cca56c35849e39f106b18c96c26",
      "parents": [
        "d37afc50e618271839f001ea653949eefc728167"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:15 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jul 13 23:33:57 2011 -0400"
      },
      "message": "ACPI, APEI, GHES, Do not ratelimit fatal error printk before panic\n\nprintk is used by GHES to report hardware errors.  Normally, the\nprintk will be ratelimited to avoid too many hardware error reports in\nkernel log.  Because there may be thousands or even millions of\ncorrected hardware errors during system running.\n\nThat is different for fatal hardware error, because system will go\npanic as soon as possible, there will be no more than several error\nrecords.  And these error records are valuable for system fault\ndiagnosis, so they should not be ratelimited.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d37afc50e618271839f001ea653949eefc728167",
      "tree": "e772a03f4f604c8bd62b112d1868f8cc1cdffde6",
      "parents": [
        "ca7cc5110a313a609da40ae948978a585352564b"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Wed Jul 13 13:14:14 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jul 13 23:31:51 2011 -0400"
      },
      "message": "ACPI, APEI, ERST, Fix erst-dbg long record reading issue\n\nWhen we debug ERST table with erst-dbg, if the error record in ERST\ntable is too long(\u003e4K), it can\u0027t be read out.  So this patch increases\nthe buffer size to 16K to ensure such error records can be read from\nERST table.\n\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "ca7cc5110a313a609da40ae948978a585352564b",
      "tree": "1b170de2a91579251e25f7c2eaf20891e20f1622",
      "parents": [
        "4d2b2956ef1113f1cc43e98e947c20d9c7d2712c"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:13 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jul 13 23:29:52 2011 -0400"
      },
      "message": "ACPI, APEI, ERST, Prevent erst_dbg from loading if ERST is disabled\n\nerst_dbg module can not work when ERST is disabled.  So disable module\nloading to provide clearer information to user.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4d2b2956ef1113f1cc43e98e947c20d9c7d2712c",
      "tree": "f19e664132a6fe8173c03bb3be97ecf4a125185a",
      "parents": [
        "8d86e5f91440aa56a5df516bf58fe3883552ad56"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:12 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jul 13 23:27:56 2011 -0400"
      },
      "message": "ACPI, APEI, HEST, Detect duplicated hardware error source ID\n\nThe firmware on some machine will report duplicated hardware error\nsource ID in HEST.  This is considered a firmware bug.  To provide\nbetter warning message, this patch adds duplicated hardware error\nsource ID detecting and corresponding printk.\n\nThis patch fixes #37412 on kernel bugzilla:\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d37412\n\nReported-by: marconifabio@ubuntu-it.org\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nTested-by: Mathias \u003cjanedo.spam@gmail.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "dbee8a0affd5e6eaa5d7c816c4bc233f6f110f50",
      "tree": "485bba5ec4436e9e8c84aacf25590ca8f8a6332b",
      "parents": [
        "818b667ba57f68bf1e7240fa441dda0b11e6b944"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Tue May 24 17:13:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:44 2011 -0700"
      },
      "message": "x86: remove 32-bit versions of readq()/writeq()\n\nThe presense of a writeq() implementation on 32-bit x86 that splits the\n64-bit write into two 32-bit writes turns out to break the mpt2sas driver\n(and in general is risky for drivers as was discussed in\n\u003chttp://lkml.kernel.org/r/adaab6c1h7c.fsf@cisco.com\u003e).  To fix this,\nrevert 2c5643b1c5c7 (\"x86: provide readq()/writeq() on 32-bit too\") and\nfollow-on cleanups.\n\nThis unfortunately leads to pushing non-atomic definitions of readq() and\nwrite() to various x86-only drivers that in the meantime started using the\ndefinitions in the x86 version of \u003casm/io.h\u003e.  However as discussed\nexhaustively, this is actually the right thing to do, because the right\nway to split a 64-bit transaction is hardware dependent and therefore\nbelongs in the hardware driver (eg mpt2sas needs a spinlock to make sure\nno other accesses occur in between the two halves of the access).\n\nBuild tested on 32- and 64-bit x86 allmodconfig.\n\nLink: http://lkml.kernel.org/r/x86-32-writeq-is-broken@mdm.bga.com\nAcked-by: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Kashyap Desai \u003cKashyap.Desai@lsi.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Ravi Anand \u003cravi.anand@qlogic.com\u003e\nCc: Vikas Chaudhary \u003cvikas.chaudhary@qlogic.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@parallels.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d2a8342f64e93c217fcbf3206ec9ae770b1413d",
      "tree": "2769c38bc58788989683aef6d1bab6455a1442c6",
      "parents": [
        "f5ec25deb2471bd49e907ab2f9ef6f860eb7cf95"
      ],
      "author": {
        "name": "Luck, Tony",
        "email": "tony.luck@intel.com",
        "time": "Wed Apr 13 10:48:12 2011 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Fri May 20 10:34:35 2011 -0700"
      },
      "message": "pstore: Fix Kconfig dependencies for apei-\u003epstore\n\nGeert Uytterhoeven ran a dependency checker which kicked out this warning:\n\n+ warning: (ACPI_APEI) selects PSTORE which has unmet direct dependencies (MISC_FILESYSTEMS):  \u003d\u003e N/A\n\nRandy confirmed that the fix was to \"select MISC_FILESYSTEMS\" too.\n\nTested-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "f5ec25deb2471bd49e907ab2f9ef6f860eb7cf95",
      "tree": "c94504da49380911bef27f492e876ff19eb8a4b7",
      "parents": [
        "06cf91b4b4aafa50ee0a94c81d2c6922a18af242"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Mon May 16 11:01:39 2011 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Mon May 16 11:05:08 2011 -0700"
      },
      "message": "pstore: fix potential logic issue in pstore read interface\n\n1) in the calling of erst_read, the parameter of buffer size\nmaybe overflows and cause crash\n\n2) the return value of erst_read should be checked more strictly\n\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "06cf91b4b4aafa50ee0a94c81d2c6922a18af242",
      "tree": "f45fe916103b323a714c8958048b8adab1f944b1",
      "parents": [
        "8d38d74b648513dd8ed8bd2b67d899208ef4e09e"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Mon May 16 11:00:27 2011 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Mon May 16 11:05:00 2011 -0700"
      },
      "message": "pstore: fix pstore filesystem mount/remount issue\n\nCurrently after mount/remount operation on pstore filesystem,\nthe content on pstore will be lost. It is because current ERST\nimplementation doesn\u0027t support multi-user usage, which moves\ninternal pointer to the end after accessing it. Adding\nmulti-user support for pstore usage.\n\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "8d38d74b648513dd8ed8bd2b67d899208ef4e09e",
      "tree": "9746a4273b2ffb68a298ce038eb196f0f65452bb",
      "parents": [
        "693d92a1bbc9e42681c42ed190bd42b636ca876f"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Mon May 16 10:58:57 2011 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Mon May 16 11:04:51 2011 -0700"
      },
      "message": "pstore: fix one type of return value in pstore\n\nthe return type of function _read_ in pstore is size_t,\nbut in the callback function of _read_, the logic doesn\u0027t\nconsider it too much, which means if negative value (assuming\nerror here) is returned, it will be converted to positive because\nof type casting. ssize_t is enough for this function.\n\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "02e2407858fd62053bf60349c0e72cd1c7a4a60e",
      "tree": "0ebdbddc97d3abbc675916010e7771065b70c137",
      "parents": [
        "96e1c408ea8a556c5b51e0e7d56bd2afbfbf5fe9",
        "6447f55da90b77faec1697d499ed7986bb4f6de6"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Mar 23 02:34:54 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Mar 23 02:34:54 2011 -0400"
      },
      "message": "Merge branch \u0027linus\u0027 into release\n\nConflicts:\n\tarch/x86/kernel/acpi/sleep.c\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "c413d7682020a127f54744a1b30f597692aea1fd",
      "tree": "b495af23b2f81b6ab0080925aa988ea9a8068e4e",
      "parents": [
        "b64a44146540a4761bb1cf8047fffd9dbf0c3090"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon Feb 21 13:54:43 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Mar 21 22:59:08 2011 -0400"
      },
      "message": "ACPI, APEI, Add PCIe AER error information printing support\n\nThe AER error information printing support is implemented in\ndrivers/pci/pcie/aer/aer_print.c.  So some string constants, functions\nand macros definitions can be re-used without being exported.\n\nThe original PCIe AER error information printing function is not\nre-used directly because the overall format is quite different.  And\nchanging the original printing format may make some original users\u0027\nscripts broken.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nCC: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCC: Zhang Yanmin \u003cyanmin.zhang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "885b976fada5bc6595a9fd3e67e3cb1a3d11f50b",
      "tree": "8b598bd3b265c0bbe8237e129410fdc80fe7847a",
      "parents": [
        "dd9c1549edef02290edced639f67b54a25abbe0e"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon Feb 21 13:54:41 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Mar 21 22:59:06 2011 -0400"
      },
      "message": "ACPI, APEI, Add ERST record ID cache\n\nAPEI ERST firmware interface and implementation has no multiple users\nin mind.  For example, if there is four records in storage with ID: 1,\n2, 3 and 4, if two ERST readers enumerate the records via\nGET_NEXT_RECORD_ID as follow,\n\nreader 1\t\treader 2\n1\n\t\t\t2\n3\n\t\t\t4\n-1\n\t\t\t-1\n\nwhere -1 signals there is no more record ID.\n\nReader 1 has no chance to check record 2 and 4, while reader 2 has no\nchance to check record 1 and 3.  And any other GET_NEXT_RECORD_ID will\nreturn -1, that is, other readers will has no chance to check any\nrecord even they are not cleared by anyone.\n\nThis makes raw GET_NEXT_RECORD_ID not suitable for used by multiple\nusers.\n\nTo solve the issue, an in-memory ERST record ID cache is designed and\nimplemented.  When enumerating record ID, the ID returned by\nGET_NEXT_RECORD_ID is added into cache in addition to be returned to\ncaller.  So other readers can check the cache to get all record ID\navailable.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "afe997a183ecc0be72652c7a5ce2152bdf91724e",
      "tree": "307ec69f546700d1aac7a9bc23853f6e4ae875a0",
      "parents": [
        "4897313a62cf0b106e9e861bf7350a9cfc0715d0",
        "168f2e14319aba3125946649604e858cbae85be6"
      ],
      "author": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Wed Mar 16 09:58:31 2011 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Wed Mar 16 09:58:31 2011 -0700"
      },
      "message": "Pull pstorev4 into release branch\n"
    },
    {
      "commit": "d3072e6a7e9bf7aca200370317f8e297be360b17",
      "tree": "aaeae900e1942aef892276b4ddb5c85e4882745a",
      "parents": [
        "fc8fe1e992ae0326a88edbe4d6793e840bbdd4ff"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 16 20:44:22 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 11:56:26 2011 -0800"
      },
      "message": "ACPI: Fix boot problem related to APEI with acpi_disabled set\n\nCommit 415e12b23792 (\"PCI/ACPI: Request _OSC control once for each root\nbridge (v3)\") put the acpi_hest_init() call in acpi_pci_root_init() into\na wrong place, presumably because the author confused acpi_pci_disabled\nwith acpi_disabled.  Bring the code ordering in acpi_pci_root_init()\nback to sanity.\n\nAdditionally, make sure that hest_disable is set when acpi_disabled is\nset, which is going to prevent acpi_hest_parse(), that still may be\nexecuted for acpi_disabled\u003d1 through aer_acpi_firmware_first(), from\ncrashing because of uninitialized hest_tab.\n\nReported-and-tested-by: Andres Salomon \u003cdilinger@queued.net\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d73b388459b1ee2e80f8ff9c1916d75640d7d920",
      "tree": "3e4061226f817c5728009f0bcc1d810d0c4a7b37",
      "parents": [
        "5957e33d6aec266659a71cfabcf7cf2c593ad0d2",
        "0f953bf6b4efa0daddb7c418130a9bd3ee97f7ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 09:29:05 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 09:29:05 2011 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:\n  PCI/PM: Report wakeup events before resuming devices\n  PCI/PM: Use pm_wakeup_event() directly for reporting wakeup events\n  PCI: sysfs: Update ROM to include default owner write access\n  x86/PCI: make Broadcom CNB20LE driver EMBEDDED and EXPERIMENTAL\n  x86/PCI: don\u0027t use native Broadcom CNB20LE driver when ACPI is available\n  PCI/ACPI: Request _OSC control once for each root bridge (v3)\n  PCI: enable pci\u003dbfsort by default on future Dell systems\n  PCI/PCIe: Clear Root PME Status bits early during system resume\n  PCI: pci-stub: ignore zero-length id parameters\n  x86/PCI: irq and pci_ids patch for Intel Patsburg\n  PCI: Skip id checking if no id is passed\n  PCI: fix __pci_device_probe kernel-doc warning\n  PCI: make pci_restore_state return void\n  PCI: Disable ASPM if BIOS asks us to\n  PCI: Add mask bit definition for MSI-X table\n  PCI: MSI: Move MSI-X entry definition to pci_regs.h\n\nFix up trivial conflicts in drivers/net/{skge.c,sky2.c} that had in the\nmeantime been converted to not use legacy PCI power management, and thus\nno longer use pci_restore_state() at all (and that caused trivial\nconflicts with the \"make pci_restore_state return void\" patch)\n"
    },
    {
      "commit": "415e12b2379239973feab91850b0dce985c6058a",
      "tree": "aa79c7a87fd30ac13ae3fd146aad5a44e854c4bc",
      "parents": [
        "6e8af08dfa40b747002207d3ce8e8b43a050d99f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 07 00:55:09 2011 +0100"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Fri Jan 14 08:55:41 2011 -0800"
      },
      "message": "PCI/ACPI: Request _OSC control once for each root bridge (v3)\n\nMove the evaluation of acpi_pci_osc_control_set() (to request control of\nPCI Express native features) into acpi_pci_root_add() to avoid calling\nit many times for the same root complex with the same arguments.\nAdditionally, check if all of the requisite _OSC support bits are set\nbefore calling acpi_pci_osc_control_set() for a given root complex.\n\nReferences: https://bugzilla.kernel.org/show_bug.cgi?id\u003d20232\nReported-by: Ozan Caglayan \u003cozan@pardus.org.tr\u003e\nTested-by: Ozan Caglayan \u003cozan@pardus.org.tr\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "52cfd503ad7176d23a5dd7af3981744feb60622f",
      "tree": "0a8aeaaf4acbc86ac682f18632b8070c1c6b7ba1",
      "parents": [
        "dc8e7e3ec60bd5ef7868aa88755e9d4c948dc5cc",
        "4263d9a3ae4d15785897d0543bb59316c84ee605"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 20:15:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 20:15:35 2011 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (59 commits)\n  ACPI / PM: Fix build problems for !CONFIG_ACPI related to NVS rework\n  ACPI: fix resource check message\n  ACPI / Battery: Update information on info notification and resume\n  ACPI: Drop device flag wake_capable\n  ACPI: Always check if _PRW is present before trying to evaluate it\n  ACPI / PM: Check status of power resources under mutexes\n  ACPI / PM: Rename acpi_power_off_device()\n  ACPI / PM: Drop acpi_power_nocheck\n  ACPI / PM: Drop acpi_bus_get_power()\n  Platform / x86: Make fujitsu_laptop use acpi_bus_update_power()\n  ACPI / Fan: Rework the handling of power resources\n  ACPI / PM: Register power resource devices as soon as they are needed\n  ACPI / PM: Register acpi_power_driver early\n  ACPI / PM: Add function for updating device power state consistently\n  ACPI / PM: Add function for device power state initialization\n  ACPI / PM: Introduce __acpi_bus_get_power()\n  ACPI / PM: Introduce function for refcounting device power resources\n  ACPI / PM: Add functions for manipulating lists of power resources\n  ACPI / PM: Prevent acpi_power_get_inferred_state() from making changes\n  ACPICA: Update version to 20101209\n  ...\n"
    },
    {
      "commit": "03b6e6e58d9dd5f3068288653810db3c15fde929",
      "tree": "b6edb300df2e230230f1f7428ffa54f27b0a040d",
      "parents": [
        "9e0c20bceb611917a7546172ac617d07e5af0cfa",
        "81e88fdc432a1552401d6e91a984dcccce72b8dc"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 05:02:22 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 05:02:22 2011 -0500"
      },
      "message": "Merge branch \u0027apei\u0027 into release\n"
    },
    {
      "commit": "81e88fdc432a1552401d6e91a984dcccce72b8dc",
      "tree": "41ef511cda7ddf6b96f8d923ffceff74651a5790",
      "parents": [
        "32c361f574f85fa47600d84900598e2efc99082e"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jan 12 14:44:55 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 03:06:19 2011 -0500"
      },
      "message": "ACPI, APEI, Generic Hardware Error Source POLL/IRQ/NMI notification type support\n\nGeneric Hardware Error Source provides a way to report platform\nhardware errors (such as that from chipset). It works in so called\n\"Firmware First\" mode, that is, hardware errors are reported to\nfirmware firstly, then reported to Linux by firmware. This way, some\nnon-standard hardware error registers or non-standard hardware link\ncan be checked by firmware to produce more valuable hardware error\ninformation for Linux.\n\nThis patch adds POLL/IRQ/NMI notification types support.\n\nBecause the memory area used to transfer hardware error information\nfrom BIOS to Linux can be determined only in NMI, IRQ or timer\nhandler, but general ioremap can not be used in atomic context, so a\nspecial version of atomic ioremap is implemented for that.\n\nKnown issue:\n\n- Error information can not be printed for recoverable errors notified\n  via NMI, because printk is not NMI-safe. Will fix this via delay\n  printing to IRQ context via irq_work or make printk NMI-safe.\n\nv2:\n\n- adjust printk format per comments.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "0bb77c465f02e8281e24b9f02e7dc8a7e2b81ee2",
      "tree": "566ffb07506250dc91543fd99955c0028b83ac79",
      "parents": [
        "ca01d6dd2d7a2652000307520777538740efc286"
      ],
      "author": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Mon Jan 03 14:22:11 2011 -0800"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Mon Jan 03 14:22:11 2011 -0800"
      },
      "message": "pstore: X86 platform interface using ACPI/APEI/ERST\n\nThe \u0027error record serialization table\u0027 in ACPI provides a suitable\namount of persistent storage for use by the pstore filesystem.\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "e8a8b252fb37489f881957ab0f2f8ea9a2341dd1",
      "tree": "fab04da6f4abab0f0aa4069be2f391220934ed8a",
      "parents": [
        "bb9fb42029abcc90c265dbc40cab106421dd9348"
      ],
      "author": {
        "name": "Stefan Weil",
        "email": "weil@mail.berlios.de",
        "time": "Sun Jan 02 15:12:42 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Jan 03 13:51:58 2011 +0100"
      },
      "message": "Fix spelling mistakes in comments\n\n milisecond -\u003e millisecond\n meassge -\u003e message\n\nCc: Kalle Valo \u003ckvalo@adurom.com\u003e\nCc: Jiri Kosina \u003ctrivial@kernel.org\u003e\nCc: linux-kernel@vger.kernel.org\nSigned-off-by: Stefan Weil \u003cweil@mail.berlios.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "32c361f574f85fa47600d84900598e2efc99082e",
      "tree": "cb78461432df92afee470b04e8eb20182e8ef28d",
      "parents": [
        "f59c55d04b43bd72df8efa692dd07224fe94d1ac"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue Dec 07 10:22:31 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Dec 13 23:42:39 2010 -0500"
      },
      "message": "ACPI, APEI, Report GHES error information via printk\n\nprintk is one of the methods to report hardware errors to user space.\nThis patch implements hardware error reporting for GHES via printk.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "f59c55d04b43bd72df8efa692dd07224fe94d1ac",
      "tree": "31bcecf6a49230ae8735ba0f12ab4c30639c9094",
      "parents": [
        "c9aa308fd5c373faeda588cfb02b04f116904613"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue Dec 07 10:22:30 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Dec 13 23:42:12 2010 -0500"
      },
      "message": "ACPI, APEI, Add APEI generic error status printing support\n\nIn APEI, Hardware error information reported by firmware to Linux\nkernel is in the data structure of APEI generic error status (struct\nacpi_hes_generic_status).  While now printk is used by Linux kernel to\nreport hardware error information to user space.\n\nSo, this patch adds printing support for the data structure, so that\nthe corresponding hardware error information can be reported to user\nspace via printk.\n\nPCIe AER information printing is not implemented yet.  Will refactor the\noriginal PCIe AER information printing code to avoid code duplicating.\n\nThe output format is as follow:\n\n\u003cerror record\u003e :\u003d\nAPEI generic hardware error status\nseverity: \u003cinteger\u003e, \u003cseverity string\u003e\nsection: \u003cinteger\u003e, severity: \u003cinteger\u003e, \u003cseverity string\u003e\nflags: \u003cinteger\u003e\n\u003csection flags strings\u003e\nfru_id: \u003cuuid string\u003e\nfru_text: \u003cstring\u003e\nsection_type: \u003csection type string\u003e\n\u003csection data\u003e\n\n\u003cseverity string\u003e* :\u003d recoverable | fatal | corrected | info\n\n\u003csection flags strings\u003e# :\u003d\n[primary][, containment warning][, reset][, threshold exceeded]\\\n[, resource not accessible][, latent error]\n\n\u003csection type string\u003e :\u003d generic processor error | memory error | \\\nPCIe error | unknown, \u003cuuid string\u003e\n\n\u003csection data\u003e :\u003d\n\u003cgeneric processor section data\u003e | \u003cmemory section data\u003e | \\\n\u003cpcie section data\u003e | \u003cnull\u003e\n\n\u003cgeneric processor section data\u003e :\u003d\n[processor_type: \u003cinteger\u003e, \u003cproc type string\u003e]\n[processor_isa: \u003cinteger\u003e, \u003cproc isa string\u003e]\n[error_type: \u003cinteger\u003e\n\u003cproc error type strings\u003e]\n[operation: \u003cinteger\u003e, \u003cproc operation string\u003e]\n[flags: \u003cinteger\u003e\n\u003cproc flags strings\u003e]\n[level: \u003cinteger\u003e]\n[version_info: \u003cinteger\u003e]\n[processor_id: \u003cinteger\u003e]\n[target_address: \u003cinteger\u003e]\n[requestor_id: \u003cinteger\u003e]\n[responder_id: \u003cinteger\u003e]\n[IP: \u003cinteger\u003e]\n\n\u003cproc type string\u003e* :\u003d IA32/X64 | IA64\n\n\u003cproc isa string\u003e* :\u003d IA32 | IA64 | X64\n\n\u003cprocessor error type strings\u003e# :\u003d\n[cache error][, TLB error][, bus error][, micro-architectural error]\n\n\u003cproc operation string\u003e* :\u003d unknown or generic | data read | data write | \\\ninstruction execution\n\n\u003cproc flags strings\u003e# :\u003d\n[restartable][, precise IP][, overflow][, corrected]\n\n\u003cmemory section data\u003e :\u003d\n[error_status: \u003cinteger\u003e]\n[physical_address: \u003cinteger\u003e]\n[physical_address_mask: \u003cinteger\u003e]\n[node: \u003cinteger\u003e]\n[card: \u003cinteger\u003e]\n[module: \u003cinteger\u003e]\n[bank: \u003cinteger\u003e]\n[device: \u003cinteger\u003e]\n[row: \u003cinteger\u003e]\n[column: \u003cinteger\u003e]\n[bit_position: \u003cinteger\u003e]\n[requestor_id: \u003cinteger\u003e]\n[responder_id: \u003cinteger\u003e]\n[target_id: \u003cinteger\u003e]\n[error_type: \u003cinteger\u003e, \u003cmem error type string\u003e]\n\n\u003cmem error type string\u003e* :\u003d\nunknown | no error | single-bit ECC | multi-bit ECC | \\\nsingle-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \\\ntarget abort | parity error | watchdog timeout | invalid address | \\\nmirror Broken | memory sparing | scrub corrected error | \\\nscrub uncorrected error\n\n\u003cpcie section data\u003e :\u003d\n[port_type: \u003cinteger\u003e, \u003cpcie port type string\u003e]\n[version: \u003cinteger\u003e.\u003cinteger\u003e]\n[command: \u003cinteger\u003e, status: \u003cinteger\u003e]\n[device_id: \u003cinteger\u003e:\u003cinteger\u003e:\u003cinteger\u003e.\u003cinteger\u003e\nslot: \u003cinteger\u003e\nsecondary_bus: \u003cinteger\u003e\nvendor_id: \u003cinteger\u003e, device_id: \u003cinteger\u003e\nclass_code: \u003cinteger\u003e]\n[serial number: \u003cinteger\u003e, \u003cinteger\u003e]\n[bridge: secondary_status: \u003cinteger\u003e, control: \u003cinteger\u003e]\n\n\u003cpcie port type string\u003e* :\u003d PCIe end point | legacy PCI end point | \\\nunknown | unknown | root port | upstream switch port | \\\ndownstream switch port | PCIe to PCI/PCI-X bridge | \\\nPCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \\\nroot complex event collector\n\nWhere, [] designate corresponding content is optional\n\nAll \u003cfield string\u003e description with * has the following format:\n\nfield: \u003cinteger\u003e, \u003cfield string\u003e\n\nWhere value of \u003cinteger\u003e should be the position of \"string\" in \u003cfield\nstring\u003e description. Otherwise, \u003cfield string\u003e will be \"unknown\".\n\nAll \u003cfield strings\u003e description with # has the following format:\n\nfield: \u003cinteger\u003e\n\u003cfield strings\u003e\n\nWhere each string in \u003cfields strings\u003e corresponding to one set bit of\n\u003cinteger\u003e. The bit position is the position of \"string\" in \u003cfield\nstrings\u003e description.\n\nFor more detailed explanation of every field, please refer to UEFI\nspecification version 2.3 or later, section Appendix N: Common\nPlatform Error Record.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "bec4f22a2dbd5a26079cbddbcadf38f8c7e5381f",
      "tree": "8b1264bd18181e91c8a64ecd93fb988097e7e1fb",
      "parents": [
        "091aad6af4ab29af693ced5d6970ceee9d5981c8"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Tue Dec 07 14:58:44 2010 +0000"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Dec 11 02:01:48 2010 -0500"
      },
      "message": "ACPI/HEST: adjust section selection\n\nProperly const-, __init-, and __read_mostly-annotate this code.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "3b38bb5f7f06356a89bb2cbf92ad346025e95192",
      "tree": "6486004d4538508d62aa59f28a755a389b6583d5",
      "parents": [
        "b72512ed706efb26087fcbbc5f98ed64ac1230d5"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Thu Dec 02 10:40:53 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Dec 11 02:01:46 2010 -0500"
      },
      "message": "ACPI, APEI, use raw spinlock in ERST\n\nERST writing may be used in NMI or Machine Check Exception handler. So\nit need to use raw spinlock instead of normal spinlock.  This patch\nfixes it.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "fdb8c58a1671beb51949412e053926acd5500b5f",
      "tree": "4b031ae9d9626aae31afe6f1da697bd7f1007897",
      "parents": [
        "23f124ca3dda98496b7ccf897cfd66264a212b6c",
        "b137b9942a07843c64a934cfdb7d43155e507e13",
        "64a32307b710c100beb101e9c78f8022f0e8ba61",
        "337279ce3aa85d81d34c0f837d1c204df105103b",
        "100cf87788c0e9104f6fb1b0ff5f72f73fbbbea3",
        "539986482b0db07b7164ab086d167ab99b4d3061",
        "573b638158029898caf9470c8214b7ddd29751e3",
        "0bbba38a61283a55f2061ab3e0910c572d19f462"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Sep 29 15:18:28 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Sep 29 15:18:28 2010 -0400"
      },
      "message": "Merge branches \u0027apei\u0027, \u0027battery-mwh-fix\u0027, \u0027bugzilla-10807\u0027, \u0027bugzilla-14736\u0027, \u0027bugzilla-14679\u0027, \u0027bugzilla-16396\u0027, \u0027launchpad-613381\u0027 and \u0027misc\u0027 into release\n"
    },
    {
      "commit": "0bbba38a61283a55f2061ab3e0910c572d19f462",
      "tree": "ae194c65a07b45ecad35b0c9eab9d1f0ca626a56",
      "parents": [
        "0c827eebfcd5caad24a50bc514ef15476b086e47"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Sep 29 19:53:55 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Sep 29 14:10:09 2010 -0400"
      },
      "message": "ACPI, APEI, Fix ERST MOVE_DATA instruction implementation\n\nThe src_base and dst_base fields in apei_exec_context are physical\naddress, so they should be ioremaped before being used in ERST\nMOVE_DATA instruction.\n\nReported-by: Javier Martinez Canillas \u003cmartinez.javier@gmail.com\u003e\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "23f124ca3dda98496b7ccf897cfd66264a212b6c",
      "tree": "7b60b3de8e5fb0ee000eb97ea0abba1b25b868c6",
      "parents": [
        "1dd6b20e368765223c31569d364219785b24700b"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Sep 29 19:53:54 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Sep 29 14:02:35 2010 -0400"
      },
      "message": "ACPI, APEI, Fix error path for memory allocation\n\nIn ERST debug/test support patch, a dynamic allocated buffer is\nused. The may-failed memory allocation should be tried firstly before\nfree the previous buffer.\n\nAPEI resource management memory allocation related error path is fixed\ntoo.\n\nv2:\n\n- Fix error messages for APEI resources management\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "1dd6b20e368765223c31569d364219785b24700b",
      "tree": "1217f73eff83cc603feb86cfd47f4a9876901758",
      "parents": [
        "bad97c37db9c1ee36de8ac58f9f73931d15a2e94"
      ],
      "author": {
        "name": "Jin Dongming",
        "email": "jin.dongming@np.css.fujitsu.com",
        "time": "Wed Sep 29 19:53:53 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Sep 29 14:02:26 2010 -0400"
      },
      "message": "ACPI, APEI, HEST Fix the unsuitable usage of platform_data\n\nplatform_data in hest_parse_ghes() is used for saving the address of entry\ninformation of erst_tab. When the device is failed to be added, platform_data\nwill be freed by platform_device_put(). But the value saved in platform_data\nshould not be freed here. If it is done, it will make system panic.\n\nSo I think platform_data should save the address of allocated memory\nwhich saves entry information of erst_tab.\n\nThis patch fixed it and I confirmed it on x86_64 next-tree.\n\nv2:\n    Transport the pointer of hest_hdr to platform_data using\n    platform_device_add_data()\n\nSigned-off-by: Jin Dongming \u003cjin.dongming@np.css.fujitsu.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "3a78f965328482eee542217de79036c2a8791de8",
      "tree": "cf1cbcdc8e4a67b92f503b5eb9cb403fd113b0c7",
      "parents": [
        "899611ee7d373e5eeda08e9a8632684e1ebbbf00"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Sep 29 19:53:51 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Sep 29 13:59:18 2010 -0400"
      },
      "message": "ACPI, APEI, Fix APEI related table size checking\n\nOn Huang Ying\u0027s machine:\n\nerst_tab-\u003eheader_length \u003d\u003d sizeof(struct acpi_table_einj)\n\nbut Yinghai reported that on his machine,\n\nerst_tab-\u003eheader_length \u003d\u003d sizeof(struct acpi_table_einj) -\nsizeof(struct acpi_table_header)\n\nTo make erst table size checking code works on all systems, both\ntesting are treated as PASS.\n\nSame situation applies to einj_tab-\u003eheader_length, so corresponding\ntable size checking is changed in similar way too.\n\nv2:\n\n- Treat both table size as valid\n\nOriginally-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "58f87ed0d45141a90167f34c0959d607160a26df",
      "tree": "c9c279958afd9c05d466a2f05b59d4e74d9423af",
      "parents": [
        "e9f74c489c9d4209946c04f29e7a724cb5537206"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Sep 07 12:49:45 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Sep 28 21:38:19 2010 -0400"
      },
      "message": "ACPI: Fix typos\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "95ee46aa8698f2000647dfb362400fadbb5807cf",
      "tree": "e5a05c7297f997e191c73091934e42e3195c0e40",
      "parents": [
        "cfa806f059801dbe7e435745eb2e187c8bfe1e7f",
        "92fa5bd9a946b6e7aab6764e7312e4e3d9bed295"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Aug 15 01:06:31 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Aug 15 01:06:31 2010 -0400"
      },
      "message": "Merge branch \u0027linus\u0027 into release\n\nConflicts:\n\tdrivers/acpi/debug.c\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "2ff729d506e8db82d76a93bc963df4d0a4d46b57",
      "tree": "51cdaa84aad4504232b426a770ce16a5bd0d050b",
      "parents": [
        "7ad6e9435596f692ff65f399da12816c94960185"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Thu Aug 12 11:55:17 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Aug 14 22:47:55 2010 -0400"
      },
      "message": "ACPI, APEI, ERST debug support\n\nThis patch adds debugging/testing support to ERST. A misc device is\nimplemented to export raw ERST read/write/clear etc operations to user\nspace. With this patch, we can add ERST testing support to\nlinuxfirmwarekit ISO (linuxfirmwarekit.org) to verify the kernel\nsupport and the firmware implementation.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "0a7992c90828a65281c3c9cf180be3b432d277b2",
      "tree": "41ecaca813576608b8eed10cabb9d8f3ab312dfa",
      "parents": [
        "d78a3eda6985e74bc21a23362f27526f73e71649"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Aug 11 14:17:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:29 2010 -0700"
      },
      "message": "acpi: fix bogus preemption logic\n\nThe ACPI_PREEMPTION_POINT() logic was introduced in commit 8bd108d\n(ACPICA: add preemption point after each opcode parse).  The follow up\ncommits abe1dfab6, 138d15692, c084ca70 tried to fix the preemption logic\nback and forth, but nobody noticed that the usage of\nin_atomic_preempt_off() in that context is wrong.\n\nThe check which guards the call of cond_resched() is:\n\n    if (!in_atomic_preempt_off() \u0026\u0026 !irqs_disabled())\n\nin_atomic_preempt_off() is not intended for general use as the comment\nabove the macro definition clearly says:\n\n * Check whether we were atomic before we did preempt_disable():\n * (used by the scheduler, *after* releasing the kernel lock)\n\nOn a CONFIG_PREEMPT\u003dn kernel the usage of in_atomic_preempt_off() works by\naccident, but with CONFIG_PREEMPT\u003dy it\u0027s just broken.\n\nThe whole purpose of the ACPI_PREEMPTION_POINT() is to reduce the latency\non a CONFIG_PREEMPT\u003dn kernel, so make ACPI_PREEMPTION_POINT() depend on\nCONFIG_PREEMPT\u003dn and remove the in_atomic_preempt_off() check.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d16210\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Francois Valenduc \u003cfrancois.valenduc@tvcablenet.be\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ad6e9435596f692ff65f399da12816c94960185",
      "tree": "85786993b961b240f2c95fa320b5eeff859dae2c",
      "parents": [
        "ad4ecef2f13c790f95b55320f2925c205d8f971f"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon Aug 02 15:48:24 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Aug 08 14:55:52 2010 -0400"
      },
      "message": "ACPI, APEI, Manage GHES as platform devices\n\nRegister GHES during HEST initialization as platform devices. And make\nGHES driver into platform device driver. So that the GHES driver\nmodule can be loaded automatically when there are GHES available.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "ad4ecef2f13c790f95b55320f2925c205d8f971f",
      "tree": "2718790c7681e10e9ee62e8bb8ec2e0ca0d3bb19",
      "parents": [
        "2663b3f23537618c0c286551b138353fe26b3df8"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon Aug 02 15:48:23 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Aug 08 14:55:26 2010 -0400"
      },
      "message": "ACPI, APEI, Rename CPER and GHES severity constants\n\nThe abbreviation of severity should be SEV instead of SER, so the CPER\nseverity constants are renamed accordingly. GHES severity constants\nare renamed in the same way too.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "2663b3f23537618c0c286551b138353fe26b3df8",
      "tree": "a580c7935fca86828168d92fd896c066947c1179",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon Aug 02 15:48:22 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Aug 08 14:55:12 2010 -0400"
      },
      "message": "ACPI, APEI, Fix a typo of error path of apei_resources_request\n\nFix a typo of error path of apei_resources_request. release_mem_region\nand release_region should be interchange.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "980533b018fda7ae4c4fb6863b75a0e282d2ffd2",
      "tree": "5f89735bc2fef0be17902118f74a6a9e9f470974",
      "parents": [
        "985b823b919273fe1327d56d2196b4f92e5d0fae"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Thu Jul 01 23:27:11 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 01 18:40:29 2010 -0700"
      },
      "message": "correct console log level when ERST ACPI table is not found\n\nWhen booting 2.6.35-rc3 on a x86 system without an ERST ACPI table with\nthe \u0027quiet\u0027 option, we still observe an \"ERST: Table is not found!\"\nwarning.\n\nQuiesce it to the same info log level as the other \u0027table not found\u0027\nwarnings.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0fb8c418520b41d57667befdb8861c46cdf69e0",
      "tree": "ac1693a0408b9762326a357727dfc9c6ebe13650",
      "parents": [
        "327f935a9ef644c0ec3d050c94bce753756d60c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 02:52:44 2010 +0900"
      },
      "committer": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Jun 28 10:19:19 2010 +1000"
      },
      "message": "acpi: update gfp/slab.h includes\n\nImplicit slab.h inclusion via percpu.h is about to go away.  Make sure\ngfp.h or slab.h is included as necessary.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\n"
    },
    {
      "commit": "6e320ec1d98f9eb93d5b2a5d70e2f40dce923f1b",
      "tree": "352a2b82433040611f68bf4782eca2e0db28eb15",
      "parents": [
        "15b0beaa332b3923cce2ed109e0fb141ec1425d9"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue May 18 14:35:24 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed May 19 22:42:08 2010 -0400"
      },
      "message": "ACPI, APEI, EINJ injection parameters support\n\nSome hardware error injection needs parameters, for example, it is\nuseful to specify memory address and memory address mask for memory\nerrors.\n\nSome BIOSes allow parameters to be specified via an unpublished\nextension. This patch adds support to it. The parameters will be\nignored on machines without necessary BIOS support.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "a08f82d08053fb6e3aa3635c2c26456d96337c8b",
      "tree": "ed68e8951610b66c6971cdb1fc446eb9e53e0422",
      "parents": [
        "d334a49113a4a33109fd24e46073280ecd1bea0d"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue May 18 14:35:21 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed May 19 22:41:31 2010 -0400"
      },
      "message": "ACPI, APEI, Error Record Serialization Table (ERST) support\n\nERST is a way provided by APEI to save and retrieve hardware error\nrecord to and from some simple persistent storage (such as flash).\n\nThe Linux kernel support implementation is quite simple and workable\nin NMI context. So it can be used to save hardware error record into\nflash in hardware error exception or NMI handler, where other more\ncomplex persistent storage such as disk is not usable. After saving\nhardware error records via ERST in hardware error exception or NMI\nhandler, the error records can be retrieved and logged into disk or\nnetwork after a clean reboot.\n\nFor more information about ERST, please refer to ACPI Specification\nversion 4.0, section 17.4.\n\nThis patch incorporate fixes from Jin Dongming.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCC: Jin Dongming \u003cjin.dongming@np.css.fujitsu.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d334a49113a4a33109fd24e46073280ecd1bea0d",
      "tree": "e6fd9acf0d143559186876173a3345d940ba0870",
      "parents": [
        "06d65deade9aabba58e0518df86dcd324e86b832"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue May 18 14:35:20 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed May 19 22:41:16 2010 -0400"
      },
      "message": "ACPI, APEI, Generic Hardware Error Source memory error support\n\nGeneric Hardware Error Source provides a way to report platform\nhardware errors (such as that from chipset). It works in so called\n\"Firmware First\" mode, that is, hardware errors are reported to\nfirmware firstly, then reported to Linux by firmware. This way, some\nnon-standard hardware error registers or non-standard hardware link\ncan be checked by firmware to produce more valuable hardware error\ninformation for Linux.\n\nNow, only SCI notification type and memory errors are supported. More\nnotification type and hardware error type will be added later. These\nmemory errors are reported to user space through /dev/mcelog via\nfaking a corrected Machine Check, so that the error memory page can be\nofflined by /sbin/mcelog if the error count for one page is beyond the\nthreshold.\n\nOn some machines, Machine Check can not report physical address for\nsome corrected memory errors, but GHES can do that. So this simplified\nGHES is implemented firstly.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "06d65deade9aabba58e0518df86dcd324e86b832",
      "tree": "48214d97e8dc8f8b02f925e98293d041d5353f69",
      "parents": [
        "fab1c23242528771a955c475ef23d99156a71a7f"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue May 18 14:35:19 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed May 19 22:41:05 2010 -0400"
      },
      "message": "ACPI, APEI, UEFI Common Platform Error Record (CPER) header\n\nCPER stands for Common Platform Error Record, it is the hardware error\nrecord format used to describe platform hardware error by various APEI\ntables, such as ERST, BERT and HEST etc.\n\nFor more information about CPER, please refer to Appendix N of UEFI\nSpecification version 2.3.\n\nThis patch mainly includes the data structure difinition header file\nused by other files.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "e40213450b53157967a1f83eda50e9a941c13a08",
      "tree": "4655490175a52a911e8a5cde44d5f221b4603d49",
      "parents": [
        "9dc966641677795f4d6b0a9ba630d6a3a3e24a57"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue May 18 14:35:14 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed May 19 22:35:29 2010 -0400"
      },
      "message": "ACPI, APEI, EINJ support\n\nEINJ provides a hardware error injection mechanism, this is useful for\ndebugging and testing of other APEI and RAS features.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "9dc966641677795f4d6b0a9ba630d6a3a3e24a57",
      "tree": "677dddf31719a2507b29d062e5b3359357296b37",
      "parents": [
        "a643ce207f3e70030bdb431e2a363cc111a60c1a"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue May 18 14:35:13 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed May 19 22:35:06 2010 -0400"
      },
      "message": "ACPI, APEI, HEST table parsing\n\nHEST describes error sources in detail; communicating operational\nparameters (i.e. severity levels, masking bits, and threshold values)\nto OS as necessary. It also allows the platform to report error\nsources for which OS would typically not implement support (for\nexample, chipset-specific error registers).\n\nHEST information may be needed by other subsystems. For example, HEST\nPCIE AER error source information describes whether a PCIE root port\nworks in \"firmware first\" mode, this is needed by general PCIE AER\nerror subsystem. So a public HEST tabling parsing interface is\nprovided.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "a643ce207f3e70030bdb431e2a363cc111a60c1a",
      "tree": "417a72d16d0b501e5215db157d0ac390e19df7af",
      "parents": [
        "15651291a2f8c11e7e6a42d8bfde7a213ff13262"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue May 18 14:35:12 2010 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed May 19 22:34:30 2010 -0400"
      },
      "message": "ACPI, APEI, APEI supporting infrastructure\n\nAPEI stands for ACPI Platform Error Interface, which allows to report\nerrors (for example from the chipset) to the operating system. This\nimproves NMI handling especially. In addition it supports error\nserialization and error injection.\n\nFor more information about APEI, please refer to ACPI Specification\nversion 4.0, chapter 17.\n\nThis patch provides some common functions used by more than one APEI\ntables, mainly framework of interpreter for EINJ and ERST.\n\nA machine readable language is defined for EINJ and ERST for OS to\nexecute, and so to drive the firmware to fulfill the corresponding\nfunctions. The machine language for EINJ and ERST is compatible, so a\ncommon framework is defined for them.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    }
  ]
}
