)]}'
{
  "log": [
    {
      "commit": "168bfeef7bba3f9784f7540b053e4ac72b769ce9",
      "tree": "a02890616eb3d65377be628ff9cd1b577beb36df",
      "parents": [
        "6f0c0580b70c89094b3422ba81118c7b959c7556"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Oct 23 14:09:39 2012 -0700"
      },
      "committer": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Wed Oct 24 16:13:27 2012 +0200"
      },
      "message": "amd64_edac:__amd64_set_scrub_rate(): avoid overindexing scrubrates[]\n\nIf none of the elements in scrubrates[] matches, this loop will cause\n__amd64_set_scrub_rate() to incorrectly use the n+1th element.\n\nAs the function is designed to use the final scrubrates[] element in the\ncase of no match, we can fix this bug by simply terminating the array\nsearch at the n-1th element.\n\nBoris: this code is fragile anyway, see here why:\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d135102834131236\u0026w\u003d2\n\nIt will be rewritten more robustly soonish.\n\nReported-by: Denis Kirjanov \u003ckirjanov@gmail.com\u003e\nCc: stable@vger.kernel.org\nCc: Doug Thompson \u003cdougthompson@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\n"
    },
    {
      "commit": "5f3d2f2e1a63679cf1c4a4210f2f1cc2f335bef6",
      "tree": "9189bd6c81fe5f982a7ae45d2f3d900176658509",
      "parents": [
        "283dbd82055eb70ff3b469f812d9c695f18c9641",
        "d900bd7366463fd96a907b2c212242e2b68b27d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:16:12 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:16:12 2012 +0900"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\nPull powerpc updates from Benjamin Herrenschmidt:\n \"Some highlights in addition to the usual batch of fixes:\n\n   - 64TB address space support for 64-bit processes by Aneesh Kumar\n\n   - Gavin Shan did a major cleanup \u0026 re-organization of our EEH support\n     code (IBM fancy PCI error handling \u0026 recovery infrastructure) which\n     paves the way for supporting different platform backends, along\n     with some rework of the PCIe code for the PowerNV platform in order\n     to remove home made resource allocations and instead use the\n     generic code (which is possible after some small improvements to it\n     done by Gavin).\n\n   - Uprobes support by Ananth N Mavinakayanahalli\n\n   - A pile of embedded updates from Freescale folks, including new SoC\n     and board supports, more KVM stuff including preparing for 64-bit\n     BookE KVM support, ePAPR 1.1 updates, etc...\"\n\nFixup trivial conflicts in drivers/scsi/ipr.c\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (146 commits)\n  powerpc/iommu: Fix multiple issues with IOMMU pools code\n  powerpc: Fix VMX fix for memcpy case\n  driver/mtd:IFC NAND:Initialise internal SRAM before any write\n  powerpc/fsl-pci: use \u0027Header Type\u0027 to identify PCIE mode\n  powerpc/eeh: Don\u0027t release eeh_mutex in eeh_phb_pe_get\n  powerpc: Remove tlb batching hack for nighthawk\n  powerpc: Set paca-\u003edata_offset \u003d 0 for boot cpu\n  powerpc/perf: Sample only if SIAR-Valid bit is set in P7+\n  powerpc/fsl-pci: fix warning when CONFIG_SWIOTLB is disabled\n  powerpc/mpc85xx: Update interrupt handling for IFC controller\n  powerpc/85xx: Enable USB support in p1023rds_defconfig\n  powerpc/smp: Do not disable IPI interrupts during suspend\n  powerpc/eeh: Fix crash on converting OF node to edev\n  powerpc/eeh: Lock module while handling EEH event\n  powerpc/kprobe: Don\u0027t emulate store when kprobe stwu r1\n  powerpc/kprobe: Complete kprobe and migrate exception frame\n  powerpc/kprobe: Introduce a new thread flag\n  powerpc: Remove unused __get_user64() and __put_user64()\n  powerpc/eeh: Global mutex to protect PE tree\n  powerpc/eeh: Remove EEH PE for normal PCI hotplug\n  ...\n"
    },
    {
      "commit": "033d9959ed2dc1029217d4165f80a71702dc578e",
      "tree": "3d306316e44bdabce2e0bf2ef7e466e525f90b4c",
      "parents": [
        "974a847e00cf3ff1695e62b276892137893706ab",
        "7c6e72e46c9ea4a88f3f8ba96edce9db4bd48726"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 09:54:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 09:54:49 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.7\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue changes from Tejun Heo:\n \"This is workqueue updates for v3.7-rc1.  A lot of activities this\n  round including considerable API and behavior cleanups.\n\n   * delayed_work combines a timer and a work item.  The handling of the\n     timer part has always been a bit clunky leading to confusing\n     cancelation API with weird corner-case behaviors.  delayed_work is\n     updated to use new IRQ safe timer and cancelation now works as\n     expected.\n\n   * Another deficiency of delayed_work was lack of the counterpart of\n     mod_timer() which led to cancel+queue combinations or open-coded\n     timer+work usages.  mod_delayed_work[_on]() are added.\n\n     These two delayed_work changes make delayed_work provide interface\n     and behave like timer which is executed with process context.\n\n   * A work item could be executed concurrently on multiple CPUs, which\n     is rather unintuitive and made flush_work() behavior confusing and\n     half-broken under certain circumstances.  This problem doesn\u0027t\n     exist for non-reentrant workqueues.  While non-reentrancy check\n     isn\u0027t free, the overhead is incurred only when a work item bounces\n     across different CPUs and even in simulated pathological scenario\n     the overhead isn\u0027t too high.\n\n     All workqueues are made non-reentrant.  This removes the\n     distinction between flush_[delayed_]work() and\n     flush_[delayed_]_work_sync().  The former is now as strong as the\n     latter and the specified work item is guaranteed to have finished\n     execution of any previous queueing on return.\n\n   * In addition to the various bug fixes, Lai redid and simplified CPU\n     hotplug handling significantly.\n\n   * Joonsoo introduced system_highpri_wq and used it during CPU\n     hotplug.\n\n  There are two merge commits - one to pull in IRQ safe timer from\n  tip/timers/core and the other to pull in CPU hotplug fixes from\n  wq/for-3.6-fixes as Lai\u0027s hotplug restructuring depended on them.\"\n\nFixed a number of trivial conflicts, but the more interesting conflicts\nwere silent ones where the deprecated interfaces had been used by new\ncode in the merge window, and thus didn\u0027t cause any real data conflicts.\n\nTejun pointed out a few of them, I fixed a couple more.\n\n* \u0027for-3.7\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (46 commits)\n  workqueue: remove spurious WARN_ON_ONCE(in_irq()) from try_to_grab_pending()\n  workqueue: use cwq_set_max_active() helper for workqueue_set_max_active()\n  workqueue: introduce cwq_set_max_active() helper for thaw_workqueues()\n  workqueue: remove @delayed from cwq_dec_nr_in_flight()\n  workqueue: fix possible stall on try_to_grab_pending() of a delayed work item\n  workqueue: use hotcpu_notifier() for workqueue_cpu_down_callback()\n  workqueue: use __cpuinit instead of __devinit for cpu callbacks\n  workqueue: rename manager_mutex to assoc_mutex\n  workqueue: WORKER_REBIND is no longer necessary for idle rebinding\n  workqueue: WORKER_REBIND is no longer necessary for busy rebinding\n  workqueue: reimplement idle worker rebinding\n  workqueue: deprecate __cancel_delayed_work()\n  workqueue: reimplement cancel_delayed_work() using try_to_grab_pending()\n  workqueue: use mod_delayed_work() instead of __cancel + queue\n  workqueue: use irqsafe timer for delayed_work\n  workqueue: clean up delayed_work initializers and add missing one\n  workqueue: make deferrable delayed_work initializer names consistent\n  workqueue: cosmetic whitespace updates for macro definitions\n  workqueue: deprecate system_nrt[_freezable]_wq\n  workqueue: deprecate flush[_delayed]_work_sync()\n  ...\n"
    },
    {
      "commit": "deb09ddaff1435f72dd598d38f9b58354c68a5ec",
      "tree": "9a014cae7a7f499513d92623d4325821da89263f",
      "parents": [
        "b70f833377fc80d7446218b36206e2e299fc6bfd"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Sep 20 12:09:30 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Sep 25 07:38:20 2012 -0300"
      },
      "message": "sb_edac: Avoid overflow errors at memory size calculation\n\nSandy bridge EDAC is calculating the memory size with overflow.\nBasically, the size field and the integer calculation is using 32 bits.\nMore bits are needed, when the DIMM memories have high density.\n\nThe net result is that memories are improperly reported there, when\nhigh-density DIMMs are used:\n\nEDAC DEBUG: in drivers/edac/sb_edac.c, line at 591: mc#0: channel 0, dimm 0, -16384 Mb (-4194304 pages) bank: 8, rank: 2, row: 0x10000, col: 0x800\nEDAC DEBUG: in drivers/edac/sb_edac.c, line at 591: mc#0: channel 1, dimm 0, -16384 Mb (-4194304 pages) bank: 8, rank: 2, row: 0x10000, col: 0x800\n\nAs the number of pages value is handled at the EDAC core as unsigned\nints, the driver shows the 16 GB memories at sysfs interface as 16760832\nMB! The fix is simple: calculate the number of pages as unsigned 64-bits\ninteger.\n\nAfter the patch, the memory size (16 GB) is properly detected:\n\nEDAC DEBUG: in drivers/edac/sb_edac.c, line at 592: mc#0: channel 0, dimm 0, 16384 Mb (4194304 pages) bank: 8, rank: 2, row: 0x10000, col: 0x800\nEDAC DEBUG: in drivers/edac/sb_edac.c, line at 592: mc#0: channel 1, dimm 0, 16384 Mb (4194304 pages) bank: 8, rank: 2, row: 0x10000, col: 0x800\n\nCc: stable@kernel.org\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "b70f833377fc80d7446218b36206e2e299fc6bfd",
      "tree": "a5efb25285eb6ffa1e0743365568d1559d52b851",
      "parents": [
        "582a899622f19005126d2858f08ee0c9dac34870"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Sep 10 13:25:50 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Sep 25 07:38:19 2012 -0300"
      },
      "message": "i5000: Fix the memory size calculation with 2R memories\n\nWhen 2R memories are found, the memory size should be multiplied\nby two, otherwise, it will report half of the memory size:\n\n       +-----------------------------------------------+\n       |                      mc0                      |\n       |        branch0        |        branch1        |\n       | channel0  | channel1  | channel0  | channel1  |\n-------+-----------------------------------------------+\nslot3: |     0 MB  |     0 MB  |     0 MB  |     0 MB  |\nslot2: |     0 MB  |     0 MB  |     0 MB  |     0 MB  |\n-------+-----------------------------------------------+\nslot1: |     0 MB  |     0 MB  |     0 MB  |     0 MB  |\nslot0: |  1024 MB  |  1024 MB  |  1024 MB  |  1024 MB  |\n-------+-----------------------------------------------+\n\n(the above machine have 4 x 2GB 2R memories)\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "582a899622f19005126d2858f08ee0c9dac34870",
      "tree": "b6ac410a85e5f8b479e3279334078430ba96e19d",
      "parents": [
        "979570e02981d4a8fc20b3cc8fd651856c98ee9d"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Aug 02 17:58:23 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Sep 25 07:32:33 2012 -0300"
      },
      "message": "i3200_edac: Fix memory rank size\n\ncommit a895bf8b1e1ea4c032a8fa8a09475a2ce09fe77a incorrectly\nchanged the logic that fills the memory bank size. Fix it.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "faa2ad09c01c48012fe4c117d3256e354e0f9238",
      "tree": "b525fbdc4fa81daec86c6b09de4ee48f009d1934",
      "parents": [
        "ef6e7816b4546475d04b4ea22d58c48472157c70"
      ],
      "author": {
        "name": "Shaun Ruffell",
        "email": "sruffell@digium.com",
        "time": "Sat Sep 22 20:26:38 2012 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 23 14:46:40 2012 -0700"
      },
      "message": "edac_mc: edac_mc_free() cannot assume mem_ctl_info is registered in sysfs.\n\nFix potential NULL pointer dereference in edac_unregister_sysfs() on\nsystem boot introduced in 3.6-rc1.\n\nSince commit 7a623c039 (\"edac: rewrite the sysfs code to use struct\ndevice\") edac_mc_alloc() no longer initializes embedded kobjects in\nstruct mem_ctl_info.  Therefore edac_mc_free() can no longer simply\ndecrement a kobject reference count to free the allocated memory unless\nthe memory controller driver module had also called edac_mc_add_mc().\n\nNow edac_mc_free() will check if the newly embedded struct device has\nbeen registered with sysfs before using either the standard device\nrelease functions or freeing the data structures itself with logic\npulled out of the error path of edac_mc_alloc().\n\nThe BUG this patch resolves for me:\n\n  BUG: unable to handle kernel NULL pointer dereference at   (null)\n  EIP is at __wake_up_common+0x1a/0x6a\n  Process modprobe (pid: 933, ti\u003df3dc6000 task\u003df3db9520 task.ti\u003df3dc6000)\n  Call Trace:\n    complete_all+0x3f/0x50\n    device_pm_remove+0x23/0xa2\n    device_del+0x34/0x142\n    edac_unregister_sysfs+0x3b/0x5c [edac_core]\n    edac_mc_free+0x29/0x2f [edac_core]\n    e7xxx_probe1+0x268/0x311 [e7xxx_edac]\n    e7xxx_init_one+0x56/0x61 [e7xxx_edac]\n    local_pci_probe+0x13/0x15\n  ...\n\nCc: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nSigned-off-by: Shaun Ruffell \u003csruffell@digium.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef6e7816b4546475d04b4ea22d58c48472157c70",
      "tree": "6589164940cf4a0f113b1f48dbcce60391112c4e",
      "parents": [
        "e5e77cf9f9a275083f9a365a20d956fa8a67803e"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Sun Sep 23 08:18:06 2012 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 23 14:45:26 2012 -0700"
      },
      "message": "edac_mc: fix messy kfree calls in the error path\n\ncoccinelle warns about:\n\n+ drivers/edac/edac_mc.c:429:9-23: ERROR: reference preceded by free on line 429\n\n   421         if (mci-\u003ecsrows) {\n \u003e 422                 for (chn \u003d 0; chn \u003c tot_channels; chn++) {\n   423                         csr \u003d mci-\u003ecsrows[chn];\n   424                         if (csr) {\n \u003e 425                                 for (chn \u003d 0; chn \u003c tot_channels; chn++)\n   426                                          kfree(csr-\u003echannels[chn]);\n   427                                  kfree(csr);\n   428                          }\n \u003e 429                          kfree(mci-\u003ecsrows[i]);\n   430                  }\n   431                  kfree(mci-\u003ecsrows);\n   432          }\n\nand that code block seem to mess things up in several ways (double free, memory\nleak, out-of-bound reads etc.):\n\nL422: The iterator \"chn\" and bound \"tot_channels\" are totally wrong. Should be\n      \"row\" and \"tot_csrows\" respectively. Which means either memory leak, or\n      out-of-bound reads (which if does not trigger an immediate page fault\n      error, will further lead to kfree() on random addresses).\n\nL425: The inner loop is reusing the same iterator \"chn\" as the outer loop,\n      which could lead to premature end of the outer loop, and hence memory leak.\n\nL429: The array index \u0027i\u0027 in mci-\u003ecsrows[i] is a temporary value used in\n      previous loops, and won\u0027t change at all in the current loop. Which\n      means either out-of-bound read and possibly kfree(random number), or the\n      same mci-\u003ecsrows[i] get freed once and again, and possibly double free\n      for the kfree(csr) in L427.\n\nL426/L427: a kfree(csr-\u003echannels) is needed in between to avoid leaking the memory.\n\nThe buggy code was introduced by commit de3910eb (\"edac: change the mem\nallocation scheme to make Documentation/kobject.txt happy\") in the 3.6-rc1\nmerge window. Fix it by freeing up resources in this order:\n\n  free csrows[i]-\u003echannels[j]\n  free csrows[i]-\u003echannels\n  free csrows[i]\n  free csrows\n\nCC: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nCC: Shaun Ruffell \u003csruffell@digium.com\u003e\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "905e75c46dba5f3061049277e4eb7110beedba43",
      "tree": "3a83c25efa8f93360772520c23f3d8b8b9d9aef1",
      "parents": [
        "9e67886becd7fab36c97ef43bb81515c18a66be1"
      ],
      "author": {
        "name": "Jia Hongtao",
        "email": "B38951@freescale.com",
        "time": "Tue Aug 28 15:44:08 2012 +0800"
      },
      "committer": {
        "name": "Kumar Gala",
        "email": "galak@kernel.crashing.org",
        "time": "Wed Sep 12 14:57:12 2012 -0500"
      },
      "message": "powerpc/fsl-pci: Unify pci/pcie initialization code\n\nWe unified the Freescale pci/pcie initialization by changing the fsl_pci\nto a platform driver. In previous PCI code architecture the initialization\nroutine is called at board_setup_arch stage. Now the initialization is done\nin probe function which is architectural better. Also It\u0027s convenient for\nadding PM support for PCI controller in later patch.\n\nNow we registered pci controllers as platform devices. So we combine two\ninitialization code as one platform driver.\n\nSigned-off-by: Jia Hongtao \u003cB38951@freescale.com\u003e\nSigned-off-by: Li Yang \u003cleoli@freescale.com\u003e\nSigned-off-by: Chunhe Lan \u003cChunhe.Lan@freescale.com\u003e\nSigned-off-by: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "41f63c5359d14ca995172b8f6eaffd93f60fec54",
      "tree": "d3d93dfd25d2e29e8abeae934835f2266b018cb7",
      "parents": [
        "8376fe22c7e79c7e90857d39f82aeae6cad6c4b8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:47 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 13 16:27:37 2012 -0700"
      },
      "message": "workqueue: use mod_delayed_work() instead of cancel + queue\n\nConvert delayed_work users doing cancel_delayed_work() followed by\nqueue_delayed_work() to mod_delayed_work().\n\nMost conversions are straight-forward.  Ones worth mentioning are,\n\n* drivers/edac/edac_mc.c: edac_mc_workq_setup() converted to always\n  use mod_delayed_work() and cancel loop in\n  edac_mc_reset_delay_period() is dropped.\n\n* drivers/platform/x86/thinkpad_acpi.c: No need to remember whether\n  watchdog is active or not.  @fan_watchdog_active and related code\n  dropped.\n\n* drivers/power/charger-manager.c: Seemingly a lot of\n  delayed_work_pending() abuse going on here.\n  [delayed_]work_pending() are unsynchronized and racy when used like\n  this.  I converted one instance in fullbatt_handler().  Please\n  conver the rest so that it invokes workqueue APIs for the intended\n  target state rather than trying to game work item pending state\n  transitions.  e.g. if timer should be modified - call\n  mod_delayed_work(), canceled - call cancel_delayed_work[_sync]().\n\n* drivers/thermal/thermal_sys.c: thermal_zone_device_set_polling()\n  simplified.  Note that round_jiffies() calls in this function are\n  meaningless.  round_jiffies() work on absolute jiffies not delta\n  delay used by delayed_work.\n\nv2: Tomi pointed out that __cancel_delayed_work() users can\u0027t be\n    safely converted to mod_delayed_work().  They could be calling it\n    from irq context and if that happens while delayed_work_timer_fn()\n    is running, it could deadlock.  __cancel_delayed_work() users are\n    dropped.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nAcked-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nAcked-by: Anton Vorontsov \u003ccbouatmailru@gmail.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Tomi Valkeinen \u003ctomi.valkeinen@ti.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Doug Thompson \u003cdougthompson@xmission.com\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Roland Dreier \u003croland@kernel.org\u003e\nCc: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nCc: Zhang Rui \u003crui.zhang@intel.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\n"
    },
    {
      "commit": "c2078e4c9120e7b38b1a02cd9fc6dd4f792110bf",
      "tree": "a30b29c0bf8cf2288a32ceaeb75013cb0b5d5865",
      "parents": [
        "73bcc49959e4e40911dd0dd634bf1b353827df66",
        "f58d0dee07fe6328f775669eb6aa3a123efad6c2"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Sun Jul 29 21:11:05 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Sun Jul 29 21:11:05 2012 -0300"
      },
      "message": "Merge branch \u0027devel\u0027\n\n* devel: (33 commits)\n  edac i5000, i5400: fix pointer math in i5000_get_mc_regs()\n  edac: allow specifying the error count with fake_inject\n  edac: add support for Calxeda highbank L2 cache ecc\n  edac: add support for Calxeda highbank memory controller\n  edac: create top-level debugfs directory\n  sb_edac: properly handle error count\n  i7core_edac: properly handle error count\n  edac: edac_mc_handle_error(): add an error_count parameter\n  edac: remove arch-specific parameter for the error handler\n  amd64_edac: Don\u0027t pass driver name as an error parameter\n  edac_mc: check for allocation failure in edac_mc_alloc()\n  edac: Increase version to 3.0.0\n  edac_mc: Cleanup per-dimm_info debug messages\n  edac: Convert debugfX to edac_dbg(X,\n  edac: Use more normal debugging macro style\n  edac: Don\u0027t add __func__ or __FILE__ for debugf[0-9] msgs\n  Edac: Add ABI Documentation for the new device nodes\n  edac: move documentation ABI to ABI/testing/sysfs-devices-edac\n  i7core_edac: change the mem allocation scheme to make Documentation/kobject.txt happy\n  edac: change the mem allocation scheme to make Documentation/kobject.txt happy\n  ...\n"
    },
    {
      "commit": "f58d0dee07fe6328f775669eb6aa3a123efad6c2",
      "tree": "1d330e6db0495cbe033d761feb3686a7de790dea",
      "parents": [
        "38ced28b21efff18fd5e5c98a92830e8f0031cee"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Jun 27 12:07:58 2012 +0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jun 27 09:08:40 2012 -0300"
      },
      "message": "edac i5000, i5400: fix pointer math in i5000_get_mc_regs()\n\n\"pvt-\u003eambase\" is a u64 datatype.  The intent here is to fill the first\nhalf in the first call to pci_read_config_dword() and the other half in\nthe second.  Unfortunately the pointer math is wrong so we set the wrong\ndata.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "38ced28b21efff18fd5e5c98a92830e8f0031cee",
      "tree": "e409eed80e257faa01acc1cdc05cb7c0e0be7cb2",
      "parents": [
        "69154d069869b612383cef9d594f39b34ffba6dd"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Jun 12 10:55:57 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jun 27 09:01:30 2012 -0300"
      },
      "message": "edac: allow specifying the error count with fake_inject\n\nIn order to test if the error counters are properly incremented,\nadd a way to specify how many errors were generated by a trace.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "69154d069869b612383cef9d594f39b34ffba6dd",
      "tree": "ca356af0247ba18c0ffb1c00d9519530d2347832",
      "parents": [
        "a1b01edb274518c7da6d69b84e7558c092282aad"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Mon Jun 11 21:32:14 2012 -0500"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jun 27 09:01:29 2012 -0300"
      },
      "message": "edac: add support for Calxeda highbank L2 cache ecc\n\nAdd support for L2 ECC on Calxeda highbank platform.\n\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "a1b01edb274518c7da6d69b84e7558c092282aad",
      "tree": "fe476bbb5048472e9347c20b832fc4ccba08f27e",
      "parents": [
        "e7930ba49e469d9ce7374a788336caf955f8d7e2"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Wed Jun 13 12:01:55 2012 -0500"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jun 27 09:00:57 2012 -0300"
      },
      "message": "edac: add support for Calxeda highbank memory controller\n\nAdd support for memory controller on Calxeda Highbank platforms. Highbank\nplatforms support a single 4GB mini-DIMM with 1-bit correction and 2-bit\ndetection.\n\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "e7930ba49e469d9ce7374a788336caf955f8d7e2",
      "tree": "e022c408057f46881d8da9cfd9b76d5b34e551d5",
      "parents": [
        "c10538396bf3f0076630103ede49c863c27db720"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Mon Jun 11 21:32:12 2012 -0500"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Jun 12 12:15:49 2012 -0300"
      },
      "message": "edac: create top-level debugfs directory\n\nCreate a single, top-level \"edac\" directory for debugfs. An \"mc[0-N]\"\ndirectory is then created for each memory controller. Individual drivers\ncan create additional entries such as h/w error injection control.\n\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "c10538396bf3f0076630103ede49c863c27db720",
      "tree": "5b8cc03638af4c14784fd09836d29348c5e3ee60",
      "parents": [
        "00d18339276d35bc6b7ae6ae1a64ebf2242b89f6"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 04 13:40:05 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Jun 12 12:15:49 2012 -0300"
      },
      "message": "sb_edac: properly handle error count\n\nInstead of reporting the error count via driver-specific details,\nuse the new way provided by edac_mc_handle_error.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "00d18339276d35bc6b7ae6ae1a64ebf2242b89f6",
      "tree": "6dfaea8e622827dc7c61c6fa1b59deff34fea3f9",
      "parents": [
        "9eb07a7fb8a90ee39fa9d5489afc0330cfcfbea7"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 04 13:38:52 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Jun 12 12:15:48 2012 -0300"
      },
      "message": "i7core_edac: properly handle error count\n\nInstead of generating a burst of errors or reporting the error\ncount via driver-specific details, use the new way provided by\nedac_mc_handle_error.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "9eb07a7fb8a90ee39fa9d5489afc0330cfcfbea7",
      "tree": "2d034ec31225f2b82267ab3e081c4e8263e7b85f",
      "parents": [
        "03f7eae80f4b913929be84e0c883ee98196fd6ff"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 04 13:27:43 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Jun 12 12:15:47 2012 -0300"
      },
      "message": "edac: edac_mc_handle_error(): add an error_count parameter\n\nIn order to avoid loosing error events, it is desirable to group\nerror events together and generate a single trace for several identical\nerrors.\n\nThe trace API already allows reporting multiple errors. Change the\nhandle_error function to also allow that.\n\nThe changes at the drivers were made by this small script:\n\n\t$file .\u003d$_ while (\u003c\u003e);\n\t$file \u003d~ s/(edac_mc_handle_error)\\s*\\(([^\\,]+)\\,([^\\,]+)\\,/$1($2,$3, 1,/g;\n\tprint $file;\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "03f7eae80f4b913929be84e0c883ee98196fd6ff",
      "tree": "5babfa8755aa6f421745ae7c0d29882d5da8e355",
      "parents": [
        "075f30901e32feefd3641e6c5537611fd7e27b59"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 04 11:29:25 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:52 2012 -0300"
      },
      "message": "edac: remove arch-specific parameter for the error handler\n\nRemove the arch-dependent parameter, as it were not used,\nas the MCE tracepoint weren\u0027t implemented. It probably doesn\u0027t\nmake sense to have an MCE-specific tracepoint, as this will\ncost more bytes at the tracepoint, and tracepoint is not free.\n\nThe changes at the EDAC drivers were done by this small perl script:\n\n\t$file .\u003d$_ while (\u003c\u003e);\n\t$file \u003d~ s/(edac_mc_handle_error)\\s*\\(([^\\;]+)\\,([^\\,\\)]+)\\s*\\)/$1($2)/g;\n\tprint $file;\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "075f30901e32feefd3641e6c5537611fd7e27b59",
      "tree": "b09c6e92d49694658892c17fc065925144858d49",
      "parents": [
        "08a4a136909602eae0e71e147153461df077a46f"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue May 22 09:06:17 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:51 2012 -0300"
      },
      "message": "amd64_edac: Don\u0027t pass driver name as an error parameter\n\nThe EDAC driver name doesn\u0027t help to handle EDAC errors. So,\nremove it from the EDAC error messages, preserving only the\nerror_message.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "08a4a136909602eae0e71e147153461df077a46f",
      "tree": "ba8ec894512dd769b3cac5bcd4cfc4e4362124f5",
      "parents": [
        "5156a5f4e058b906c1e8c0fe2ab16f30b60dee96"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Fri May 18 15:51:02 2012 +0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:51 2012 -0300"
      },
      "message": "edac_mc: check for allocation failure in edac_mc_alloc()\n\nAdd a check here for if kzalloc() failed.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "5156a5f4e058b906c1e8c0fe2ab16f30b60dee96",
      "tree": "e78aa6eb13930c127fc03015271c2aafe0d82e03",
      "parents": [
        "6e84d359b2bea5ce659b3c3e5d3003fb11bd91d5"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu May 10 12:43:01 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:50 2012 -0300"
      },
      "message": "edac: Increase version to 3.0.0\n\nThere were lots of changes introduced to justify renaming it to\n3.0.0:\n\n  - EDAC core were redesigned to represent all types of\n    memory controllers;\n\n  - EDAC API were redesigned to properly represent the memory\n    controller hierarchy;\n\n  - a tracepoint-based API were added to report memory errors.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "6e84d359b2bea5ce659b3c3e5d3003fb11bd91d5",
      "tree": "80bbfc5e78b21ab82e1d89a52d3baecd09943623",
      "parents": [
        "956b9ba156dbfdb9cede2b2927ddf8be2233b3a7"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 30 10:24:43 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:49 2012 -0300"
      },
      "message": "edac_mc: Cleanup per-dimm_info debug messages\n\nThe edac_mc_alloc() routine allocates one dimm_info device for all\npossible memories, including the non-filled ones. The debug messages\nthere are somewhat confusing. So, cleans them, by moving the code\nthat prints the memory location to edac_mc, and using it on both\nedac_mc_sysfs and edac_mc.\n\nAlso, only dumps information when DIMM/ranks are actually\nfilled.\n\nAfter this patch, a dimm-based memory controller will print the debug\ninfo as:\n\n[ 1011.380027] EDAC DEBUG: edac_mc_dump_csrow: csrow-\u003ecsrow_idx \u003d 0\n[ 1011.380029] EDAC DEBUG: edac_mc_dump_csrow:   csrow \u003d ffff8801169be000\n[ 1011.380031] EDAC DEBUG: edac_mc_dump_csrow:   csrow-\u003efirst_page \u003d 0x0\n[ 1011.380032] EDAC DEBUG: edac_mc_dump_csrow:   csrow-\u003elast_page \u003d 0x0\n[ 1011.380034] EDAC DEBUG: edac_mc_dump_csrow:   csrow-\u003epage_mask \u003d 0x0\n[ 1011.380035] EDAC DEBUG: edac_mc_dump_csrow:   csrow-\u003enr_channels \u003d 3\n[ 1011.380037] EDAC DEBUG: edac_mc_dump_csrow:   csrow-\u003echannels \u003d ffff8801149c2840\n[ 1011.380039] EDAC DEBUG: edac_mc_dump_csrow:   csrow-\u003emci \u003d ffff880117426000\n[ 1011.380041] EDAC DEBUG: edac_mc_dump_channel:   channel-\u003echan_idx \u003d 0\n[ 1011.380042] EDAC DEBUG: edac_mc_dump_channel:     channel \u003d ffff8801149c2860\n[ 1011.380044] EDAC DEBUG: edac_mc_dump_channel:     channel-\u003ecsrow \u003d ffff8801169be000\n[ 1011.380046] EDAC DEBUG: edac_mc_dump_channel:     channel-\u003edimm \u003d ffff88010fe90400\n...\n[ 1011.380095] EDAC DEBUG: edac_mc_dump_dimm: dimm0: channel 0 slot 0 mapped as virtual row 0, chan 0\n[ 1011.380097] EDAC DEBUG: edac_mc_dump_dimm:   dimm \u003d ffff88010fe90400\n[ 1011.380099] EDAC DEBUG: edac_mc_dump_dimm:   dimm-\u003elabel \u003d \u0027CPU#0Channel#0_DIMM#0\u0027\n[ 1011.380101] EDAC DEBUG: edac_mc_dump_dimm:   dimm-\u003enr_pages \u003d 0x40000\n[ 1011.380103] EDAC DEBUG: edac_mc_dump_dimm:   dimm-\u003egrain \u003d 8\n[ 1011.380104] EDAC DEBUG: edac_mc_dump_dimm:   dimm-\u003enr_pages \u003d 0x40000\n...\n\n(a rank-based memory controller would print, instead of \"dimm?\", \"rank?\"\n on the above debug info)\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "956b9ba156dbfdb9cede2b2927ddf8be2233b3a7",
      "tree": "6ece471eee029a1ca83ce649f7dc23020ebef182",
      "parents": [
        "7e881856eee8b889b76cd1d8e04ce2fc79b72099"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Apr 29 17:08:39 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:49 2012 -0300"
      },
      "message": "edac: Convert debugfX to edac_dbg(X,\n\nUse a more common debugging style.\n\nRemove __FILE__ uses, add missing newlines,\ncoalesce formats and align arguments.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "7e881856eee8b889b76cd1d8e04ce2fc79b72099",
      "tree": "1cd297b48d2193bce416a5516583fe65630c2d45",
      "parents": [
        "dd23cd6eb1f59ba722a6e6aa228adff7c01404de"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sat Apr 28 16:41:46 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:48 2012 -0300"
      },
      "message": "edac: Use more normal debugging macro style\n\nConvert macros to a simpler style and enforce appropriate\nformat checking when not CONFIG_EDAC_DEBUG.\n\nUse fmt and __VA_ARGS__, neaten macros.\n\nMove some string arrays to the debugfx uses and remove the\nnow unnecessary CONFIG_EDAC_DEBUG variable block definitions.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "dd23cd6eb1f59ba722a6e6aa228adff7c01404de",
      "tree": "32c45fb296293af1309f926b8c109eef329f4f22",
      "parents": [
        "2639c3ee298401881cc560c5e3987f8b222b9f7c"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Sun Apr 29 11:59:14 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:47 2012 -0300"
      },
      "message": "edac: Don\u0027t add __func__ or __FILE__ for debugf[0-9] msgs\n\nThe debug macro already adds that. Most of the work here was\nmade by this small script:\n\n$f .\u003d$_ while (\u003c\u003e);\n\n$f \u003d~ s/(debugf[0-9]\\s*\\(\\s*)__FILE__\\s*\": /\\1\"/g;\n$f \u003d~ s/(debugf[0-9]\\s*\\(\\s*)__FILE__\\s*/\\1/g;\n$f \u003d~ s/(debugf[0-9]\\s*\\(\\s*)__FILE__\\s*\"MC: /\\1\"/g;\n\n$f \u003d~ s/(debugf[0-9]\\s*\\(\\\")\\%s[\\:\\,\\(\\)]*\\s*([^\\\"]*\\s*[^\\)]+)__func__\\s*\\,\\s*/\\1\\2/g;\n$f \u003d~ s/(debugf[0-9]\\s*\\(\\\")\\%s[\\:\\,\\(\\)]*\\s*([^\\\"]*\\s*[^\\)]+),\\s*__func__\\s*\\)/\\1\\2)/g;\n$f \u003d~ s/(debugf[0-9]\\s*\\(\\\"MC\\:\\s*)\\%s[\\:\\,\\(\\)]*\\s*([^\\\"]*\\s*[^\\)]+)__func__\\s*\\,\\s*/\\1\\2/g;\n$f \u003d~ s/(debugf[0-9]\\s*\\(\\\"MC\\:\\s*)\\%s[\\:\\,\\(\\)]*\\s*([^\\\"]*\\s*[^\\)]+),\\s*__func__\\s*\\)/\\1\\2)/g;\n\n$f \u003d~ s/\\\"MC\\: \\\\n\\\"/\"MC:\\\\n\"/g;\n\nprint $f;\n\nAfter running the script, manual cleanups were done to fix it the remaining\nplaces.\n\nWhile here, removed the __LINE__ on most places, as it doesn\u0027t actually give\nuseful info on most places.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "356f0a30860d44de7ac021708caa0c8bd5688dbe",
      "tree": "c92b669ad95f4001ea96d79cd2452b68dce45e5f",
      "parents": [
        "de3910eb79ac8c0f29a11224661c0ebaaf813039"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri Mar 30 16:10:51 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:46 2012 -0300"
      },
      "message": "i7core_edac: change the mem allocation scheme to make Documentation/kobject.txt happy\n\nKernel kobjects have rigid rules: each container object should be\ndynamically allocated, and can\u0027t be allocated into a single kmalloc.\n\nEDAC never obeyed this rule: it has a single malloc function that\nallocates all needed data into a single kzalloc.\n\nAs this is not accepted anymore, change the allocation schema of the\nEDAC *_info structs to enforce this Kernel standard.\n\nCc: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "de3910eb79ac8c0f29a11224661c0ebaaf813039",
      "tree": "44584d6691588b2c18823260be0e44f0c9872d02",
      "parents": [
        "e39f4ea9b01f137f9e6fa631f3e9088fb9175e91"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Apr 24 15:05:43 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:45 2012 -0300"
      },
      "message": "edac: change the mem allocation scheme to make Documentation/kobject.txt happy\n\nKernel kobjects have rigid rules: each container object should be\ndynamically allocated, and can\u0027t be allocated into a single kmalloc.\n\nEDAC never obeyed this rule: it has a single malloc function that\nallocates all needed data into a single kzalloc.\n\nAs this is not accepted anymore, change the allocation schema of the\nEDAC *_info structs to enforce this Kernel standard.\n\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Greg K H \u003cgregkh@linuxfoundation.org\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Tim Small \u003ctim@buttersideup.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Egor Martovetsky \u003cegor@pasemi.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: linuxppc-dev@lists.ozlabs.org\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "e39f4ea9b01f137f9e6fa631f3e9088fb9175e91",
      "tree": "3e334c0893f60a75b69355c631f52ed37fe028bd",
      "parents": [
        "fd63312dfe70b8279618b4d77dc951b6e309ffa2"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Mar 29 12:20:22 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:44 2012 -0300"
      },
      "message": "edac: Only expose csrows/channels on legacy API if they\u0027re populated\n\nThis patch actually fixes a bug with the legacy API, where, at the\nsame csrow, some channels may have different DIMMs. This can happen\non FB-DIMM/RAMBUS and modern Intel controllers.\n\nThis is the case, for example, of Nehalem machines:\n\n$ ./edac-ctl --layout\n       +-----------------------------------+\n       |                mc0                |\n       | channel0  | channel1  | channel2  |\n-------+-----------------------------------+\nslot2: |     0 MB  |     0 MB  |     0 MB  |\nslot1: |  1024 MB  |     0 MB  |     0 MB  |\nslot0: |  1024 MB  |  1024 MB  |  1024 MB  |\n-------+-----------------------------------+\n\nBefore this patch, non-filled memories were shown. Now, only what\u0027s\nfilled is there:\n\ngrep . /sys/devices/system/edac/mc/mc0/csrow*/ch?*\n/sys/devices/system/edac/mc/mc0/csrow0/ch0_ce_count:0\n/sys/devices/system/edac/mc/mc0/csrow0/ch0_dimm_label:CPU#0Channel#0_DIMM#0\n/sys/devices/system/edac/mc/mc0/csrow0/ch1_ce_count:0\n/sys/devices/system/edac/mc/mc0/csrow0/ch1_dimm_label:CPU#0Channel#0_DIMM#1\n/sys/devices/system/edac/mc/mc0/csrow1/ch0_ce_count:0\n/sys/devices/system/edac/mc/mc0/csrow1/ch0_dimm_label:CPU#0Channel#1_DIMM#0\n/sys/devices/system/edac/mc/mc0/csrow2/ch0_ce_count:0\n/sys/devices/system/edac/mc/mc0/csrow2/ch0_dimm_label:CPU#0Channel#2_DIMM#0\n\nThanks-to: Aristeu Rozanski Filho \u003carozansk@redhat.com\u003e\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "fd63312dfe70b8279618b4d77dc951b6e309ffa2",
      "tree": "a6a4012398f8977d7059d3dd6e85c120c4fc50fd",
      "parents": [
        "452a6bf955ee1842361742833e40e046287308f4"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Mar 28 19:37:59 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:44 2012 -0300"
      },
      "message": "edac: Move grain/dtype/edac_type calculus to be out of channel loop\n\nThe 3e7bddc changeset (edac: move dimm properties to struct memset_info)\nmoved the calculus inside a loop. However, at those stuff are common to\nall channels, on several drivers, it is better to put the calculus\noutside the loop, to optimize the code.\n\nReported-by: Aristeu Rozanski Filho \u003carozansk@redhat.com\u003e\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "452a6bf955ee1842361742833e40e046287308f4",
      "tree": "2e4fb61fbbf32f17d80d9fce27a985361e6fc9af",
      "parents": [
        "8ad6c78a69ac5c74e8f4e8c78cdb86772face433"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Mar 26 09:35:11 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:43 2012 -0300"
      },
      "message": "edac: Add debufs nodes to allow doing fake error inject\n\nSometimes, it is useful to have a mechanism that generates fake\nerrors, in order to test the EDAC core code, and the userspace\ntools.\n\nProvide such mechanism by adding a few debugfs nodes.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "8ad6c78a69ac5c74e8f4e8c78cdb86772face433",
      "tree": "902da8ecdd71ee842645f1c0d1b009e79ce2065f",
      "parents": [
        "199747106934c4dc9cf90d37538f989e29420833"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Mar 21 17:13:24 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:43 2012 -0300"
      },
      "message": "edac: add a sysfs node to report the maximum location for the system\n\nThe userspace tools need to know what\u0027s the maximum location on each\nsystem, as it helps to create nice maps showing how the memory was\nfilled at the system.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "199747106934c4dc9cf90d37538f989e29420833",
      "tree": "53c7f6b7c0c7fb65efd0694205f9ecfafd57bfc4",
      "parents": [
        "d90c008963ef638cb7ab7d5eb76362b3c2d379bc"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Mar 21 17:06:53 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:42 2012 -0300"
      },
      "message": "edac: add a new per-dimm API and make the old per-virtual-rank API obsolete\n\nThe old EDAC API is broken. It only works fine for systems manufatured\nbefore 2005 and for AMD 64. The reason is that it forces all memory\ncontroller drivers to discover rank info.\n\nAlso, it doesn\u0027t allow grouping the several ranks into a DIMM.\n\nSo, what almost all modern drivers do is to create a fake virtual-rank\ninformation, and use it to cheat the EDAC core to accept the driver.\n\nWhile this works if the user has enough time to discover what DIMM slot\ncorresponds to each \"virtual-rank\" information, it prevents EDAC usage\nfor users with less available time. It also makes life hard for vendors\nthat may want to provide a table with their motherboards to the userspace\ntool (edac-utils) as each driver has its own logic for the virtual\nmapping.\n\nSo, the old API should be removed, in favor of a more flexible API that\nallows newer drivers to not lie to the EDAC core.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Josh Boyer \u003cjwboyer@redhat.com\u003e\nCc: Hui Wang \u003cjason77.wang@gmail.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "d90c008963ef638cb7ab7d5eb76362b3c2d379bc",
      "tree": "a2b394bd9ea90b48ec4f5015c2183c3c9f58e14e",
      "parents": [
        "5c4cdb5ae72988ef93f72ad6f46be0e4eea5be8d"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Mar 21 16:55:02 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:41 2012 -0300"
      },
      "message": "edac: Get rid of the old kobj\u0027s from the edac mc code\n\nNow that al users for the old kobj raw access are gone,\nwe can get rid of the legacy kobj-based structures and\ndata.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "5c4cdb5ae72988ef93f72ad6f46be0e4eea5be8d",
      "tree": "209b4462654701012593482c7b10bdccdf6ef08b",
      "parents": [
        "c56087595fb6531f359925b581529f1b2aef10f1"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Mar 21 11:08:06 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:41 2012 -0300"
      },
      "message": "i7core_edac: convert it to use struct device\n\nInstead of relying on a complex logic inside the edac core to create\na \"device tree-like\" sysfs struct, just use device_add.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "c56087595fb6531f359925b581529f1b2aef10f1",
      "tree": "6077edee64747d06759378ba634a738b401657d1",
      "parents": [
        "ba004239e008a442bc327a57e227600fc1bd5ee7"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Mar 21 14:00:44 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:40 2012 -0300"
      },
      "message": "amd64_edac: convert sysfs logic to use struct device\n\nNow that the EDAC core supports struct device, there\u0027s no sense\non having any logic at the EDAC core to simulate it. So, instead\nof adding such logic there, change the logic at amd64_edac to\nuse it.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "ba004239e008a442bc327a57e227600fc1bd5ee7",
      "tree": "cae3c13d48cd0ddb95220c6adb4eb221db0be1c9",
      "parents": [
        "7a623c039075e4ea21648d88133fafa6dcfd113d"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Mar 21 15:16:20 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:39 2012 -0300"
      },
      "message": "mpc85xx_edac: convert sysfs logic to use struct device\n\nNow that the EDAC core supports struct device, there\u0027s no sense on\nhaving any logic at the EDAC core to simulate it. So, instead of adding\nsuch logic there, change the logic at mpc85xx_edac to use it\n\ncompile-tested only.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "7a623c039075e4ea21648d88133fafa6dcfd113d",
      "tree": "125ecf3c32161ca5242237ce177c79109b0a8caa",
      "parents": [
        "b0610bb82abd1c4ac97c33f0312cd7fd72eaa325"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 16:41:11 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 13:23:30 2012 -0300"
      },
      "message": "edac: rewrite the sysfs code to use struct device\n\nThe EDAC subsystem uses the old struct sysdev approach,\ncreating all nodes using the raw sysfs API. This is bad,\nas the API is deprecated.\n\nAs we\u0027ll be changing the EDAC API, let\u0027s first port the existing\ncode to struct device.\n\nThere\u0027s one drawback on this patch: driver-specific sysfs\nnodes, used by mpc85xx_edac, amd64_edac and i7core_edac\n won\u0027t be created anymore. While it would be possible to\nalso port the device-specific code, that would mix kobj with\nstruct device, with is not recommended. Also, it is easier and nicer\nto move the code to the drivers, instead, as the core can get rid\nof some complex logic that just emulates what the device_add()\nand device_create_file() already does.\n\nThe next patches will convert the driver-specific code to use\nthe device-specific calls. Then, the remaining bits of the old\nsysfs API will be removed.\n\nNOTE: a per-MC bus is required, otherwise devices with more than\none memory controller will hit a bug like the one below:\n\n[  819.094946] EDAC DEBUG: find_mci_by_dev: find_mci_by_dev()\n[  819.094948] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device() idx\u003d1\n[  819.094952] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device(): creating device mc1\n[  819.094967] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device creating dimm0, located at channel 0 slot 0\n[  819.094984] ------------[ cut here ]------------\n[  819.100142] WARNING: at fs/sysfs/dir.c:481 sysfs_add_one+0xc1/0xf0()\n[  819.107282] Hardware name: S2600CP\n[  819.111078] sysfs: cannot create duplicate filename \u0027/bus/edac/devices/dimm0\u0027\n[  819.119062] Modules linked in: sb_edac(+) edac_core ip6table_filter ip6_tables ebtable_nat ebtables ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack ipt_REJECT xt_CHECKSUM iptable_mangle iptable_filter ip_tables bridge stp llc sunrpc binfmt_misc dm_mirror dm_region_hash dm_log vhost_net macvtap macvlan tun kvm microcode pcspkr iTCO_wdt iTCO_vendor_support igb i2c_i801 i2c_core sg ioatdma dca sr_mod cdrom sd_mod crc_t10dif ahci libahci isci libsas libata scsi_transport_sas scsi_mod wmi dm_mod [last unloaded: scsi_wait_scan]\n[  819.175748] Pid: 10902, comm: modprobe Not tainted 3.3.0-0.11.el7.v12.2.x86_64 #1\n[  819.184113] Call Trace:\n[  819.186868]  [\u003cffffffff8105adaf\u003e] warn_slowpath_common+0x7f/0xc0\n[  819.193573]  [\u003cffffffff8105aea6\u003e] warn_slowpath_fmt+0x46/0x50\n[  819.200000]  [\u003cffffffff811f53d1\u003e] sysfs_add_one+0xc1/0xf0\n[  819.206025]  [\u003cffffffff811f5cf5\u003e] sysfs_do_create_link+0x135/0x220\n[  819.212944]  [\u003cffffffff811f7023\u003e] ? sysfs_create_group+0x13/0x20\n[  819.219656]  [\u003cffffffff811f5df3\u003e] sysfs_create_link+0x13/0x20\n[  819.226109]  [\u003cffffffff813b04f6\u003e] bus_add_device+0xe6/0x1b0\n[  819.232350]  [\u003cffffffff813ae7cb\u003e] device_add+0x2db/0x460\n[  819.238300]  [\u003cffffffffa0325634\u003e] edac_create_dimm_object+0x84/0xf0 [edac_core]\n[  819.246460]  [\u003cffffffffa0325e18\u003e] edac_create_sysfs_mci_device+0xe8/0x290 [edac_core]\n[  819.255215]  [\u003cffffffffa0322e2a\u003e] edac_mc_add_mc+0x5a/0x2c0 [edac_core]\n[  819.262611]  [\u003cffffffffa03412df\u003e] sbridge_register_mci+0x1bc/0x279 [sb_edac]\n[  819.270493]  [\u003cffffffffa03417a3\u003e] sbridge_probe+0xef/0x175 [sb_edac]\n[  819.277630]  [\u003cffffffff813ba4e8\u003e] ? pm_runtime_enable+0x58/0x90\n[  819.284268]  [\u003cffffffff812f430c\u003e] local_pci_probe+0x5c/0xd0\n[  819.290508]  [\u003cffffffff812f5ba1\u003e] __pci_device_probe+0xf1/0x100\n[  819.297117]  [\u003cffffffff812f5bea\u003e] pci_device_probe+0x3a/0x60\n[  819.303457]  [\u003cffffffff813b1003\u003e] really_probe+0x73/0x270\n[  819.309496]  [\u003cffffffff813b138e\u003e] driver_probe_device+0x4e/0xb0\n[  819.316104]  [\u003cffffffff813b149b\u003e] __driver_attach+0xab/0xb0\n[  819.322337]  [\u003cffffffff813b13f0\u003e] ? driver_probe_device+0xb0/0xb0\n[  819.329151]  [\u003cffffffff813af5d6\u003e] bus_for_each_dev+0x56/0x90\n[  819.335489]  [\u003cffffffff813b0d7e\u003e] driver_attach+0x1e/0x20\n[  819.341534]  [\u003cffffffff813b0980\u003e] bus_add_driver+0x1b0/0x2a0\n[  819.347884]  [\u003cffffffffa0347000\u003e] ? 0xffffffffa0346fff\n[  819.353641]  [\u003cffffffff813b19f6\u003e] driver_register+0x76/0x140\n[  819.359980]  [\u003cffffffff8159f18b\u003e] ? printk+0x51/0x53\n[  819.365524]  [\u003cffffffffa0347000\u003e] ? 0xffffffffa0346fff\n[  819.371291]  [\u003cffffffff812f5896\u003e] __pci_register_driver+0x56/0xd0\n[  819.378096]  [\u003cffffffffa0347054\u003e] sbridge_init+0x54/0x1000 [sb_edac]\n[  819.385231]  [\u003cffffffff8100203f\u003e] do_one_initcall+0x3f/0x170\n[  819.391577]  [\u003cffffffff810bcd2e\u003e] sys_init_module+0xbe/0x230\n[  819.397926]  [\u003cffffffff815bb529\u003e] system_call_fastpath+0x16/0x1b\n[  819.404633] ---[ end trace 1654fdd39556689f ]---\n\nThis happens because the bus is not being properly initialized.\nInstead of putting the memory sub-devices inside the memory controller,\nit is putting everything under the same directory:\n\n$ tree /sys/bus/edac/\n/sys/bus/edac/\n├── devices\n│   ├── all_channel_counts -\u003e ../../../devices/system/edac/mc/mc0/all_channel_counts\n│   ├── csrow0 -\u003e ../../../devices/system/edac/mc/mc0/csrow0\n│   ├── csrow1 -\u003e ../../../devices/system/edac/mc/mc0/csrow1\n│   ├── csrow2 -\u003e ../../../devices/system/edac/mc/mc0/csrow2\n│   ├── dimm0 -\u003e ../../../devices/system/edac/mc/mc0/dimm0\n│   ├── dimm1 -\u003e ../../../devices/system/edac/mc/mc0/dimm1\n│   ├── dimm3 -\u003e ../../../devices/system/edac/mc/mc0/dimm3\n│   ├── dimm6 -\u003e ../../../devices/system/edac/mc/mc0/dimm6\n│   ├── inject_addrmatch -\u003e ../../../devices/system/edac/mc/mc0/inject_addrmatch\n│   ├── mc -\u003e ../../../devices/system/edac/mc\n│   └── mc0 -\u003e ../../../devices/system/edac/mc/mc0\n├── drivers\n├── drivers_autoprobe\n├── drivers_probe\n└── uevent\n\nOn a multi-memory controller system, the names \"csrow%d\" and \"dimm%d\"\nshould be under \"mc%d\", and not at the main hierarchy level.\n\nSo, we need to create a per-MC bus, in order to have its own namespace.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Greg K H \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "8447c4d15e357a458c9051ddc84aa6c8b9c27000",
      "tree": "33377297a94e02d0a87246010c8f4c83d8119bb2",
      "parents": [
        "b9bc5ddb1b76d3f7ee14c533300aa95907c6969e"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Wed Jun 06 13:11:05 2012 -0400"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 12:43:16 2012 -0300"
      },
      "message": "edac: Do alignment logic properly in edac_align_ptr()\n\nThe logic was checking the sizeof the structure being allocated to\ndetermine whether an alignment fixup was required.  This isn\u0027t right;\nwhat we actually care about is the alignment of the actual pointer that\u0027s\nabout to be returned.  This became an issue recently because struct\nedac_mc_layer has a size that is not zero modulo eight, so we were\ntaking the correctly-aligned pointer and forcing it to be misaligned.\nOn Tile this caused an alignment exception.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "fd687502dc8037aa5a4b84c570ada971106574ee",
      "tree": "53e7c4141571ff349759614095c12e853492f068",
      "parents": [
        "53f2d02898755d1b24bde1975e202815d29fdb81"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri Mar 16 07:44:18 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 11:56:06 2012 -0300"
      },
      "message": "edac: Rename the parent dev to pdev\n\nAs EDAC doesn\u0027t use struct device itself, it created a parent dev\npointer called as \"pdev\".  Now that we\u0027ll be converting it to use\nstruct device, instead of struct devsys, this needs to be fixed.\n\nNo functional changes.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nCc: Tim Small \u003ctim@buttersideup.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Egor Martovetsky \u003cegor@pasemi.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: Josh Boyer \u003cjwboyer@gmail.com\u003e\nCc: linuxppc-dev@lists.ozlabs.org\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "53f2d02898755d1b24bde1975e202815d29fdb81",
      "tree": "bf38d5ef64f046c552e94fc4ab360a5f833e1265",
      "parents": [
        "0bf09e829dd4b07227ed5a8bc4ac85752a044458"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Feb 23 08:10:34 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 11:55:52 2012 -0300"
      },
      "message": "RAS: Add a tracepoint for reporting memory controller events\n\nAdd a new tracepoint-based hardware events report method for\nreporting Memory Controller events.\n\nPart of the description bellow is shamelessly copied from Tony\nLuck\u0027s notes about the Hardware Error BoF during LPC 2010 [1].\nTony, thanks for your notes and discussions to generate the\nh/w error reporting requirements.\n\n[1] http://lwn.net/Articles/416669/\n\n    We have several subsystems \u0026 methods for reporting hardware errors:\n\n    1) EDAC (\"Error Detection and Correction\").  In its original form\n    this consisted of a platform specific driver that read topology\n    information and error counts from chipset registers and reported\n    the results via a sysfs interface.\n\n    2) mcelog - x86 specific decoding of machine check bank registers\n    reporting in binary form via /dev/mcelog. Recent additions make use\n    of the APEI extensions that were documented in version 4.0a of the\n    ACPI specification to acquire more information about errors without\n    having to rely reading chipset registers directly. A user level\n    programs decodes into somewhat human readable format.\n\n    3) drivers/edac/mce_amd.c - this driver hooks into the mcelog path and\n    decodes errors reported via machine check bank registers in AMD\n    processors to the console log using printk();\n\n    Each of these mechanisms has a band of followers ... and none\n    of them appear to meet all the needs of all users.\n\nAs part of a RAS subsystem, let\u0027s encapsulate the memory error hardware\nevents into a trace facility.\n\nThe tracepoint printk will be displayed like:\n\nmc_event: [quant] (Corrected|Uncorrected|Fatal) error:[error msg] on [label] ([location] [edac_mc detail] [driver_detail]\n\nWhere:\n       \t[quant] is the quantity of errors\n\t[error msg] is the driver-specific error message\n\t\t    (e. g. \"memory read\", \"bus error\", ...);\n\t[location] is the location in terms of memory controller and\n\t\t   branch/channel/slot, channel/slot or csrow/channel;\n\t[label] is the memory stick label;\n\t[edac_mc detail] describes the address location of the error\n\t\t\t and the syndrome;\n\t[driver detail] is driver-specifig error message details,\n\t\t\twhen needed/provided (e. g. \"area:DMA\", ...)\n\nFor example:\n\nmc_event: 1 Corrected error:memory read on memory stick DIMM_1A (mc:0 location:0:0:0 page:0x586b6e offset:0xa66 grain:32 syndrome:0x0 area:DMA)\n\nOf course, any userspace tools meant to handle errors should not parse\nthe above data. They should, instead, use the binary fields provided by\nthe tracepoint, mapping them directly into their Management Information\nBase.\n\nNOTE: The original patch was providing an additional mechanism for\nMCA-based trace events that also contained MCA error register data.\nHowever, as no agreement was reached so far for the MCA-based trace\nevents, for now, let\u0027s add events only for memory errors.\nA latter patch is planned to change the tracepoint, for those types\nof event.\n\nCc: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "b9bc5ddb1b76d3f7ee14c533300aa95907c6969e",
      "tree": "7cb950c8eaf0c3031553426d2440589ec6b1b12c",
      "parents": [
        "2cbb587d3bc41a305168e91b4f3c5b6944a12566"
      ],
      "author": {
        "name": "Kim Phillips",
        "email": "kim.phillips@freescale.com",
        "time": "Wed Jun 06 19:49:42 2012 -0500"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 11:49:51 2012 -0300"
      },
      "message": "mpc85xx_edac: fix error: too few arguments to function \u0027edac_mc_alloc\u0027\n\ncommit ca0907b \"edac: Remove the legacy EDAC ABI\" broke mpc85xx_edac\nin the following manner:\n\nmpc85xx_edac.c:983:35: error: too few arguments to function \u0027edac_mc_alloc\u0027\n\nthis patch puts back the missing \u0027layers\u0027 argument.\n\n[mchehab@redhat.com: As Ben sent a similar fix, I added his SOB on this patch]\nSigned-off-by: Kim Phillips \u003ckim.phillips@freescale.com\u003e\nSigned-off-by: Ben Collins \u003cbcollins@ubuntu.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "2cbb587d3bc41a305168e91b4f3c5b6944a12566",
      "tree": "dd0ff973d5139f0e2ea7d2d90cce71482f228fbc",
      "parents": [
        "e35fca4791fcdd43dc1fd769797df40c562ab491"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Mon May 14 05:51:26 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 11:49:51 2012 -0300"
      },
      "message": "edac: fix the error about memory type detection on SandyBridge\n\nOn SandyBridge, DDRIOA(Dev: 17 Func: 0 Offset: 328) is used\nto detect whether DIMM is RDIMM/LRDIMM, not TA(Dev: 15 Func: 0).\n\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "e35fca4791fcdd43dc1fd769797df40c562ab491",
      "tree": "929b8537dabe15d32179430e82305493269979dd",
      "parents": [
        "cfaf025112d3856637ff34a767ef785ef5cf2ca9"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Tue May 08 20:40:12 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Jun 11 11:49:51 2012 -0300"
      },
      "message": "edac: avoid mce decoding crash after edac driver unloaded\n\nSome edac drivers register themselves as mce decoders via\nnotifier_chain. But in current notifier_chain implementation logic,\nit doesn\u0027t accept same notifier registered twice. If so, it will be\nwrong when adding/removing the element from the list. For example,\non one SandyBridge platform, remove module sb_edac and then trigger\none error, it will hit oops because it has no mce decoder registered\nbut related notifier_chain still points to an invalid callback\nfunction. Here is an example:\n\nCall Trace:\n [\u003cffffffff8150ef6a\u003e] atomic_notifier_call_chain+0x1a/0x20\n [\u003cffffffff8102b936\u003e] mce_log+0x46/0x180\n [\u003cffffffff8102eaea\u003e] apei_mce_report_mem_error+0x4a/0x60\n [\u003cffffffff812e19d2\u003e] ghes_do_proc+0x192/0x210\n [\u003cffffffff812e2066\u003e] ghes_proc+0x46/0x70\n [\u003cffffffff812e20d8\u003e] ghes_notify_sci+0x48/0x80\n [\u003cffffffff8150ef05\u003e] notifier_call_chain+0x55/0x80\n [\u003cffffffff81076f1a\u003e] __blocking_notifier_call_chain+0x5a/0x80\n [\u003cffffffff812aea11\u003e] ? acpi_os_wait_events_complete+0x23/0x23\n [\u003cffffffff81076f56\u003e] blocking_notifier_call_chain+0x16/0x20\n [\u003cffffffff812ddc4d\u003e] acpi_hed_notify+0x19/0x1b\n [\u003cffffffff812b16bd\u003e] acpi_device_notify+0x19/0x1b\n [\u003cffffffff812beb38\u003e] acpi_ev_notify_dispatch+0x67/0x7f\n [\u003cffffffff812aea3a\u003e] acpi_os_execute_deferred+0x29/0x36\n [\u003cffffffff81069dc2\u003e] process_one_work+0x132/0x450\n [\u003cffffffff8106bbcb\u003e] worker_thread+0x17b/0x3c0\n [\u003cffffffff8106ba50\u003e] ? manage_workers+0x120/0x120\n [\u003cffffffff81070aee\u003e] kthread+0x9e/0xb0\n [\u003cffffffff81514724\u003e] kernel_thread_helper+0x4/0x10\n [\u003cffffffff81070a50\u003e] ? kthread_freezable_should_stop+0x70/0x70\n [\u003cffffffff81514720\u003e] ? gs_change+0x13/0x13\nCode: f3 49 89 d4 45 85 ed 4d 89 c6 48 8b 0f 74 48 48 85 c9 75 17 eb 41\n0f 1f 80 00 00 00 00 41 83 ed 01 4c 89 f9 74 22 4d 85 ff 74 1d \u003c4c\u003e 8b\n79 08 4c 89 e2 48 89 de 48 89 cf ff 11 4d 85 f6 74 04 41\nRIP  [\u003cffffffff8150eef6\u003e] notifier_call_chain+0x46/0x80\n RSP \u003cffff88042868fb20\u003e\nCR2: ffffffffa01af838\n---[ end trace 0100930068e73e6f ]---\nBUG: unable to handle kernel paging request at fffffffffffffff8\nIP: [\u003cffffffff810705b0\u003e] kthread_data+0x10/0x20\nPGD 1a0d067 PUD 1a0e067 PMD 0\nOops: 0000 [#2] SMP\n\nOnly i7core_edac and sb_edac have such issues because they have more\nthan one memory controller which means they have to register mce\ndecoder many times.\n\nCc: \u003cstable@vger.kernel.org\u003e # 3.2 and upper\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "bbd771474ec44b516107685d77e1c80bbe09f141",
      "tree": "0cb15781539a68f27b4ea6c89f827282630cbce6",
      "parents": [
        "403e1c5b7495d7b80fae9fc4d0a7a6f5abdc3307",
        "319b6ffc6df892e4ccffff823cc5521a4a5d2dca"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed May 30 12:11:26 2012 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed May 30 12:11:32 2012 -0700"
      },
      "message": "Merge branch \u0027x86/trampoline\u0027 into x86/urgent\n\nx86/trampoline contains an urgent commit which is necessarily on a\nnewer baseline.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "403e1c5b7495d7b80fae9fc4d0a7a6f5abdc3307",
      "tree": "c1f762dda525faf24aa10d6f81cf043da202c54f",
      "parents": [
        "fa83523f45fbb403eba4ebc5704bf98aa4da0163",
        "80f033610fb968e75f5d470233d8d0260d7a72ed"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 30 14:12:06 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 30 14:12:06 2012 +0200"
      },
      "message": "Merge branch \u0027x86/mce\u0027 into x86/urgent\n\nMerge in these fixlets.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "87a5af24e54857e7b15c1f1b0468512ee65c94e3",
      "tree": "ee346852a0fc27f172a5eb57b6e3c7bf111f2fad",
      "parents": [
        "7e5b2db77b05746613516599c916a8cc2e321077",
        "0bf09e829dd4b07227ed5a8bc4ac85752a044458"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 18:32:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 18:32:37 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac\n\nPull EDAC internal API changes from Mauro Carvalho Chehab:\n \"This changeset is the first part of a series of patches that fixes the\n  EDAC sybsystem.  On this set, it changes the Kernel EDAC API in order\n  to properly represent the Intel i3/i5/i7, Xeon 3xxx/5xxx/7xxx, and\n  Intel E5-xxxx memory controllers.\n\n  The EDAC core used to assume that:\n\n       - the DRAM chip select pin is directly accessed by the memory\n         controller\n\n       - when multiple channels are used, they\u0027re all filled with the\n         same type of memory.\n\n  None of the above premises is true on Intel memory controllers since\n  2002, when RAMBUS and FB-DIMMs were introduced, and Advanced Memory\n  Buffer or by some similar technologies hides the direct access to the\n  DRAM pins.\n\n  So, the existing drivers for those chipsets had to lie to the EDAC\n  core, in general telling that just one channel is filled.  That\n  produces some hard to understand error messages like:\n\n       EDAC MC0: CE row 3, channel 0, label \"DIMM1\": 1 Unknown error(s): memory read error on FATAL area : cpu\u003d0 Err\u003d0008:00c2 (ch\u003d2), addr \u003d 0xad1f73480 \u003d\u003e socket\u003d0, Channel\u003d0(mask\u003d2), rank\u003d1\n\n  The location information there (row3 channel 0) is completely bogus:\n  it has no physical meaning, and are just some random values that the\n  driver uses to talk with the EDAC core.  The error actually happened\n  at CPU socket 0, channel 0, slot 1, but this is not reported anywhere,\n  as the EDAC core doesn\u0027t know anything about the memory layout.  So,\n  only advanced users that know how the EDAC driver works and that tests\n  their systems to see how DIMMs are mapped can actually benefit for\n  such error logs.\n\n  This patch series fixes the error report logic, in order to allow the\n  EDAC to expose the memory architecture used by them to the EDAC core.\n  So, as the EDAC core now understands how the memory is organized, it\n  can provide an useful report:\n\n       EDAC MC0: CE memory read error on DIMM1 (channel:0 slot:1 page:0x364b1b offset:0x600 grain:32 syndrome:0x0 - count:1 area:DRAM err_code:0001:0090 socket:0 channel_mask:1 rank:4)\n\n  The location of the DIMM where the error happened is reported by \"MC0\"\n  (cpu socket #0), at \"channel:0 slot:1\" location, and matches the\n  physical location of the DIMM.\n\n  There are two remaining issues not covered by this patch series:\n\n       - The EDAC sysfs API will still report bogus values.  So,\n         userspace tools like edac-utils will still use the bogus data;\n\n       - Add a new tracepoint-based way to get the binary information\n         about the errors.\n\n  Those are on a second series of patches (also at -next), but will\n  probably miss the train for 3.5, due to the slow review process.\"\n\nFix up trivial conflict (due to spelling correction of removed code) in\ndrivers/edac/edac_device.c\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac: (42 commits)\n  i7core: fix ranks information at the per-channel struct\n  i5000: Fix the fatal error handling\n  i5100_edac: Fix a warning when compiled with 32 bits\n  i82975x_edac: Test nr_pages earlier to save a few CPU cycles\n  e752x_edac: provide more info about how DIMMS/ranks are mapped\n  i5000_edac: Fix the logic that retrieves memory information\n  i5400_edac: improve debug messages to better represent the filled memory\n  edac: Cleanup the logs for i7core and sb edac drivers\n  edac: Initialize the dimm label with the known information\n  edac: Remove the legacy EDAC ABI\n  x38_edac: convert driver to use the new edac ABI\n  tile_edac: convert driver to use the new edac ABI\n  sb_edac: convert driver to use the new edac ABI\n  r82600_edac: convert driver to use the new edac ABI\n  ppc4xx_edac: convert driver to use the new edac ABI\n  pasemi_edac: convert driver to use the new edac ABI\n  mv64x60_edac: convert driver to use the new edac ABI\n  mpc85xx_edac: convert driver to use the new edac ABI\n  i82975x_edac: convert driver to use the new edac ABI\n  i82875p_edac: convert driver to use the new edac ABI\n  ...\n"
    },
    {
      "commit": "0bf09e829dd4b07227ed5a8bc4ac85752a044458",
      "tree": "7ae3bb65515c81f503536857265aa905c47cc14b",
      "parents": [
        "486dfb1638bc49e9f3bbbefbe4832024ba6abe0d"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Apr 26 11:47:29 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:55 2012 -0300"
      },
      "message": "i7core: fix ranks information at the per-channel struct\n\nThere is a flag at the per-channel struct that indicates if there are\nany 4R dimm on it. The way the presence of this flag were reported\nis not ok, as it might give the false idea that the channel were filled\nwith 2R memories:\n\n[  580.588701] EDAC DEBUG: get_dimm_config: Ch1 phy rd1, wr1 (0x063f7431): 2 ranks, UDIMMs\n[  580.588704] EDAC DEBUG: get_dimm_config: \tdimm 0 1024 Mb offset: 0, bank: 8, rank: 1, row: 0x4000, col: 0x400\n\n(in this case, just one 1R memory is filled on channel 1)\n\nSo, use a better way to represent the per-channel ranks information.\nAfter the patch, it will show:\n\n[ 2002.233978] EDAC DEBUG: get_dimm_config: Ch0 phy rd0, wr0 (0x063f7431): UDIMMs\n[ 2002.233982] EDAC DEBUG: get_dimm_config: \tdimm 0 1024 Mb offset: 0, bank: 8, rank: 1, row: 0x4000, col: 0x400\n[ 2002.233988] EDAC DEBUG: get_dimm_config: \tdimm 1 1024 Mb offset: 4, bank: 8, rank: 1, row: 0x4000, col: 0x400\n\n(in this case, there isn\u0027t any 4R memories)\n\nReported-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "486dfb1638bc49e9f3bbbefbe4832024ba6abe0d",
      "tree": "c78481a48f1ae6670c9d6377cdc9ed0b916b65cc",
      "parents": [
        "9f70d08a4c4581eee802563b709f710ad492d966"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Apr 25 11:47:36 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:54 2012 -0300"
      },
      "message": "i5000: Fix the fatal error handling\n\nThe fatal error channel bits point to a single channel, and not\nto a range of channels. Fix the code to properly report it,\ninstead of printing messages like:\n\tkernel: EDAC MC0: INTERNAL ERROR: channel-b out of range (4 \u003e\u003d 4)\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "9f70d08a4c4581eee802563b709f710ad492d966",
      "tree": "2a149079defd81e405bf64ccf5f3d8f7434ba2ab",
      "parents": [
        "36683aab90373afd0cff0935bf886ebe6c7b0de6"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Mar 29 08:41:08 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:54 2012 -0300"
      },
      "message": "i5100_edac: Fix a warning when compiled with 32 bits\n\ndrivers/edac/i5100_edac.c: In function ‘i5100_init_csrows’:\ndrivers/edac/i5100_edac.c:862:3: warning: format ‘%zd’ expects argument of type ‘signed size_t’, but argument 5 has type ‘long unsigned int’ [-Wformat]\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "36683aab90373afd0cff0935bf886ebe6c7b0de6",
      "tree": "c299130d7c5eb1f0bb403d78c9e920c2e22ab84c",
      "parents": [
        "805afb6997ce45093981f27afbe4e21ccde3d990"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Mar 28 20:13:36 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:53 2012 -0300"
      },
      "message": "i82975x_edac: Test nr_pages earlier to save a few CPU cycles\n\nAvoid test nr_pages twice, and initializing some data that won\u0027t\nbe used.\n\nCleanup patch only.\n\nReported-by: Aristeu Rozanski Filho \u003carozansk@redhat.com\u003e\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "805afb6997ce45093981f27afbe4e21ccde3d990",
      "tree": "94c331f0250755b5f4c913e5fff53e3fa3eea72e",
      "parents": [
        "64e1fdaf55d61eb79ae970f78bb00edf6aa696fb"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Mar 15 13:41:17 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:53 2012 -0300"
      },
      "message": "e752x_edac: provide more info about how DIMMS/ranks are mapped\n\nNo funtional changes here. Only the comments got updated.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "64e1fdaf55d61eb79ae970f78bb00edf6aa696fb",
      "tree": "0b19580b6d34717e750aefb7833d08d369ddb4e6",
      "parents": [
        "68d086f89b8064d5576f8c1e47fa7ecb4fd6f141"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri Feb 24 09:34:54 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:52 2012 -0300"
      },
      "message": "i5000_edac: Fix the logic that retrieves memory information\n\nThe logic there is broken: it basically creates two csrows for\neach DIMM and assumes that all DIMM\u0027s are dual rank. Only one of\nthe csrows will contain the entire DIMM size. If single rank\nmemories are found, they\u0027ll be marked with 0 bytes.\n\nThe check if the AMB is present were also wrong.\n\nYet, as the error reports don\u0027t use the memory size in order to\ncredit an error to the right DIMM, that part of the driver seems\nto work. That\u0027s why probably nobody detected the issue yet.\n\nAfter this patch, the memory layout is now properly reported,\nwhen debug mode is enabled, and the number of ranks per dimm is\nnow shown:\n\ncalculate_dimm_size: ----------------------------------------------------------\ncalculate_dimm_size: slot  3       0 MB   |    0 MB   |    0 MB   |    0 MB   |\ncalculate_dimm_size: slot  2       0 MB   |    0 MB   |    0 MB   |    0 MB   |\ncalculate_dimm_size: ----------------------------------------------------------\ncalculate_dimm_size: slot  1       0 MB   |    0 MB   |    0 MB   |    0 MB   |\ncalculate_dimm_size: slot  0     512 MB 1R|  512 MB 1R|  512 MB 1R|  512 MB 1R|\ncalculate_dimm_size: ----------------------------------------------------------\ncalculate_dimm_size:            channel 0 | channel 1 | channel 2 | channel 3 |\ncalculate_dimm_size:                   branch 0       |        branch 1       |\n\n(1R above means that all memories on my test machine are single-ranked)\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "68d086f89b8064d5576f8c1e47fa7ecb4fd6f141",
      "tree": "a08bbec14c0519e6264fb1251a1a912683dbb752",
      "parents": [
        "e17a2f42a484562be48128c5b8dc9f7291e8c902"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Sun Feb 12 17:18:06 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:51 2012 -0300"
      },
      "message": "i5400_edac: improve debug messages to better represent the filled memory\n\nImproves the debug output message, in order to better represent the\nmemory controller hierarchy, when outputing the debug messages.\n\nNo functional changes when debug is disabled.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "e17a2f42a484562be48128c5b8dc9f7291e8c902",
      "tree": "67d92491b66625b20be6fcb03a39c18424adbe7e",
      "parents": [
        "5926ff502f6b93ca0c1654f8a5c5317ea236dbdb"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri May 11 11:41:45 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:51 2012 -0300"
      },
      "message": "edac: Cleanup the logs for i7core and sb edac drivers\n\nRemove some information that it is duplicated at the MCE log,\nand don\u0027t have much usage for the error. Those data will be\nadded again, when creating a trace function that outputs both\nmemory errors and MCE fields.\n\nCc: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "5926ff502f6b93ca0c1654f8a5c5317ea236dbdb",
      "tree": "d70b074f959e7cb2007bdcb19e79aaba4458dd9a",
      "parents": [
        "ca0907b9e413bb1d1f3ea123b663535b74928846"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Feb 09 11:05:20 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:50 2012 -0300"
      },
      "message": "edac: Initialize the dimm label with the known information\n\nWhile userspace doesn\u0027t fill the dimm labels, add there the dimm location,\nas described by the used memory model. This could eventually match what\nis described at the dmidecode, making easier for people to identify the\nmemory.\n\nFor example, on an Intel motherboard where the DMI table is reliable,\nthe first memory stick is described as:\n\nMemory Device\n\tArray Handle: 0x0029\n\tError Information Handle: Not Provided\n\tTotal Width: 64 bits\n\tData Width: 64 bits\n\tSize: 2048 MB\n\tForm Factor: DIMM\n\tSet: 1\n\tLocator: A1_DIMM0\n\tBank Locator: A1_Node0_Channel0_Dimm0\n\tType: \u003cOUT OF SPEC\u003e\n\tType Detail: Synchronous\n\tSpeed: 800 MHz\n\tManufacturer: A1_Manufacturer0\n\tSerial Number: A1_SerNum0\n\tAsset Tag: A1_AssetTagNum0\n\tPart Number: A1_PartNum0\n\nThe memory named as \"A1_DIMM0\" is physically located at the first\nmemory controller (node 0), at channel 0, dimm slot 0.\n\nAfter this patch, the memory label will be filled with:\n\t/sys/devices/system/edac/mc/csrow0/ch0_dimm_label:mc#0channel#0slot#0\n\nAnd (after the new EDAC API patches) as:\n\t/sys/devices/system/edac/mc/mc0/dimm0/dimm_label:mc#0channel#0slot#0\n\nSo, even if the memory label is not initialized on userspace, an useful\ninformation with the error location is filled there, expecially since\nseveral systems/motherboards are provided with enough info to map from\nchannel/slot (or branch/channel/slot) into the DIMM label. So, letting the\nEDAC core fill it by default is a good thing.\n\nIt should noticed that, as the label filling happens at the\nedac_mc_alloc(), drivers can override it to better describe the memories\n(and some actually do it).\n\nCc: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "ca0907b9e413bb1d1f3ea123b663535b74928846",
      "tree": "ccba396e942f41fe3d0c0a8673620427790e0e8f",
      "parents": [
        "e2acc357ee9e77e543861b841aa47fc62c528543"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed May 02 14:37:00 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:50 2012 -0300"
      },
      "message": "edac: Remove the legacy EDAC ABI\n\nNow that all drivers got converted to use the new ABI, we can\ndrop the old one.\n\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "e2acc357ee9e77e543861b841aa47fc62c528543",
      "tree": "836eccbd25150c8404b9cfb7f8396c4cc3b26a8a",
      "parents": [
        "40467db77050592cd514304db770739385b53cc6"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:12:35 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:49 2012 -0300"
      },
      "message": "x38_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "40467db77050592cd514304db770739385b53cc6",
      "tree": "18d100d2ea3ec78a1b42af344cb581b093110a90",
      "parents": [
        "c36e3e77687b39073903f55461fc9417514e831e"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:12:28 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:48 2012 -0300"
      },
      "message": "tile_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "c36e3e77687b39073903f55461fc9417514e831e",
      "tree": "d6372d12ba85909f7b1c65533b89a580369c69b0",
      "parents": [
        "63b5d1d9aa4b59847ce6279b8798ed28c686a459"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:12:22 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:48 2012 -0300"
      },
      "message": "sb_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "63b5d1d9aa4b59847ce6279b8798ed28c686a459",
      "tree": "4805f99adc20c6d4302452f95510a4baeb39a428",
      "parents": [
        "94d933745928ad6d8c40da89b4d0ccb2511578fc"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:12:13 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:47 2012 -0300"
      },
      "message": "r82600_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Tim Small \u003ctim@buttersideup.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "94d933745928ad6d8c40da89b4d0ccb2511578fc",
      "tree": "47ba4be151f10c9652a3822e1c694e7b5759b5ef",
      "parents": [
        "f34575aca9ea92bf61e428fb4584d9ebbff9807c"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:11:59 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:46 2012 -0300"
      },
      "message": "ppc4xx_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Josh Boyer \u003cjwboyer@gmail.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "f34575aca9ea92bf61e428fb4584d9ebbff9807c",
      "tree": "0f88b6ae2de44220075f4083fc3b37b974b274f3",
      "parents": [
        "a583ac6ca809907dcf3e5e2dd12250b23ceda7c2"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:11:36 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:46 2012 -0300"
      },
      "message": "pasemi_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Egor Martovetsky \u003cegor@pasemi.com\u003e\nCc: linuxppc-dev@lists.ozlabs.org\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "a583ac6ca809907dcf3e5e2dd12250b23ceda7c2",
      "tree": "9eeeff05fcf4767883e6b94c0bf97f04af893f75",
      "parents": [
        "ad4d6e2311487299beaf36bd890c96569c691482"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:11:20 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:45 2012 -0300"
      },
      "message": "mv64x60_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "ad4d6e2311487299beaf36bd890c96569c691482",
      "tree": "0082a9f14f12d48e11cd98faf18e6570e27852b0",
      "parents": [
        "705213580b82090c1f4277d7d8fbee898d53895e"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:11:08 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:45 2012 -0300"
      },
      "message": "mpc85xx_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "705213580b82090c1f4277d7d8fbee898d53895e",
      "tree": "2d2b388f93628e22a67aaf906cc08974d69f1302",
      "parents": [
        "0a8a9ac9ca24536416eea3b94a7d83f31676adc9"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:10:55 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:44 2012 -0300"
      },
      "message": "i82975x_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "0a8a9ac9ca24536416eea3b94a7d83f31676adc9",
      "tree": "a13811e362e667b10d09c811a1b9d32e66dc2b77",
      "parents": [
        "84c3a684087a257c6d702272771709fe025823f6"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:10:43 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:43 2012 -0300"
      },
      "message": "i82875p_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "84c3a684087a257c6d702272771709fe025823f6",
      "tree": "132455327281f8468fa74691e7bcf8abbee6619d",
      "parents": [
        "40f562b1915937c146ffe3597b0bc627b5a996da"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:10:31 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:43 2012 -0300"
      },
      "message": "i82860_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "40f562b1915937c146ffe3597b0bc627b5a996da",
      "tree": "2766c834728e4be260871fe96fa8384b9372c898",
      "parents": [
        "0975c16f4fa901403708a0d3f19b33a726b10326"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:10:18 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:42 2012 -0300"
      },
      "message": "i82443bxgx_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Tim Small \u003ctim@buttersideup.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "0975c16f4fa901403708a0d3f19b33a726b10326",
      "tree": "622a5a9b66afc2205ef74c3064f8e2792ed26911",
      "parents": [
        "70e2a8379b6e704b2e8cdfcf151954171c36e779"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:10:12 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:42 2012 -0300"
      },
      "message": "i7core_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "70e2a8379b6e704b2e8cdfcf151954171c36e779",
      "tree": "6473124042e67e6cb21968d7cba4b8fdf7df8bc2",
      "parents": [
        "296da591ea1d81b8d94d6e79b6c235bb820526b9"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:10:05 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:41 2012 -0300"
      },
      "message": "i7300_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "296da591ea1d81b8d94d6e79b6c235bb820526b9",
      "tree": "9cc0f5103ee665de3845e254da353bb62cf96836",
      "parents": [
        "d1afaa0a6e578964eeb48a3ab207072293367041"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:09:58 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:11:02 2012 -0300"
      },
      "message": "i5400_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "d1afaa0a6e578964eeb48a3ab207072293367041",
      "tree": "49fb52005af712833b12e5da67dd64e3d1e6b689",
      "parents": [
        "702df64053e440344ccb53035cb6959f17a97151"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:09:52 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:11:01 2012 -0300"
      },
      "message": "i5100_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "702df64053e440344ccb53035cb6959f17a97151",
      "tree": "b025aaf1c64814d1673a69d48c91ba83bd429f7e",
      "parents": [
        "95b93287c6eac639538fb0a2689d3ecc2916c0ec"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:09:46 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:11:01 2012 -0300"
      },
      "message": "i5000_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "95b93287c6eac639538fb0a2689d3ecc2916c0ec",
      "tree": "688fdc40f7b8d548497e5d87ade145c36e46ebd4",
      "parents": [
        "884906f197ccfa75787dd908e215fc3fab9dde39"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:09:38 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:11:01 2012 -0300"
      },
      "message": "i3200_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "884906f197ccfa75787dd908e215fc3fab9dde39",
      "tree": "64ae81140601eae909527baa98fc399a695d4ffc",
      "parents": [
        "30ac44068121d7059bf025ed35b27caec408791e"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:09:00 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:11:01 2012 -0300"
      },
      "message": "i3000_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "30ac44068121d7059bf025ed35b27caec408791e",
      "tree": "528e0687b777a8e0202f82005a8f09571664e126",
      "parents": [
        "ce11ce171047f43e30a9cef8eeccada8eceb2418"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:07:09 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:11:01 2012 -0300"
      },
      "message": "e7xxx_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "ce11ce171047f43e30a9cef8eeccada8eceb2418",
      "tree": "7ef680c6b370c96679d357a03da8b7fa87486b1a",
      "parents": [
        "df62b1e663904e257fd5b174a9b29e6be6d0e902"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:06:59 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:11:00 2012 -0300"
      },
      "message": "e752x_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "df62b1e663904e257fd5b174a9b29e6be6d0e902",
      "tree": "6590c8c33523d342768028606cd1df30d9399ab3",
      "parents": [
        "6458fc08b648cb71db85376abc81feba46d61ca5"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:06:50 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:11:00 2012 -0300"
      },
      "message": "cpc925_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "6458fc08b648cb71db85376abc81feba46d61ca5",
      "tree": "812a5a93667000e83aac1ff095dc2e661eba622f",
      "parents": [
        "d8c34af4d064c14686839119bd161628264c2819"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:06:25 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:11:00 2012 -0300"
      },
      "message": "cell_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "d8c34af4d064c14686839119bd161628264c2819",
      "tree": "06f706f5b5e6bb9bb104e6a627e5512d95818cbd",
      "parents": [
        "ab5a503cb57c1acea3b67210f46ebc2cfb28945e"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:05:27 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:11:00 2012 -0300"
      },
      "message": "amd76x_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "ab5a503cb57c1acea3b67210f46ebc2cfb28945e",
      "tree": "412a4a84e92405561af8b0cd85e1539226e08b68",
      "parents": [
        "4275be63559719c3149b19751029f1b0f1b26775"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 15:03:50 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:59 2012 -0300"
      },
      "message": "amd64_edac: convert driver to use the new edac ABI\n\nThe legacy edac ABI is going to be removed. Port the driver to use\nand benefit from the new API functionality.\n\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "4275be63559719c3149b19751029f1b0f1b26775",
      "tree": "d215a184f4278d7bc9095f18eb4c748149e241f3",
      "parents": [
        "982216a4290543fe73ae4f0a156f3d7906bd9b73"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Apr 18 15:20:50 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:59 2012 -0300"
      },
      "message": "edac: Change internal representation to work with layers\n\nChange the EDAC internal representation to work with non-csrow\nbased memory controllers.\n\nThere are lots of those memory controllers nowadays, and more\nare coming. So, the EDAC internal representation needs to be\nchanged, in order to work with those memory controllers, while\npreserving backward compatibility with the old ones.\n\nThe edac core was written with the idea that memory controllers\nare able to directly access csrows.\n\nThis is not true for FB-DIMM and RAMBUS memory controllers.\n\nAlso, some recent advanced memory controllers don\u0027t present a per-csrows\nview. Instead, they view memories as DIMMs, instead of ranks.\n\nSo, change the allocation and error report routines to allow\nthem to work with all types of architectures.\n\nThis will allow the removal of several hacks with FB-DIMM and RAMBUS\nmemory controllers.\n\nAlso, several tests were done on different platforms using different\nx86 drivers.\n\nTODO: a multi-rank DIMMs are currently represented by multiple DIMM\nentries in struct dimm_info. That means that changing a label for one\nrank won\u0027t change the same label for the other ranks at the same DIMM.\nThis bug is present since the beginning of the EDAC, so it is not a big\ndeal. However, on several drivers, it is possible to fix this issue, but\nit should be a per-driver fix, as the csrow \u003d\u003e DIMM arrangement may not\nbe equal for all. So, don\u0027t try to fix it here yet.\n\nI tried to make this patch as short as possible, preceding it with\nseveral other patches that simplified the logic here. Yet, as the\ninternal API changes, all drivers need changes. The changes are\ngenerally bigger in the drivers for FB-DIMMs.\n\nCc: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nCc: Tim Small \u003ctim@buttersideup.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Egor Martovetsky \u003cegor@pasemi.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: Josh Boyer \u003cjwboyer@gmail.com\u003e\nCc: linuxppc-dev@lists.ozlabs.org\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "93e4fe64ece4eccf0ff4ac69bceb389290b8ab7c",
      "tree": "5794c15f0d2c47568e49379b56e9a8d139532050",
      "parents": [
        "a895bf8b1e1ea4c032a8fa8a09475a2ce09fe77a"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 10:18:12 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:59 2012 -0300"
      },
      "message": "edac: rewrite edac_align_ptr()\n\nThe edac_align_ptr() function is used to prepare data for a single\nmemory allocation kzalloc() call. It counts how many bytes are needed\nby some data structure.\n\nUsing it as-is is not that trivial, as the quantity of memory elements\nreserved is not there, but, instead, it is on a next call.\n\nIn order to avoid mistakes when using it, move the number of allocated\nelements into it, making easier to use it.\n\nReviewed-by: Borislav Petkov \u003cbp@amd64.org\u003e\nCc: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "a895bf8b1e1ea4c032a8fa8a09475a2ce09fe77a",
      "tree": "79a1110d0f4a6f2d50d870fa77d11a5311fee4fc",
      "parents": [
        "5e2af0c09e60d11dd8297e259a9ca2b3d92d2cf4"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Sat Jan 28 09:09:38 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:58 2012 -0300"
      },
      "message": "edac: move nr_pages to dimm struct\n\nThe number of pages is a dimm property. Move it to the dimm struct.\n\nAfter this change, it is possible to add sysfs nodes for the DIMM\u0027s that\nwill properly represent the DIMM stick properties, including its size.\n\nA TODO fix here is to properly represent dual-rank/quad-rank DIMMs when\nthe memory controller represents the memory via chip select rows.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nAcked-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nCc: Tim Small \u003ctim@buttersideup.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Egor Martovetsky \u003cegor@pasemi.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: Josh Boyer \u003cjwboyer@gmail.com\u003e\nCc: linuxppc-dev@lists.ozlabs.org\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "5e2af0c09e60d11dd8297e259a9ca2b3d92d2cf4",
      "tree": "d4c7b687508ea48ab0fb844cbe61e7521ed17f01",
      "parents": [
        "084a4fccef39ac7abb039511f32380f28d0b67e6"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri Jan 27 21:20:32 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:58 2012 -0300"
      },
      "message": "edac: Don\u0027t initialize csrow\u0027s first_page \u0026 friends when not needed\n\nAlmost all edac\tdrivers\tinitialize csrow_info-\u003efirst_page,\ncsrow_info-\u003elast_page and csrow_info-\u003epage_mask. Those vars are\nused inside the EDAC core, in order to calculate the csrow affected\nby an error, by using the routine edac_mc_find_csrow_by_page().\n\nHowever, very few drivers actually use it:\n        e752x_edac.c\n        e7xxx_edac.c\n        i3000_edac.c\n        i82443bxgx_edac.c\n        i82860_edac.c\n        i82875p_edac.c\n        i82975x_edac.c\n        r82600_edac.c\n\nThere also a few other drivers that have their own calculus\nformula internally using those vars.\n\nAll the others are just wasting time by initializing those\ndata.\n\nWhile initializing data without using them won\u0027t cause any troubles, as\nthose information is stored at the wrong place (at csrows structure), it\nis better to remove what is unused, in order to simplify the next patch.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nAcked-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nCc: Josh Boyer \u003cjwboyer@gmail.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "084a4fccef39ac7abb039511f32380f28d0b67e6",
      "tree": "0596612000c7ec3a848b10f7cc4acdb573218076",
      "parents": [
        "a7d7d2e1a07e3811dc49af2962c940fd8bbb6c8f"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri Jan 27 18:38:08 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:58 2012 -0300"
      },
      "message": "edac: move dimm properties to struct dimm_info\n\nOn systems based on chip select rows, all channels need to use memories\nwith the same properties, otherwise the memories on channels A and B\nwon\u0027t be recognized.\n\nHowever, such assumption is not true for all types of memory\ncontrollers.\n\nControllers for FB-DIMM\u0027s don\u0027t have such requirements.\n\nAlso, modern Intel controllers seem to be capable of handling such\ndifferences.\n\nSo, we need to get rid of storing the DIMM information into a per-csrow\ndata, storing it, instead at the right place.\n\nThe first step is to move grain, mtype, dtype and edac_mode to the\nper-dimm struct.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nReviewed-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nCc: Tim Small \u003ctim@buttersideup.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Egor Martovetsky \u003cegor@pasemi.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@parallels.com\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: Josh Boyer \u003cjwboyer@gmail.com\u003e\nCc: Mike Williams \u003cmike@mikebwilliams.com\u003e\nCc: linuxppc-dev@lists.ozlabs.org\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "a7d7d2e1a07e3811dc49af2962c940fd8bbb6c8f",
      "tree": "6c3ac39bf25fb7810668f57476c7b5872d5b418b",
      "parents": [
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri Jan 27 14:12:32 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:57 2012 -0300"
      },
      "message": "edac: Create a dimm struct and move the labels into it\n\nThe way a DIMM is currently represented implies that they\u0027re\nlinked into a per-csrow struct. However, some drivers don\u0027t see\ncsrows, as they\u0027re ridden behind some chip like the AMB\u0027s\non FBDIMM\u0027s, for example.\n\nThis forced drivers to fake^Wvirtualize a csrow struct, and to create\na mess under csrow/channel original\u0027s concept.\n\nMove the DIMM labels into a per-DIMM struct, and add there\nthe real location of the socket, in terms of csrow/channel.\nLatter patches will modify the location to properly represent the\nmemory architecture.\n\nAll other drivers will use a per-csrow type of location.\nSome of those drivers will require a latter conversion, as\nthey also fake the csrows internally.\n\nTODO: While this patch doesn\u0027t change the existing behavior, on\ncsrows-based memory controllers, a csrow/channel pair points to a memory\nrank. There\u0027s a known bug at the EDAC core that allows having different\nlabels for the same DIMM, if it has more than one rank. A latter patch\nis need to merge the several ranks for a DIMM into the same dimm_info\nstruct, in order to avoid having different labels for the same DIMM.\n\nThe edac_mc_alloc() will now contain a per-dimm initialization loop that\nwill be changed by latter patches in order to match other types of\nmemory architectures.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nReviewed-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "e8f380e00840f694599e6ab42806639f7de26f11",
      "tree": "10568c5f17c4bc035abdf47225486df102cff9e6",
      "parents": [
        "239e7bad43dadc43ccf4bbf51f798189fd2cc120"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Tue May 22 12:53:45 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 23 17:16:42 2012 +0200"
      },
      "message": "x86/bitops: Move BIT_64() for a wider use\n\nNeeded for shifting 64-bit values on 32-bit, like MSR values,\nfor example.\n\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frank Arnold \u003cfrank.arnold@amd.com\u003e\nLink: http://lkml.kernel.org/r/1337684026-19740-1-git-send-email-bp@amd64.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f70d4a95edc7da87f39cd8b603ba131df2c198ed",
      "tree": "2ce19fca965fa44e2c6737edee1851f1d16602e1",
      "parents": [
        "a45170e7ad65b2b7179c7bbe8780882159c829fb"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue May 22 10:56:21 2012 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue May 22 11:00:09 2012 +0200"
      },
      "message": "edac, mips: don\u0027t change code that has been removed in edac/mips tree\n\nThis is a partial revert of\n\n\t15ed103a9800 (\"edac: Fix spelling errors\")\n\t6997991ab0db (\"mips: Fix printk typos in arc/mips\")\n\nwhich change code that doesn\u0027t exist any more in edac/mips trees.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "15ed103a98008d85f20956e0e29c2cae78051efe",
      "tree": "a1b38541e37863a2a978dde738bf3ec6a2d4ee9c",
      "parents": [
        "90449e5dee4800721a352af11ae4d65d4a56ba93"
      ],
      "author": {
        "name": "David Mackey",
        "email": "tdmackey@twitter.com",
        "time": "Tue Apr 17 11:30:52 2012 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Apr 30 13:28:41 2012 +0200"
      },
      "message": "edac: Fix spelling errors.\n\nSigned-off-by: David Mackey \u003ctdmackey@twitter.com\u003e\nSigned-off-by: Vinson Lee \u003cvlee@twitter.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4157368edbc3d69b05e9294a73c84fc9c96bdec4",
      "tree": "60072b082dad509d270a9c53427cfedb1c997b3b",
      "parents": [
        "9479f0f8018a0317b0b5e0c2b338bec6e26fdf2d",
        "00a62d4bc9b9a0388abee5c5ea946b9631b149d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 06 17:56:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 06 17:56:20 2012 -0700"
      },
      "message": "Merge branch \u0027stable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\nPull arch/tile bug fixes from Chris Metcalf:\n \"This includes Paul Gortmaker\u0027s change to fix the \u003casm/system.h\u003e\n  disintegration issues on tile, a fix to unbreak the tilepro ethernet\n  driver, and a backlog of bugfix-only changes from internal Tilera\n  development over the last few months.\n\n  They have all been to LKML and on linux-next for the last few days.\n  The EDAC change to MAINTAINERS is an oddity but discussion on the\n  linux-edac list suggested I ask you to pull that change through my\n  tree since they don\u0027t have a tree to pull edac changes from at the\n  moment.\"\n\n* \u0027stable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (39 commits)\n  drivers/net/ethernet/tile: fix netdev_alloc_skb() bombing\n  MAINTAINERS: update EDAC information\n  tilepro ethernet driver: fix a few minor issues\n  tile-srom.c driver: minor code cleanup\n  edac: say \"TILEGx\" not \"TILEPro\" for the tilegx edac driver\n  arch/tile: avoid accidentally unmasking NMI-type interrupt accidentally\n  arch/tile: remove bogus performance optimization\n  arch/tile: return SIGBUS for addresses that are unaligned AND invalid\n  arch/tile: fix finv_buffer_remote() for tilegx\n  arch/tile: use atomic exchange in arch_write_unlock()\n  arch/tile: stop mentioning the \"kvm\" subdirectory\n  arch/tile: export the page_home() function.\n  arch/tile: fix pointer cast in cacheflush.c\n  arch/tile: fix single-stepping over swint1 instructions on tilegx\n  arch/tile: implement panic_smp_self_stop()\n  arch/tile: add \"nop\" after \"nap\" to help GX idle power draw\n  arch/tile: use proper memparse() for \"maxmem\" options\n  arch/tile: fix up locking in pgtable.c slightly\n  arch/tile: don\u0027t leak kernel memory when we unload modules\n  arch/tile: fix bug in delay_backoff()\n  ...\n"
    },
    {
      "commit": "ec3e82d6dc46cac7309b01ff9761f469b0263019",
      "tree": "00d13c865b9f7c58c0b097ca7543f01b907bf67d",
      "parents": [
        "dd775ae2549217d3ae09363e3edb305d0fa19928"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Wed Apr 04 14:21:02 2012 +0200"
      },
      "committer": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Wed Apr 04 15:50:11 2012 +0200"
      },
      "message": "MCE, AMD: Drop too granulary family model checks\n\nMCA details seldom change inbetween the models of a family so don\u0027t\nbe too conservative and enable decoding on everything starting from\nK8 onwards. Minor adjustments can come in later but most importantly,\nwe have some decoding infrastructure in place for upcoming models by\ndefault.\n\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\n"
    },
    {
      "commit": "e2e110d7596656e2badd21c48713bd01e1b40f44",
      "tree": "2f6f4e551ac26c0eece4a5e68308d5d0de9abbe7",
      "parents": [
        "e1d5c0195075abaa45cd04ca397dbeaa0d18c490"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Fri Mar 30 18:58:37 2012 -0400"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Mon Apr 02 12:14:06 2012 -0400"
      },
      "message": "edac: say \"TILEGx\" not \"TILEPro\" for the tilegx edac driver\n\nThis is just an aesthetic change but it was silly to say TILEPro\nwhen booting up on the tilegx architecture.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "f0f3680e50352c57b6cfc5b0d44d63bb0aa20f80",
      "tree": "2005ec90f9d90f25ceeba147dfe09db8c8036fa6",
      "parents": [
        "61e5191c9d96268746bd57ed55d035678a1a2cf9",
        "a4b4be3fd7a76021f67380b03d8bccebf067db72"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 14:24:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 14:24:40 2012 -0700"
      },
      "message": "Merge branch \u0027linux_next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac\n\nPull EDAC fixes from Mauro Carvalho Chehab:\n \"A series of EDAC driver fixes.  It also has one core fix at the\n  documentation, and a rename patch, fixing the name of the struct that\n  contains the rank information.\"\n\n* \u0027linux_next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:\n  edac: rename channel_info to rank_info\n  i5400_edac: Avoid calling pci_put_device() twice\n  edac: i5100 ack error detection register after each read\n  edac: i5100 fix erroneous define for M1Err\n  edac: sb_edac: Fix a wrong value setting for the previous value\n  edac: sb_edac: Fix a INTERLEAVE_MODE() misuse\n  edac: sb_edac: Let the driver depend on PCI_MMCONFIG\n  edac: Improve the comments to better describe the memory concepts\n  edac/ppc4xx_edac: Fix compilation\n  Fix sb_edac compilation with 32 bits kernels\n"
    },
    {
      "commit": "250f6715a4112d6686670c5a62ceb9305da94616",
      "tree": "ee1c9b41ed1fed8174efb312421902f19c877e8c",
      "parents": [
        "11bcb32848ddb5ab28f09f142b625e2ba4d55c4c",
        "313162d0b83836e2f57e51b9b8650fb4b9c396ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "message": "Merge tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/device.h\u003e avoidance patches from Paul Gortmaker:\n \"Nearly every subsystem has some kind of header with a proto like:\n\n\tvoid foo(struct device *dev);\n\n  and yet there is no reason for most of these guys to care about the\n  sub fields within the device struct.  This allows us to significantly\n  reduce the scope of headers including headers.  For this instance, a\n  reduction of about 40% is achieved by replacing the include with the\n  simple fact that the device is some kind of a struct.\n\n  Unlike the much larger module.h cleanup, this one is simply two\n  commits.  One to fix the implicit \u003clinux/device.h\u003e users, and then one\n  to delete the device.h includes from the linux/include/ dir wherever\n  possible.\"\n\n* tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  device.h: audit and cleanup users in main include dir\n  device.h: cleanup users outside of linux/include (C files)\n"
    },
    {
      "commit": "dae430c6f6e5d0b98c238c340a41a39e221e8940",
      "tree": "20bdd49b142bd006cf7f81cf1a09fde811a43581",
      "parents": [
        "cf821923ba9aa0917165a12573bdd6dc0a354421",
        "ebe2aea86872622d4352cd71d55298fedf69a7bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 17:59:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 17:59:47 2012 -0700"
      },
      "message": "Merge tag \u0027amd64-edac-updates-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp\n\nPull AMD64 EDAC fixes from Borislav Petkov:\n \"A bunch of fixes/updates for the AMD side of EDAC including\n\n   * MCE decoding updates\n   * tree-wide EDAC sweep making pci_device_ids __devinitconst\n   * Scrub rate API correction\n   * two amd64_edac corrections for K8 boxes and sysfs csrow nodes\"\n\n* tag \u0027amd64-edac-updates-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:\n  MCE, AMD: Constify error tables\n  MCE, AMD: Correct bank 5 error signatures\n  MCE, AMD: Rework NB MCE signatures\n  MCE, AMD: Correct VB data error description\n  MCE, AMD: Correct ucode patch buffer description\n  MCE, AMD: Correct some MC0 error types\n  EDAC: Make pci_device_id tables __devinitconst.\n  EDAC: Correct scrub rate API\n  amd64_edac: Fix K8 revD and later chip select sizes\n  amd64_edac: Fix missing csrows sysfs nodes\n"
    },
    {
      "commit": "a4b4be3fd7a76021f67380b03d8bccebf067db72",
      "tree": "545aa3c8a1f8a5ae5747df1c8886d1e5e9518bab",
      "parents": [
        "0142877aa4e54dd9943fb727e9b386c36c8e3ab7"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri Jan 27 10:26:13 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Mar 21 15:22:50 2012 -0300"
      },
      "message": "edac: rename channel_info to rank_info\n\nWhat it is pointed by a csrow/channel vector is a rank information, and\nnot a channel information.\n\nOn a traditional architecture, the memory controller directly access the\nmemory ranks, via chip select rows. Different ranks at the same DIMM is\nselected via different chip select rows. So, typically, one\ncsrow/channel pair means one different DIMM.\n\nOn FB-DIMMs, there\u0027s a microcontroller chip at the DIMM, called Advanced\nMemory Buffer (AMB) that serves as the interface between the memory\ncontroller and the memory chips.\n\nThe AMB selection is via the DIMM slot, and not via a csrow.\n\nIt is up to the AMB to talk with the csrows of the DRAM chips.\n\nSo, the FB-DIMM memory controllers see the DIMM slot, and not the DIMM\nrank. RAMBUS is similar.\n\nNewer memory controllers, like the ones found on Intel Sandy Bridge and\nNehalem, even working with normal DDR3 DIMM\u0027s, don\u0027t use the usual\nchannel A/channel B interleaving schema to provide 128 bits data access.\n\nInstead, they have more channels (3 or 4 channels), and they can use\nseveral interleaving schemas. Such memory controllers see the DIMMs\ndirectly on their registers, instead of the ranks, which is better for\nthe driver, as its main usageis to point to a broken DIMM stick (the\nField Repleceable Unit), and not to point to a broken DRAM chip.\n\nThe drivers that support such such newer memory architecture models\ncurrently need to fake information and to abuse on EDAC structures, as\nthe subsystem was conceived with the idea that the csrow would always be\nvisible by the CPU.\n\nTo make things a little worse, those drivers don\u0027t currently fake\ncsrows/channels on a consistent way, as the concepts there don\u0027t apply\nto the memory controllers they\u0027re talking with. So, each driver author\ninterpreted the concepts using a different logic.\n\nIn order to fix it, let\u0027s rename the data structure that points into a\nDIMM rank to \"rank_info\", in order to be clearer about what\u0027s stored\nthere.\n\nLatter patches will provide a better way to represent the memory\nhierarchy for the other types of memory controller.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "0142877aa4e54dd9943fb727e9b386c36c8e3ab7",
      "tree": "a417008857f8bb421052bf22b2ce03be49053f5e",
      "parents": [
        "df95e42e1f20a561f2fe0a632d5b8fd6c26f1bb9"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Sun Feb 12 08:21:34 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Mar 21 15:22:49 2012 -0300"
      },
      "message": "i5400_edac: Avoid calling pci_put_device() twice\n\nWhen i5400_edac driver is removed and re-loaded a few times, it causes\nan OOPS, as it is currently decrementing some PCI device usage two\ntimes.\n\nWhen called inside a loop, pci_get_device() will call\npci_put_device(). That mangles the error count. In this specific\ncase, it seems easier to just duplicate the call.\n\nAlso fixes the error logic when pci_get_device fails.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    }
  ],
  "next": "df95e42e1f20a561f2fe0a632d5b8fd6c26f1bb9"
}
