x86, intr-remap: add option to disable interrupt remapping
Add option "nointremap" to disable interrupt remapping. [ Impact: add new boot option ] Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: Weidong Han <weidong.han@intel.com> Acked-by: David Woodhouse <David.Woodhouse@intel.com> Cc: iommu@lists.linux-foundation.org Cc: allen.m.kay@intel.com Cc: fenghua.yu@intel.com LKML-Reference: <1239957736-6161-5-git-send-email-weidong.han@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
937582382c
commit
03ea815506
2 changed files with 14 additions and 0 deletions
|
@ -1533,6 +1533,9 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||||
noinitrd [RAM] Tells the kernel not to load any configured
|
noinitrd [RAM] Tells the kernel not to load any configured
|
||||||
initial RAM disk.
|
initial RAM disk.
|
||||||
|
|
||||||
|
nointremap [X86-64, Intel-IOMMU] Do not enable interrupt
|
||||||
|
remapping.
|
||||||
|
|
||||||
nointroute [IA-64]
|
nointroute [IA-64]
|
||||||
|
|
||||||
nojitter [IA64] Disables jitter checking for ITC timers.
|
nojitter [IA64] Disables jitter checking for ITC timers.
|
||||||
|
|
|
@ -15,6 +15,14 @@ static struct ioapic_scope ir_ioapic[MAX_IO_APICS];
|
||||||
static int ir_ioapic_num;
|
static int ir_ioapic_num;
|
||||||
int intr_remapping_enabled;
|
int intr_remapping_enabled;
|
||||||
|
|
||||||
|
static int disable_intremap;
|
||||||
|
static __init int setup_nointremap(char *str)
|
||||||
|
{
|
||||||
|
disable_intremap = 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
early_param("nointremap", setup_nointremap);
|
||||||
|
|
||||||
struct irq_2_iommu {
|
struct irq_2_iommu {
|
||||||
struct intel_iommu *iommu;
|
struct intel_iommu *iommu;
|
||||||
u16 irte_index;
|
u16 irte_index;
|
||||||
|
@ -506,6 +514,9 @@ int __init intr_remapping_supported(void)
|
||||||
{
|
{
|
||||||
struct dmar_drhd_unit *drhd;
|
struct dmar_drhd_unit *drhd;
|
||||||
|
|
||||||
|
if (disable_intremap)
|
||||||
|
return 0;
|
||||||
|
|
||||||
for_each_drhd_unit(drhd) {
|
for_each_drhd_unit(drhd) {
|
||||||
struct intel_iommu *iommu = drhd->iommu;
|
struct intel_iommu *iommu = drhd->iommu;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue