Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F162788914
D17991.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D17991.diff
View Options
Index: head/sys/x86/include/intr_machdep.h
===================================================================
--- head/sys/x86/include/intr_machdep.h
+++ head/sys/x86/include/intr_machdep.h
@@ -51,15 +51,11 @@
* IRQ values returned by ACPI methods such as _CRS can be used
* directly by the ACPI bus driver.
*
- * MSI interrupts allocate a block of interrupts starting at either
- * the end of the I/O APIC range or 256, whichever is higher. When
- * running under the Xen Hypervisor, an additional range of IRQ values
- * are available for binding to event channel events. We use 256 as
- * the minimum IRQ value for MSI interrupts to attempt to leave 255
- * unused since 255 is used in PCI to indicate an invalid INTx IRQ.
+ * MSI interrupts allocate a block of interrupts starting at the end
+ * of the I/O APIC range. When running under the Xen Hypervisor, an
+ * additional range of IRQ values are available for binding to event
+ * channel events.
*/
-#define MINIMUM_MSI_INT 256
-
extern u_int first_msi_irq;
extern u_int num_io_irqs;
extern u_int num_msi_irqs;
Index: head/sys/x86/x86/msi.c
===================================================================
--- head/sys/x86/x86/msi.c
+++ head/sys/x86/x86/msi.c
@@ -153,6 +153,8 @@
};
u_int first_msi_irq;
+SYSCTL_UINT(_machdep, OID_AUTO, first_msi_irq, CTLFLAG_RD, &first_msi_irq, 0,
+ "Number of first IRQ reserved for MSI and MSI-X interrupts");
u_int num_msi_irqs = 512;
SYSCTL_UINT(_machdep, OID_AUTO, num_msi_irqs, CTLFLAG_RDTUN, &num_msi_irqs, 0,
@@ -339,7 +341,7 @@
if (num_msi_irqs == 0)
return;
- first_msi_irq = max(MINIMUM_MSI_INT, num_io_irqs);
+ first_msi_irq = num_io_irqs;
if (num_msi_irqs > UINT_MAX - first_msi_irq)
panic("num_msi_irq too high");
num_io_irqs = first_msi_irq + num_msi_irqs;
Index: head/sys/x86/xen/pvcpu_enum.c
===================================================================
--- head/sys/x86/xen/pvcpu_enum.c
+++ head/sys/x86/xen/pvcpu_enum.c
@@ -199,7 +199,7 @@
* this is legacy code so just keep using the previous
* behaviour and assume a maximum of 256 interrupts.
*/
- num_io_irqs = max(MINIMUM_MSI_INT - 1, num_io_irqs);
+ num_io_irqs = max(255, num_io_irqs);
acpi_SetDefaultIntrModel(ACPI_INTR_APIC);
}
Index: head/sys/x86/xen/xen_msi.c
===================================================================
--- head/sys/x86/xen/xen_msi.c
+++ head/sys/x86/xen/xen_msi.c
@@ -57,7 +57,7 @@
{
MPASS(num_io_irqs > 0);
- first_msi_irq = min(MINIMUM_MSI_INT, num_io_irqs);
+ first_msi_irq = num_io_irqs;
if (num_msi_irqs > UINT_MAX - first_msi_irq)
panic("num_msi_irq too high");
num_io_irqs = first_msi_irq + num_msi_irqs;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jul 17, 10:04 PM (6 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35178695
Default Alt Text
D17991.diff (2 KB)
Attached To
Mode
D17991: Axe MINIMUM_MSI_INT.
Attached
Detach File
Event Timeline
Log In to Comment