Skip to contentSkip to conversation

Intel IOMMU: RMRRs do not necessarily have to be present on all VT-d capable platforms

PATCH In review Yong Wang 3 participants 5 messages Jul 1, 2008 – Jul 11, 2008 PCI

lore
Share & tools
lore

Yong Wang

author
#0 lore raw

PATCH 1/1 Intel IOMMU: RMRRs do not necessarily have to be present on all VT-d capable platforms

RMRRs do not necessarily have to be present on all VT-d capable platforms. The printk is just informational and does not need to be followed by an error return.

---
 dmar.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/pci/dmar.c +1 -3
index f941f60..8bf86ae 100644
@@ -317,10 +317,8 @@ int __init dmar_table_init(void)
 		return -ENODEV;
 	}
 
-	if (list_empty(&dmar_rmrr_units)) {
+	if (list_empty(&dmar_rmrr_units))
 		printk(KERN_INFO PREFIX "No RMRR found\n");
-		return -ENODEV;
-	}
 
 	return 0;
 }
#1 lore raw
Quoted 26 lines · On Tue, 1 Jul 2008 05:13:54 -0400 Yong Wang <[email protected]> wrote:

RMRRs do not necessarily have to be present on all VT-d capable platforms. The printk is just informational and does not need to be followed by an error return.

---
 dmar.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/pci/dmar.c +1 -3
index f941f60..8bf86ae 100644
@@ -317,10 +317,8 @@ int __init dmar_table_init(void)
 		return -ENODEV;
 	}
 
-	if (list_empty(&dmar_rmrr_units)) {
+	if (list_empty(&dmar_rmrr_units))
 		printk(KERN_INFO PREFIX "No RMRR found\n");
-		return -ENODEV;
-	}
 
 	return 0;
 }
Quoted 1 line

From your description I am unable to work out how important this fix is.

Is it needed in 2.6.25.x? In 2.6.26? In 2.6.27? There's no way for me to know :(

author
#2 lore raw
Quoted 25 lines · Andrew Morton
Quoted 23 lines · On Tue, 1 Jul 2008 05:13:54 -0400 Yong Wang <[email protected]> wrote:

RMRRs do not necessarily have to be present on all VT-d capable platforms. The printk is just informational and does not need to be followed by an error return.

---
 dmar.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/pci/dmar.c +1 -3
index f941f60..8bf86ae 100644
@@ -317,10 +317,8 @@ int __init dmar_table_init(void)
 		return -ENODEV;
 	}
 
-	if (list_empty(&dmar_rmrr_units)) {
+	if (list_empty(&dmar_rmrr_units))
 		printk(KERN_INFO PREFIX "No RMRR found\n");
-		return -ENODEV;
-	}
 
Quoted 7 lines
Quoted 4 lines
drivers/pci/dmar.c +0 -0
 	return 0;
 }

From your description I am unable to work out how important this fix is.

Is it needed in 2.6.25.x? In 2.6.26? In 2.6.27? There's no way for me to know :(

Actually this is the same as Suresh' x2apic patch 05/26. The absence of RMRRs will prevent kernel from parsing IOxAPICs without this patch and thus leaves IOxAPICs in an uninitialized state.

#3 lore raw
Quoted 29 lines · On Thu, 10 Jul 2008 19:53:26 -0400 Yong Wang <[email protected]>…
Quoted 28 lines · Andrew Morton
Quoted 25 lines · On Tue, 1 Jul 2008 05:13:54 -0400 Yong Wang <[email protected]> wrote:

RMRRs do not necessarily have to be present on all VT-d capable platforms. The printk is just informational and does not need to be followed by an error return.

---
 dmar.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/pci/dmar.c +1 -3
index f941f60..8bf86ae 100644
@@ -317,10 +317,8 @@ int __init dmar_table_init(void)
 		return -ENODEV;
 	}
 
-	if (list_empty(&dmar_rmrr_units)) {
+	if (list_empty(&dmar_rmrr_units))
 		printk(KERN_INFO PREFIX "No RMRR found\n");
-		return -ENODEV;
-	}
 
 	return 0;
 }
Quoted 8 lines
Quoted 4 lines
Quoted 1 line

From your description I am unable to work out how important this fix is.

Is it needed in 2.6.25.x? In 2.6.26? In 2.6.27? There's no way for me to know :(

Actually this is the same as Suresh' x2apic patch 05/26. The absence of RMRRs will prevent kernel from parsing IOxAPICs without this patch and thus leaves IOxAPICs in an uninitialized state.

And what runtime effect does that have?

#4 lore raw
Quoted 33 lines · Andrew Morton
Quoted 31 lines · On Thu, 10 Jul 2008 19:53:26 -0400 Yong Wang <[email protected]>…
Quoted 30 lines · Andrew Morton
Quoted 27 lines · On Tue, 1 Jul 2008 05:13:54 -0400 Yong Wang <[email protected]> wrote:

RMRRs do not necessarily have to be present on all VT-d capable platforms. The printk is just informational and does not need to be followed by an error return.

---
 dmar.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/pci/dmar.c +1 -3
index f941f60..8bf86ae 100644
@@ -317,10 +317,8 @@ int __init dmar_table_init(void)
          return -ENODEV;
  }
 
- if (list_empty(&dmar_rmrr_units)) {
+ if (list_empty(&dmar_rmrr_units))
          printk(KERN_INFO PREFIX "No RMRR found\n");
-         return -ENODEV;
- }
 
  return 0;
 }

From your description I am unable to work out how important this fix is.

Quoted 8 lines
Quoted 6 lines
Quoted 2 lines

Is it needed in 2.6.25.x? In 2.6.26? In 2.6.27? There's no way for me to know :(

Actually this is the same as Suresh' x2apic patch 05/26. The absence of RMRRs will prevent kernel from parsing IOxAPICs without this patch and thus leaves IOxAPICs in an uninitialized state.

And what runtime effect does that have?

Andrew, this is not urgent. It is now getting tracked as part of x2apic patchset. And also, this doesn't need to be backported to any kernel.

thanks
suresh