[PATCH] x86-64: Calgary IOMMU: Fix off by one when calculating register space location
authorJon Mason <jdmason@kudzu.us>
Thu, 5 Oct 2006 16:47:21 +0000 (18:47 +0200)
committerAndi Kleen <andi@basil.nowhere.org>
Thu, 5 Oct 2006 16:47:21 +0000 (18:47 +0200)
commit76fd231717453e06347ad17b3fc1707c6918d172
treeeb6178d9604a352a6603294478d740cb64986936
parentdedc9937e876cb5430bca6a1dccfcc2ff22f8b7c
[PATCH] x86-64: Calgary IOMMU: Fix off by one when calculating register space location

The purpose of the code being modified is to determine the location
of the calgary chip address space.  This is done by a magical formula
of FE0MB-8MB*OneBasedChassisNumber+1MB*(RioNodeId-ChassisBase) to
find the offset where BIOS puts it.  In this formula,
OneBasedChassisNumber corresponds to the NUMA node, and rionodeid is
always 2 or 3 depending on which chip in the system it is.  The
problem was that we had an off by one error that caused us to account
some busses to the wrong chip and thus give them the wrong address
space.

Fixes RH bugzilla #203971.

Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-bu: Muli Ben-Yehuda <muli@il.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
arch/x86_64/kernel/pci-calgary.c