diff options
| author | David Woodhouse <David.Woodhouse@intel.com> | 2011-05-31 00:22:52 +0100 | 
|---|---|---|
| committer | David Woodhouse <David.Woodhouse@intel.com> | 2011-06-01 12:48:21 +0100 | 
| commit | 70e535d1e5d1e4317e894d6228b762cf9c3fbc6a (patch) | |
| tree | 2c7ed5f263440c6a7302c19a31827488eade9ea5 /drivers/pci | |
| parent | 8519dc4401ddf8a5399f979870bbeeadbc111186 (diff) | |
| download | kernel_samsung_espresso10-70e535d1e5d1e4317e894d6228b762cf9c3fbc6a.zip kernel_samsung_espresso10-70e535d1e5d1e4317e894d6228b762cf9c3fbc6a.tar.gz kernel_samsung_espresso10-70e535d1e5d1e4317e894d6228b762cf9c3fbc6a.tar.bz2  | |
intel-iommu: Fix off-by-one in RMRR setup
We were mapping an extra byte (and hence usually an extra page):
iommu_prepare_identity_map() expects to be given an 'end' argument which
is the last byte to be mapped; not the first byte *not* to be mapped.
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/pci')
| -rw-r--r-- | drivers/pci/intel-iommu.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c index b0c96d3..a8867bd 100644 --- a/drivers/pci/intel-iommu.c +++ b/drivers/pci/intel-iommu.c @@ -2147,7 +2147,7 @@ static inline int iommu_prepare_rmrr_dev(struct dmar_rmrr_unit *rmrr,  	if (pdev->dev.archdata.iommu == DUMMY_DEVICE_DOMAIN_INFO)  		return 0;  	return iommu_prepare_identity_map(pdev, rmrr->base_address, -		rmrr->end_address + 1); +		rmrr->end_address);  }  #ifdef CONFIG_DMAR_FLOPPY_WA @@ -2161,7 +2161,7 @@ static inline void iommu_prepare_isa(void)  		return;  	printk(KERN_INFO "IOMMU: Prepare 0-16MiB unity mapping for LPC\n"); -	ret = iommu_prepare_identity_map(pdev, 0, 16*1024*1024); +	ret = iommu_prepare_identity_map(pdev, 0, 16*1024*1024 - 1);  	if (ret)  		printk(KERN_ERR "IOMMU: Failed to create 0-16MiB identity map; "  | 
