lkml.org 
[lkml]   [2006]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [discuss] Re: Please pull x86-64 bug fixes
    Linus Torvalds wrote:
    > (And we should probably have the "pci=mmiocfg" kernel command line entry
    > that forces MMIOCFG regardless of any e820 issues, even for normal
    > accesses).

    Something like this?


    Signed-off-by: Jeff Garzik <jeff@garzik.org>

    ---

    arch/i386/pci/common.c | 4 ++++
    arch/i386/pci/mmconfig.c | 3 ++-
    arch/x86_64/pci/mmconfig.c | 3 ++-
    3 files changed, 8 insertions(+), 2 deletions(-)

    diff --git a/arch/i386/pci/common.c b/arch/i386/pci/common.c
    index 68bce19..38d9f4f 100644
    --- a/arch/i386/pci/common.c
    +++ b/arch/i386/pci/common.c
    @@ -237,6 +237,10 @@ #ifdef CONFIG_PCI_MMCONFIG
    pci_probe &= ~PCI_PROBE_MMCONF;
    return NULL;
    }
    + else if (!strcmp(str, "mmconf")) {
    + pci_probe |= PCI_PROBE_MMCONF | PCI_NO_CHECKS;
    + return NULL;
    + }
    #endif
    else if (!strcmp(str, "noacpi")) {
    acpi_noirq_set();
    diff --git a/arch/i386/pci/mmconfig.c b/arch/i386/pci/mmconfig.c
    index d0c3da3..056cb0a 100644
    --- a/arch/i386/pci/mmconfig.c
    +++ b/arch/i386/pci/mmconfig.c
    @@ -237,7 +237,8 @@ void __init pci_mmcfg_init(int type)

    /* Only do this check when type 1 works. If it doesn't work
    assume we run on a Mac and always use MCFG */
    - if (type == 1 && !e820_all_mapped(pci_mmcfg_config[0].base_address,
    + if ((type == 1) && (!(pci_probe & PCI_NO_CHECKS)) &&
    + !e820_all_mapped(pci_mmcfg_config[0].base_address,
    pci_mmcfg_config[0].base_address + MMCONFIG_APER_MIN,
    E820_RESERVED)) {
    printk(KERN_ERR "PCI: BIOS Bug: MCFG area at %x is not E820-reserved\n",
    diff --git a/arch/x86_64/pci/mmconfig.c b/arch/x86_64/pci/mmconfig.c
    index 7732f42..d942fc7 100644
    --- a/arch/x86_64/pci/mmconfig.c
    +++ b/arch/x86_64/pci/mmconfig.c
    @@ -209,7 +209,8 @@ void __init pci_mmcfg_init(int type)

    /* Only do this check when type 1 works. If it doesn't work
    assume we run on a Mac and always use MCFG */
    - if (type == 1 && !e820_all_mapped(pci_mmcfg_config[0].base_address,
    + if ((type == 1) && (!(pci_probe & PCI_NO_CHECKS)) &&
    + !e820_all_mapped(pci_mmcfg_config[0].base_address,
    pci_mmcfg_config[0].base_address + MMCONFIG_APER_MIN,
    E820_RESERVED)) {
    printk(KERN_ERR "PCI: BIOS Bug: MCFG area at %x is not E820-reserved\n",
    \
     
     \ /
      Last update: 2006-10-06 02:59    [W:0.023 / U:59.476 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site