diff options
| author | Yinghai Lu <yinghai@kernel.org> | 2009-04-18 04:43:46 -0400 |
|---|---|---|
| committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-04-22 16:56:26 -0400 |
| commit | 044cd80942e47b9de0915b627902adf05c52377f (patch) | |
| tree | fbb170a9ca790c965cfac866bb3f38900b87e836 | |
| parent | 162dedd39dcc6eca3fc0d29cf19658c6c13b840e (diff) | |
x86/PCI: don't call e820_all_mapped with -1 in the mmconfig case
e820_all_mapped need end is (addr + size) instead of (addr + size - 1)
Cc: stable@kernel.org
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
| -rw-r--r-- | arch/x86/pci/mmconfig-shared.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c index 905bb526b133..5fa10bb9604f 100644 --- a/arch/x86/pci/mmconfig-shared.c +++ b/arch/x86/pci/mmconfig-shared.c | |||
| @@ -375,7 +375,7 @@ static acpi_status __init check_mcfg_resource(struct acpi_resource *res, | |||
| 375 | if (!fixmem32) | 375 | if (!fixmem32) |
| 376 | return AE_OK; | 376 | return AE_OK; |
| 377 | if ((mcfg_res->start >= fixmem32->address) && | 377 | if ((mcfg_res->start >= fixmem32->address) && |
| 378 | (mcfg_res->end < (fixmem32->address + | 378 | (mcfg_res->end <= (fixmem32->address + |
| 379 | fixmem32->address_length))) { | 379 | fixmem32->address_length))) { |
| 380 | mcfg_res->flags = 1; | 380 | mcfg_res->flags = 1; |
| 381 | return AE_CTRL_TERMINATE; | 381 | return AE_CTRL_TERMINATE; |
| @@ -392,7 +392,7 @@ static acpi_status __init check_mcfg_resource(struct acpi_resource *res, | |||
| 392 | return AE_OK; | 392 | return AE_OK; |
| 393 | 393 | ||
| 394 | if ((mcfg_res->start >= address.minimum) && | 394 | if ((mcfg_res->start >= address.minimum) && |
| 395 | (mcfg_res->end < (address.minimum + address.address_length))) { | 395 | (mcfg_res->end <= (address.minimum + address.address_length))) { |
| 396 | mcfg_res->flags = 1; | 396 | mcfg_res->flags = 1; |
| 397 | return AE_CTRL_TERMINATE; | 397 | return AE_CTRL_TERMINATE; |
| 398 | } | 398 | } |
| @@ -439,7 +439,7 @@ static int __init is_mmconf_reserved(check_reserved_t is_reserved, | |||
| 439 | u64 old_size = size; | 439 | u64 old_size = size; |
| 440 | int valid = 0; | 440 | int valid = 0; |
| 441 | 441 | ||
| 442 | while (!is_reserved(addr, addr + size - 1, E820_RESERVED)) { | 442 | while (!is_reserved(addr, addr + size, E820_RESERVED)) { |
| 443 | size >>= 1; | 443 | size >>= 1; |
| 444 | if (size < (16UL<<20)) | 444 | if (size < (16UL<<20)) |
| 445 | break; | 445 | break; |
