• Andy Shevchenko's avatar
    iommu/vt-d: Fix crash on boot when DMAR is disabled · c37a0177
    Andy Shevchenko authored
    By default CONFIG_INTEL_IOMMU_DEFAULT_ON is not set and thus
    dmar_disabled variable is set.
    
    Intel IOMMU driver based on above doesn't set intel_iommu_enabled
    variable.
    
    The commit b0119e87 ("iommu: Introduce new 'struct iommu_device'")
    mistakenly assumes it never happens and tries to unregister not ever
    registered resources, which crashes the kernel at boot time:
    
    	BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    	IP: iommu_device_unregister+0x31/0x60
    
    Make unregister procedure conditional in free_iommu().
    
    Fixes: b0119e87 ("iommu: Introduce new 'struct iommu_device'")
    Cc: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    c37a0177
dmar.c 50 KB