amd_iommu: fix nasty bug that caused ILLEGAL_DEVICE_TABLE_ENTRY errors
We are on 64-bit so better use u64 instead of u32 to deal with
addresses:
static void __init iommu_set_device_table(struct amd_iommu *iommu)
{
        u64 entry;
  ...
        entry = virt_to_phys(amd_iommu_dev_table);
  ...
(I am wondering why gcc 4.2.x did not warn about the assignment
between u32 and unsigned long.)
Cc: iommu@lists.linux-foundation.org
Cc: stable@kernel.org
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
	
	
This commit is contained in:
		
					parent
					
						
							
								5b6985ce8e
							
						
					
				
			
			
				commit
				
					
						f609891f42
					
				
			
		
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -212,7 +212,7 @@ static void __init iommu_set_exclusion_range(struct amd_iommu *iommu)
 | 
			
		|||
/* Programs the physical address of the device table into the IOMMU hardware */
 | 
			
		||||
static void __init iommu_set_device_table(struct amd_iommu *iommu)
 | 
			
		||||
{
 | 
			
		||||
	u32 entry;
 | 
			
		||||
	u64 entry;
 | 
			
		||||
 | 
			
		||||
	BUG_ON(iommu->mmio_base == NULL);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue