[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] vtd: avoid redundant context mapping

After changeset 18934 (VT-d: Fix PCI-X device assignment), my assigned PCI 
E1000 NIC doesn't work in guest.
The NIC is 03:00.0. Its parent bridge is: 00:1e.0.
In domain_context_mapping():
   case DEV_TYPE_PCI:
   After we domain_context_mapping_one() 03:00.0 and 00:1e.0, the 'secbus' is 3 
and 'bus' is 0,  so we domain_context_mapping_one() 03:00.0 again -- this 
redundant invocation returns -EINVAL because we have created the mapping but 
haven't changed pdev->domain from Dom0 to a new domain at this time and 
eventually the XEN_DOMCTL_assign_device hypercall returns a failure. 
The attached patch detects this case and avoids the redundant invocation.

Signed-off-by: Dexuan Cui <dexuan.cui@xxxxxxxxx>

Attachment: avoid_redundant_mapping.patch
Description: avoid_redundant_mapping.patch

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.