powerpc/cell/edac: Log a syndrome code in case of correctable error
If correctable error occurs the syndrome code was logged as 0. This patch lets EDAC to log a correct syndrome code to make problem investigation easier. Signed-off-by: Maxim Shchetynin <maxim@de.ibm.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Doug Thompson <dougthompson@xmission.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
committed by
Benjamin Herrenschmidt
parent
1ed6af7344
commit
c134fd868f
@@ -33,7 +33,7 @@ static void cell_edac_count_ce(struct mem_ctl_info *mci, int chan, u64 ar)
|
|||||||
{
|
{
|
||||||
struct cell_edac_priv *priv = mci->pvt_info;
|
struct cell_edac_priv *priv = mci->pvt_info;
|
||||||
struct csrow_info *csrow = &mci->csrows[0];
|
struct csrow_info *csrow = &mci->csrows[0];
|
||||||
unsigned long address, pfn, offset;
|
unsigned long address, pfn, offset, syndrome;
|
||||||
|
|
||||||
dev_dbg(mci->dev, "ECC CE err on node %d, channel %d, ar = 0x%016lx\n",
|
dev_dbg(mci->dev, "ECC CE err on node %d, channel %d, ar = 0x%016lx\n",
|
||||||
priv->node, chan, ar);
|
priv->node, chan, ar);
|
||||||
@@ -44,10 +44,11 @@ static void cell_edac_count_ce(struct mem_ctl_info *mci, int chan, u64 ar)
|
|||||||
address = (address << 1) | chan;
|
address = (address << 1) | chan;
|
||||||
pfn = address >> PAGE_SHIFT;
|
pfn = address >> PAGE_SHIFT;
|
||||||
offset = address & ~PAGE_MASK;
|
offset = address & ~PAGE_MASK;
|
||||||
|
syndrome = (ar & 0x000000001fe00000ul) >> 21;
|
||||||
|
|
||||||
/* TODO: Decoding of the error addresss */
|
/* TODO: Decoding of the error addresss */
|
||||||
edac_mc_handle_ce(mci, csrow->first_page + pfn, offset,
|
edac_mc_handle_ce(mci, csrow->first_page + pfn, offset,
|
||||||
0, 0, chan, "");
|
syndrome, 0, chan, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cell_edac_count_ue(struct mem_ctl_info *mci, int chan, u64 ar)
|
static void cell_edac_count_ue(struct mem_ctl_info *mci, int chan, u64 ar)
|
||||||
|
Reference in New Issue
Block a user