kernel-fxtec-pro1x/drivers/edac
Tony Luck 7d375bffa5 sb_edac: Fix support for systems with two home agents per socket
First noticed a problem on a 4 socket machine where EDAC only reported
half the DIMMS.  Tracked this down to the code that assumes that systems
with two home agents only have two memory channels on each agent. This
is true on 2 sockect ("-EP") machines. But four socket ("-EX") machines
have four memory channels on each home agent.

The old code would have had problems on two socket systems as it did
a shuffling trick to make the internals of the code think that the
channels from the first agent were '0' and '1', with the second agent
providing '2' and '3'. But the code didn't uniformly convert from
{ha,channel} tuples to this internal representation.

New code always considers up to eight channels.
On a machine with a single home agent these map easily to edac channels
0, 1, 2, 3. On machines with two home agents we map using:
  edac_channel = 4*ha# + channel
So on a -EP machine where each home agent supports only two channels
we'll fill in channels 0, 1, 4, 5, and on a -EX machine we use all of 0,
1, 2, 3, 4, 5, 6, 7.

[mchehab@osg.samsung.com: fold a fixup patch as per Tony's request and fixed
 a few CodingStyle issues]
Signed-off-by: Tony Luck <tony.luck@intel.com>
Acked-by: Aristeu Rozanski <aris@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-06-03 10:10:52 -03:00
..
altera_edac.c edac: altera: Add Altera SDRAM EDAC support 2014-09-04 13:41:46 -05:00
amd64_edac.c EDAC, amd64_edac: Get rid of per-node driver instances 2015-02-23 13:16:01 +01:00
amd64_edac.h EDAC: amd64: Use static attribute groups 2015-02-23 13:08:09 +01:00
amd64_edac_dbg.c EDAC: amd64: Use static attribute groups 2015-02-23 13:08:09 +01:00
amd64_edac_inj.c EDAC: amd64: Use static attribute groups 2015-02-23 13:08:09 +01:00
amd76x_edac.c EDAC: Remove DEFINE_PCI_DEVICE_TABLE macro 2013-12-06 10:23:41 +01:00
amd8111_edac.c amd8111_edac: Fix leaks in probe error paths 2014-02-25 10:09:09 +01:00
amd8111_edac.h
amd8131_edac.c
amd8131_edac.h
cell_edac.c edac: drop owner assignment from platform_drivers 2014-10-20 16:20:30 +02:00
cpc925_edac.c cpc925_edac: Report UE events properly 2014-10-22 22:58:45 +02:00
e7xxx_edac.c e7xxx_edac: Report CE events properly 2014-10-22 22:59:00 +02:00
e752x_edac.c e752x_edac: Drop pvt->bridge_ck 2014-02-25 10:01:30 +01:00
edac_core.h EDAC: Allow to pass driver-specific attribute groups 2015-02-23 13:07:41 +01:00
edac_device.c EDAC: Don't try to cancel workqueue when it's never setup 2014-01-10 15:57:36 +01:00
edac_device_sysfs.c
edac_mc.c EDAC: Allow to pass driver-specific attribute groups 2015-02-23 13:07:41 +01:00
edac_mc_sysfs.c EDAC: Remove arbitrary limit on number of channels 2015-06-03 10:10:22 -03:00
edac_module.c EDAC: Properly unwind on failure path in edac_init() 2015-02-23 13:13:07 +01:00
edac_module.h EDAC: Allow to pass driver-specific attribute groups 2015-02-23 13:07:41 +01:00
edac_pci.c edac: Unify reporting of device info for device, mc and pci 2013-11-04 17:01:09 -06:00
edac_pci_sysfs.c EDAC, pci_sysfs: remove unneccessary ifdef around entire file 2014-11-11 18:17:57 +01:00
edac_stub.c EDAC: Add an edac_report parameter to EDAC 2013-12-11 18:06:47 +01:00
ghes_edac.c ghes_edac: Use snprintf() to silence a static checker warning 2014-11-11 18:08:56 +01:00
highbank_l2_edac.c edac, highbank: Improve and unify naming 2013-11-04 17:01:07 -06:00
highbank_mc_edac.c EDAC: Constify of_device_id array 2015-03-20 17:50:07 +01:00
i7core_edac.c EDAC: i7core: Use static attribute groups for sysfs entries 2015-02-23 13:09:39 +01:00
i3000_edac.c EDAC: Delete unnecessary check before calling pci_dev_put() 2014-11-19 16:33:48 +01:00
i3200_edac.c EDAC updates all over the place: 2014-12-08 20:17:49 -08:00
i5000_edac.c EDAC: Remove DEFINE_PCI_DEVICE_TABLE macro 2013-12-06 10:23:41 +01:00
i5100_edac.c edac: i5100_edac: Remove unused i5100_recmema_dm_buf_id 2015-01-12 16:00:56 +01:00
i5400_edac.c Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2014-04-04 09:50:07 -07:00
i7300_edac.c Linux 3.14-rc5 2014-03-11 06:55:49 -03:00
i82443bxgx_edac.c EDAC, i82443bxgx: Don't export static symbol 2015-03-11 20:39:15 +01:00
i82860_edac.c EDAC: Delete unnecessary checks before pci_dev_put() 2015-02-23 13:06:23 +01:00
i82875p_edac.c EDAC: Delete unnecessary checks before pci_dev_put() 2015-02-23 13:06:23 +01:00
i82975x_edac.c EDAC: Delete unnecessary checks before pci_dev_put() 2015-02-23 13:06:23 +01:00
ie31200_edac.c ie31200_edac: Allocate mci and map mchbar first 2014-07-10 10:55:12 +02:00
Kconfig EDAC, synps: Add EDAC support for zynq ddr ecc controller 2015-01-07 11:42:05 +01:00
Makefile EDAC, synps: Add EDAC support for zynq ddr ecc controller 2015-01-07 11:42:05 +01:00
mce_amd.c EDAC, MCE, AMD: Correct formatting of decoded text 2014-11-25 13:09:49 +01:00
mce_amd.h x86, mce, severity: Extend the the mce_severity mechanism to handle UCNA/DEFERRED error 2014-11-19 10:55:43 -08:00
mce_amd_inj.c EDAC, mce_amd_inj: Fix sparse non static symbol warning 2014-12-21 12:44:58 +01:00
mpc85xx_edac.c EDAC: Constify of_device_id array 2015-03-20 17:50:07 +01:00
mpc85xx_edac.h mpc85xx_edac: Fix a typo in comments 2015-01-02 14:03:33 +01:00
mv64x60_edac.c EDAC, mv64x60_edac: Fix an error code in probe() 2015-01-30 17:00:43 +01:00
mv64x60_edac.h
octeon_edac-l2c.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
octeon_edac-lmc.c EDAC: octeon: Use static attribute groups for sysfs entries 2015-02-23 13:12:05 +01:00
octeon_edac-pc.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
octeon_edac-pci.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
pasemi_edac.c Drivers: edac: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
ppc4xx_edac.c EDAC: Constify of_device_id array 2015-03-20 17:50:07 +01:00
ppc4xx_edac.h
r82600_edac.c EDAC: Remove DEFINE_PCI_DEVICE_TABLE macro 2013-12-06 10:23:41 +01:00
sb_edac.c sb_edac: Fix support for systems with two home agents per socket 2015-06-03 10:10:52 -03:00
synopsys_edac.c EDAC: Constify of_device_id array 2015-03-20 17:50:07 +01:00
tile_edac.c edac: drop owner assignment from platform_drivers 2014-10-20 16:20:30 +02:00
x38_edac.c EDAC: Delete unnecessary check before calling pci_dev_put() 2014-11-19 16:33:48 +01:00