lkml.org 
[lkml]   [2007]   [Nov]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] intel-iommu-fault_reason_index_cleanup.patch
The following patch fixes an off by one bug in the fault reason string
reporting function, and cleans up some of the code around this buglet.


please apply.

--mgross

Signed-off-by: mark gross <mgross@linux.intel.com>


Index: linux-2.6.23-rc2-iommu/drivers/pci/intel-iommu.c
===================================================================
--- linux-2.6.23-rc2-iommu.orig/drivers/pci/intel-iommu.c 2007-11-20 10:04:39.000000000 -0800
+++ linux-2.6.23-rc2-iommu/drivers/pci/intel-iommu.c 2007-11-20 10:10:48.000000000 -0800
@@ -745,7 +745,7 @@

/* iommu interrupt handling. Most stuff are MSI-like. */

-static char *fault_reason_strings[] =
+static const char *fault_reason_strings[] =
{
"Software",
"Present bit in root entry is clear",
@@ -759,15 +759,14 @@
"Context table ptr is invalid",
"non-zero reserved fields in RTP",
"non-zero reserved fields in CTP",
- "non-zero reserved fields in PTE",
- "Unknown"
+ "non-zero reserved fields in PTE"
};
#define MAX_FAULT_REASON_IDX (ARRAY_SIZE(fault_reason_strings) - 1)

-char *dmar_get_fault_reason(u8 fault_reason)
+const char *dmar_get_fault_reason(u8 fault_reason)
{
- if (fault_reason >= MAX_FAULT_REASON_IDX)
- return fault_reason_strings[MAX_FAULT_REASON_IDX - 1];
+ if (fault_reason > MAX_FAULT_REASON_IDX)
+ return "Unknown";
else
return fault_reason_strings[fault_reason];
}
@@ -825,7 +824,7 @@
static int iommu_page_fault_do_one(struct intel_iommu *iommu, int type,
u8 fault_reason, u16 source_id, u64 addr)
{
- char *reason;
+ const char *reason;

reason = dmar_get_fault_reason(fault_reason);

Index: linux-2.6.23-rc2-iommu/include/linux/dmar.h
===================================================================
--- linux-2.6.23-rc2-iommu.orig/include/linux/dmar.h 2007-11-20 10:12:06.000000000 -0800
+++ linux-2.6.23-rc2-iommu/include/linux/dmar.h 2007-11-20 10:13:43.000000000 -0800
@@ -28,7 +28,7 @@
#ifdef CONFIG_DMAR
struct intel_iommu;

-extern char *dmar_get_fault_reason(u8 fault_reason);
+extern const char *dmar_get_fault_reason(u8 fault_reason);

/* Can't use the common MSI interrupt functions
* since DMAR is not a pci device
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2007-11-20 19:25    [W:0.041 / U:0.896 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site