| From 2fe9723df8e45fd247782adea244a5e653c30bf4 Mon Sep 17 00:00:00 2001 |
| From: Alex Williamson <alex.williamson@redhat.com> |
| Date: Fri, 4 Mar 2011 14:52:30 -0700 |
| Subject: intel-iommu: Fix get_domain_for_dev() error path |
| |
| From: Alex Williamson <alex.williamson@redhat.com> |
| |
| commit 2fe9723df8e45fd247782adea244a5e653c30bf4 upstream. |
| |
| If we run out of domain_ids and fail iommu_attach_domain(), we |
| fall into domain_exit() without having setup enough of the |
| domain structure for this to do anything useful. In fact, it |
| typically runs off into the weeds walking the bogus domain->devices |
| list. Just free the domain. |
| |
| Signed-off-by: Alex Williamson <alex.williamson@redhat.com> |
| Acked-by: Donald Dutile <ddutile@redhat.com> |
| Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/pci/intel-iommu.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/pci/intel-iommu.c |
| +++ b/drivers/pci/intel-iommu.c |
| @@ -1858,7 +1858,7 @@ static struct dmar_domain *get_domain_fo |
| |
| ret = iommu_attach_domain(domain, iommu); |
| if (ret) { |
| - domain_exit(domain); |
| + free_domain_mem(domain); |
| goto error; |
| } |
| |