lkml.org 
[lkml]   [2019]   [Dec]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: panic in dmar_remove_one_dev_info
On Mon Dec 16 19, Jerry Snitselaar wrote:
>HP is seeing a panic on gen9 dl360 and dl560 while testing these other
>changes we've been eorking on. I just took an initial look, but have
>to run to a dentist appointment so couldn't dig too deep. It looks
>like the device sets dev->archdata.iommu to DEFER_DEVICE_DOMAIN_INFO
>in intel_iommu_add_device, and then it needs a private domain so
>dmar_remove_one_dev_info gets called. That code path ends up trying to
>use DEFER_DEVICE_DOMAIN_INFO as a pointer. I don't need if there just
>needs to be a check in there to bail out if it sees
>DEFER_DEVICE_DOMAIN_INFO, or if something more is needed. I'll look
>at it some more when I get back home.
>
>Regards,
>Jerry

Hi Baolu,

Does this look sane?

--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -5163,7 +5163,8 @@ static void dmar_remove_one_dev_info(struct device *dev)

spin_lock_irqsave(&device_domain_lock, flags);
info = dev->archdata.iommu;
- if (info)
+ if (info && info != DEFER_DEVICE_DOMAIN_INFO
+ && info != DUMMY_DEVICE_DOMAIN_INFO)
__dmar_remove_one_dev_info(info);
spin_unlock_irqrestore(&device_domain_lock, flags);
}



Regards,
Jerry

\
 
 \ /
  Last update: 2019-12-17 07:14    [W:0.032 / U:11.244 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site