mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 00:21:59 +00:00
edac: mpc85xx fix bad page calculation
Commit b484625172
("edac: mpc85xx add
mpc83xx support") accidentally broke how a chip select's first and last
page addresses are calculated. The page addresses are being shifted too
far right by PAGE_SHIFT. This results in errors such as:
EDAC MPC85xx MC1: Err addr: 0x003075c0
EDAC MPC85xx MC1: PFN: 0x00000307
EDAC MPC85xx MC1: PFN out of range!
EDAC MC1: INTERNAL ERROR: row out of range (4 >= 4)
EDAC MC1: CE - no information available: INTERNAL ERROR
The vaule of PAGE_SHIFT is already being taken into consideration during
the calculation of the 'start' and 'end' variables, thus it is not
necessary to account for it again when setting a chip select's first and
last page address.
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
Signed-off-by: Doug Thompson <dougthompson@xmission.com>
Cc: Ira W. Snyder <iws@ovro.caltech.edu>
Cc: Kumar Gala <galak@gate.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
c286d03cce
commit
cff9279e4e
@ -804,8 +804,8 @@ static void __devinit mpc85xx_init_csrows(struct mem_ctl_info *mci)
|
||||
end <<= (24 - PAGE_SHIFT);
|
||||
end |= (1 << (24 - PAGE_SHIFT)) - 1;
|
||||
|
||||
csrow->first_page = start >> PAGE_SHIFT;
|
||||
csrow->last_page = end >> PAGE_SHIFT;
|
||||
csrow->first_page = start;
|
||||
csrow->last_page = end;
|
||||
csrow->nr_pages = end + 1 - start;
|
||||
csrow->grain = 8;
|
||||
csrow->mtype = mtype;
|
||||
|
Loading…
Reference in New Issue
Block a user