diff options
Diffstat (limited to 'drivers/edac')
-rw-r--r-- | drivers/edac/cell_edac.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/edac/cell_edac.c b/drivers/edac/cell_edac.c index b54112ffd282..0e024fe2d8c4 100644 --- a/drivers/edac/cell_edac.c +++ b/drivers/edac/cell_edac.c | |||
@@ -33,7 +33,7 @@ static void cell_edac_count_ce(struct mem_ctl_info *mci, int chan, u64 ar) | |||
33 | { | 33 | { |
34 | struct cell_edac_priv *priv = mci->pvt_info; | 34 | struct cell_edac_priv *priv = mci->pvt_info; |
35 | struct csrow_info *csrow = &mci->csrows[0]; | 35 | struct csrow_info *csrow = &mci->csrows[0]; |
36 | unsigned long address, pfn, offset; | 36 | unsigned long address, pfn, offset, syndrome; |
37 | 37 | ||
38 | dev_dbg(mci->dev, "ECC CE err on node %d, channel %d, ar = 0x%016lx\n", | 38 | dev_dbg(mci->dev, "ECC CE err on node %d, channel %d, ar = 0x%016lx\n", |
39 | priv->node, chan, ar); | 39 | priv->node, chan, ar); |
@@ -44,10 +44,11 @@ static void cell_edac_count_ce(struct mem_ctl_info *mci, int chan, u64 ar) | |||
44 | address = (address << 1) | chan; | 44 | address = (address << 1) | chan; |
45 | pfn = address >> PAGE_SHIFT; | 45 | pfn = address >> PAGE_SHIFT; |
46 | offset = address & ~PAGE_MASK; | 46 | offset = address & ~PAGE_MASK; |
47 | syndrome = (ar & 0x000000001fe00000ul) >> 21; | ||
47 | 48 | ||
48 | /* TODO: Decoding of the error addresss */ | 49 | /* TODO: Decoding of the error addresss */ |
49 | edac_mc_handle_ce(mci, csrow->first_page + pfn, offset, | 50 | edac_mc_handle_ce(mci, csrow->first_page + pfn, offset, |
50 | 0, 0, chan, ""); | 51 | syndrome, 0, chan, ""); |
51 | } | 52 | } |
52 | 53 | ||
53 | static void cell_edac_count_ue(struct mem_ctl_info *mci, int chan, u64 ar) | 54 | static void cell_edac_count_ue(struct mem_ctl_info *mci, int chan, u64 ar) |