Bug 675304

Summary: Fix potential deadlock in intel-iommu
Product: Red Hat Enterprise Linux 6 Reporter: Alex Williamson <alex.williamson>
Component: kernelAssignee: Alex Williamson <alex.williamson>
Status: CLOSED ERRATA QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.1CC: tburke
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: kernel-2.6.32-117.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-05-19 12:28:20 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Alex Williamson 2011-02-04 20:24:54 UTC
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:

Comment 1 Alex Williamson 2011-02-04 20:28:22 UTC
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>
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>

Comment 2 RHEL Program Management 2011-02-06 07:50:31 UTC
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.

Comment 3 Aristeu Rozanski 2011-02-18 22:16:37 UTC
Patch(es) available on kernel-2.6.32-117.el6

Comment 6 Mike Gahagan 2011-02-24 20:17:46 UTC
Appears there is no test case for this one. Confirmed the fix is in -118 and setting SanityOnly.

Comment 7 errata-xmlrpc 2011-05-19 12:28:20 UTC
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