lkml.org 
[lkml]   [2011]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[090/244] iommu/amd: Dont take domain->lock recursivly
    3.0-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Joerg Roedel <joerg.roedel@amd.com>

    commit e33acde91140f1809952d1c135c36feb66a51887 upstream.

    The domain_flush_devices() function takes the domain->lock.
    But this function is only called from update_domain() which
    itself is already called unter the domain->lock. This causes
    a deadlock situation when the dma-address-space of a domain
    grows larger than 1GB.

    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/x86/kernel/amd_iommu.c | 5 -----
    1 file changed, 5 deletions(-)

    --- a/arch/x86/kernel/amd_iommu.c
    +++ b/arch/x86/kernel/amd_iommu.c
    @@ -773,14 +773,9 @@ static void domain_flush_complete(struct
    static void domain_flush_devices(struct protection_domain *domain)
    {
    struct iommu_dev_data *dev_data;
    - unsigned long flags;
    -
    - spin_lock_irqsave(&domain->lock, flags);

    list_for_each_entry(dev_data, &domain->dev_list, list)
    device_flush_dte(dev_data->dev);
    -
    - spin_unlock_irqrestore(&domain->lock, flags);
    }

    /****************************************************************************



    \
     
     \ /
      Last update: 2011-09-29 01:23    [W:0.020 / U:126.396 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site