iommu/vt-d: Add a command line parameter for VT-d posted-interrupts
authorFeng Wu <feng.wu@intel.com>
Fri, 18 Sep 2015 14:29:56 +0000 (22:29 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 1 Oct 2015 13:06:54 +0000 (15:06 +0200)
Enable VT-d Posted-Interrtups and add a command line
parameter for it.

Signed-off-by: Feng Wu <feng.wu@intel.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Acked-by: Joerg Roedel <joro@8bytes.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Documentation/kernel-parameters.txt
drivers/iommu/irq_remapping.c

index 22a4b687ea5b4b3cb9d576bfeffaed813256a795..73588fcaff8c58283f2b43e7d4536ac34c349ae0 100644 (file)
@@ -1553,6 +1553,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        nosid   disable Source ID checking
                        no_x2apic_optout
                                BIOS x2APIC opt-out request will be ignored
+                       nopost  disable Interrupt Posting
 
        iomem=          Disable strict checking of access to MMIO memory
                strict  regions from userspace.
index 913455a5fd40e044e21ec20095296027dad3c1e6..8adaaeae32681d863c568eddbfd9af5e12bdc205 100644 (file)
@@ -22,7 +22,7 @@ int irq_remap_broken;
 int disable_sourceid_checking;
 int no_x2apic_optout;
 
-int disable_irq_post = 1;
+int disable_irq_post = 0;
 
 static int disable_irq_remap;
 static struct irq_remap_ops *remap_ops;
@@ -58,14 +58,18 @@ static __init int setup_irqremap(char *str)
                return -EINVAL;
 
        while (*str) {
-               if (!strncmp(str, "on", 2))
+               if (!strncmp(str, "on", 2)) {
                        disable_irq_remap = 0;
-               else if (!strncmp(str, "off", 3))
+                       disable_irq_post = 0;
+               } else if (!strncmp(str, "off", 3)) {
                        disable_irq_remap = 1;
-               else if (!strncmp(str, "nosid", 5))
+                       disable_irq_post = 1;
+               } else if (!strncmp(str, "nosid", 5))
                        disable_sourceid_checking = 1;
                else if (!strncmp(str, "no_x2apic_optout", 16))
                        no_x2apic_optout = 1;
+               else if (!strncmp(str, "nopost", 6))
+                       disable_irq_post = 1;
 
                str += strcspn(str, ",");
                while (*str == ',')