lkml.org 
[lkml]   [2008]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 04/26] x64, x2apic/intr-remap: use CONFIG_DMAR for DMA-remapping specific code
    DMA remapping specific code covered with CONFIG_DMAR in
    the generic code which will also be used later for enabling Interrupt-remapping.

    Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
    ---

    Index: tree-x86/drivers/pci/dmar.c
    ===================================================================
    --- tree-x86.orig/drivers/pci/dmar.c 2008-07-10 09:51:51.000000000 -0700
    +++ tree-x86/drivers/pci/dmar.c 2008-07-10 09:51:53.000000000 -0700
    @@ -39,7 +39,6 @@
    * these units are not supported by the architecture.
    */
    LIST_HEAD(dmar_drhd_units);
    -LIST_HEAD(dmar_rmrr_units);

    static struct acpi_table_header * __initdata dmar_tbl;

    @@ -55,11 +54,6 @@
    list_add(&drhd->list, &dmar_drhd_units);
    }

    -static void __init dmar_register_rmrr_unit(struct dmar_rmrr_unit *rmrr)
    -{
    - list_add(&rmrr->list, &dmar_rmrr_units);
    -}
    -
    static int __init dmar_parse_one_dev_scope(struct acpi_dmar_device_scope *scope,
    struct pci_dev **dev, u16 segment)
    {
    @@ -224,6 +218,15 @@
    return ret;
    }

    +#ifdef CONFIG_DMAR
    +LIST_HEAD(dmar_rmrr_units);
    +
    +static void __init dmar_register_rmrr_unit(struct dmar_rmrr_unit *rmrr)
    +{
    + list_add(&rmrr->list, &dmar_rmrr_units);
    +}
    +
    +
    static int __init
    dmar_parse_one_rmrr(struct acpi_dmar_header *header)
    {
    @@ -260,6 +263,7 @@
    }
    return ret;
    }
    +#endif

    static void __init
    dmar_table_print_dmar_entry(struct acpi_dmar_header *header)
    @@ -284,6 +288,7 @@
    }
    }

    +
    /**
    * parse_dmar_table - parses the DMA reporting table
    */
    @@ -316,7 +321,9 @@
    ret = dmar_parse_one_drhd(entry_header);
    break;
    case ACPI_DMAR_TYPE_RESERVED_MEMORY:
    +#ifdef CONFIG_DMAR
    ret = dmar_parse_one_rmrr(entry_header);
    +#endif
    break;
    default:
    printk(KERN_WARNING PREFIX
    @@ -366,7 +373,6 @@
    int __init dmar_dev_scope_init(void)
    {
    struct dmar_drhd_unit *drhd;
    - struct dmar_rmrr_unit *rmrr;
    int ret = -ENODEV;

    for_each_drhd_unit(drhd) {
    @@ -375,11 +381,16 @@
    return ret;
    }

    - for_each_rmrr_units(rmrr) {
    - ret = rmrr_parse_dev(rmrr);
    - if (ret)
    - return ret;
    +#ifdef CONFIG_DMAR
    + {
    + struct dmar_rmrr_unit *rmrr;
    + for_each_rmrr_units(rmrr) {
    + ret = rmrr_parse_dev(rmrr);
    + if (ret)
    + return ret;
    + }
    }
    +#endif

    return ret;
    }
    @@ -407,10 +418,12 @@
    return -ENODEV;
    }

    +#ifdef CONFIG_DMAR
    if (list_empty(&dmar_rmrr_units)) {
    printk(KERN_INFO PREFIX "No RMRR found\n");
    return -ENODEV;
    }
    +#endif

    return 0;
    }
    --



    \
     
     \ /
      Last update: 2008-07-10 21:25    [W:2.439 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site