|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] add NULL checks in code added by 24492:6c104b46ef89
# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxx>
# Date 1326964092 -3600
# Node ID 9a967990b4d2ce4a740662c2ad6b1e5d2adec984
# Parent 15ab61865ecbd146f6ce65fbea5bf49bfd9c6cb1
add NULL checks in code added by 24492:6c104b46ef89
Also a couple of missing is_hvm_domain() checks.
Further properly pass the PCI segment in a call to pci_get_pdev().
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
diff -r 15ab61865ecb -r 9a967990b4d2 xen/drivers/passthrough/amd/iommu_guest.c
--- a/xen/drivers/passthrough/amd/iommu_guest.c Tue Jan 17 12:40:52 2012 +0000
+++ b/xen/drivers/passthrough/amd/iommu_guest.c Thu Jan 19 10:08:12 2012 +0100
@@ -182,7 +182,13 @@
ppr_entry_t *log, *log_base;
struct guest_iommu *iommu;
+ if ( !is_hvm_domain(d) )
+ return;
+
iommu = domain_iommu(d);
+ if ( !iommu )
+ return;
+
tail = iommu_get_rb_pointer(iommu->ppr_log.reg_tail.lo);
head = iommu_get_rb_pointer(iommu->ppr_log.reg_head.lo);
@@ -225,7 +231,13 @@
event_entry_t *log, *log_base;
struct guest_iommu *iommu;
+ if ( !is_hvm_domain(d) )
+ return;
+
iommu = domain_iommu(d);
+ if ( !iommu )
+ return;
+
tail = iommu_get_rb_pointer(iommu->event_log.reg_tail.lo);
head = iommu_get_rb_pointer(iommu->event_log.reg_head.lo);
@@ -793,6 +805,9 @@
p2m_type_t t;
struct guest_iommu *iommu = domain_iommu(d);
+ if ( !iommu )
+ return -EACCES;
+
iommu->mmio_base = base;
base >>= PAGE_SHIFT;
@@ -882,6 +897,8 @@
return;
iommu = domain_iommu(d);
+ if ( !iommu )
+ return;
tasklet_kill(&iommu->cmd_buffer_tasklet);
xfree(iommu);
@@ -893,7 +910,7 @@
{
struct guest_iommu *iommu = vcpu_iommu(v);
- return addr >= iommu->mmio_base &&
+ return iommu && addr >= iommu->mmio_base &&
addr < iommu->mmio_base + IOMMU_MMIO_SIZE;
}
diff -r 15ab61865ecb -r 9a967990b4d2 xen/drivers/passthrough/amd/iommu_init.c
--- a/xen/drivers/passthrough/amd/iommu_init.c Tue Jan 17 12:40:52 2012 +0000
+++ b/xen/drivers/passthrough/amd/iommu_init.c Thu Jan 19 10:08:12 2012 +0100
@@ -651,7 +651,7 @@
local_irq_enable();
spin_lock(&pcidevs_lock);
- pdev = pci_get_pdev(0, bus, devfn);
+ pdev = pci_get_pdev(iommu->seg, bus, devfn);
spin_unlock(&pcidevs_lock);
local_irq_disable();
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |