Red Hat Bugzilla – Bug 675304
Fix potential deadlock in intel-iommu
Last modified: 2013-01-09 18:32:22 EST
Description of problem: intel-iommu has a double lock fixed in 00dfff77 Version-Release number of selected component (if applicable): kernel-2.6.32-113.el6 How reproducible: no hit in practice Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
For reproducibility, I should say I've never hit it, but according to the commit log, it is possible: commit 00dfff77e7184140dc45724c7232e99302f6bf97 Author: Jiri Slaby <jirislaby@gmail.com> Date: Mon Jun 14 17:17:32 2010 +0200 intel-iommu: Fix double lock in get_domain_for_dev() stanse found the following double lock. In get_domain_for_dev: spin_lock_irqsave(&device_domain_lock, flags); domain_exit(domain); domain_remove_dev_info(domain); spin_lock_irqsave(&device_domain_lock, flags); spin_unlock_irqrestore(&device_domain_lock, flags); spin_unlock_irqrestore(&device_domain_lock, flags); This happens when the domain is created by another CPU at the same time as this function is creating one, and the other CPU wins the race to attach it to the device in question, so we have to destroy our own newly-created one. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
Patch(es) available on kernel-2.6.32-117.el6
Appears there is no test case for this one. Confirmed the fix is in -118 and setting SanityOnly.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2011-0542.html