x86/PCI: MMCONFIG: fix region end calculation
authorBjorn Helgaas <bjorn.helgaas@hp.com>
Mon, 4 Oct 2010 18:49:24 +0000 (12:49 -0600)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Mon, 18 Oct 2010 03:03:07 +0000 (20:03 -0700)
commit1ca98fa652bb5dc3c8793335db9ccc5d0f2e1f65
tree726e25f2878fdaab96c45ee5b8b58bf18e6fbb96
parentdf17e62e5bff60aeefd0e81165c62f9e46f33217
x86/PCI: MMCONFIG: fix region end calculation

The end of an MMCONFIG region depends on the ending bus number, not on the
number of buses the region covers.  We previously computed the wrong ending
address whenever the starting bus number was non-zero, e.g.,:

  MMCONFIG for [bus 00-1f] at [mem 0xe0000000-0xe1ffffff] (base 0xe0000000)
  MMCONFIG for [bus 20-3f] at [mem 0xe2000000-0xe1ffffff] (base 0xe0000000)

The correct regions are:

  MMCONFIG for [bus 00-1f] at [mem 0xe0000000-0xe1ffffff] (base 0xe0000000)
  MMCONFIG for [bus 20-3f] at [mem 0xe2000000-0xe3ffffff] (base 0xe0000000)

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
arch/x86/pci/mmconfig-shared.c