sb_edac: Fix a typo and a thinko in address handling for Haswell
authorTony Luck <tony.luck@intel.com>
Mon, 18 May 2015 20:39:06 +0000 (17:39 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 3 Jun 2015 13:10:47 +0000 (10:10 -0300)
commitbb89e7141a4e5690a046d3bdfa57b8521aab64b0
treeec810474c3913f0ee0ff266c6c1da4ba0321827e
parentc44696fff04ff62f65441afe9ea244b47653dd6d
sb_edac: Fix a typo and a thinko in address handling for Haswell

typo: "a7mode" chooses whether to use bits {8, 7, 9} or {8, 7, 6}
in the algorithm to spread access between memory resources. But
the non-a7mode path was incorrectly using GET_BITFIELD(addr, 7, 9)
and so picking bits {9, 8, 7}

thinko: BIT(1) of the dram_rule registers chooses whether to just
use the {8, 7, 6} (or {8, 7, 9}) bits mentioned above as they are,
or to XOR them with bits {18, 17, 16} but the code inverted the
test. We need the additional XOR when dram_rule{1} == 0.

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>
drivers/edac/sb_edac.c