diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2010-06-14 17:17:32 +0200 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2010-06-15 10:50:46 +0100 |
commit | 00dfff77e7184140dc45724c7232e99302f6bf97 (patch) | |
tree | 16f6096b5ab13a42c7119e3d5f9c0b21817eacaf /drivers/lguest | |
parent | 25cbff1660d3f4c059a178a1e5b851be6d70c5e8 (diff) | |
download | blackbird-op-linux-00dfff77e7184140dc45724c7232e99302f6bf97.tar.gz blackbird-op-linux-00dfff77e7184140dc45724c7232e99302f6bf97.zip |
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>
Diffstat (limited to 'drivers/lguest')
0 files changed, 0 insertions, 0 deletions