From: Vincent Hanquez Date: Tue, 7 Jul 2009 21:54:38 +0000 (+0100) Subject: use per device msitranslate if it's set otherwise use the global one. X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=b04c2953ec89df1e1159c2e6d3fd40f31fc48c00;p=xenclient%2Ftoolstack.git use per device msitranslate if it's set otherwise use the global one. --- diff --git a/xenvm/vmact.ml b/xenvm/vmact.ml index 7ac8a9d..7ee8fac 100644 --- a/xenvm/vmact.ml +++ b/xenvm/vmact.ml @@ -152,13 +152,22 @@ let add_devices xc xs domid state restore = (* add pcis *) List.iter (fun (devid, devs) -> let bind = ref false in + let dev_msitranslate = ref None in let devs = List.map (fun dev -> bind := !bind || dev.pci_bind; + maybe (fun x -> dev_msitranslate := Some x) dev.pci_msitranslate; (dev.pci_domain, dev.pci_bus, dev.pci_slot, dev.pci_func) ) devs in if !bind then Device.PCI.bind devs; - Device.PCI.add ~xc ~xs ~hvm:cfg.hvm ~msitranslate:cfg.global_pci_msitranslate devs domid devid + (* if the device has defined a msitranslate value, use it, + otherwise use the global one *) + let msitranslate = + match !dev_msitranslate with + | None -> cfg.global_pci_msitranslate + | Some i -> i + in + Device.PCI.add ~xc ~xs ~hvm:cfg.hvm ~msitranslate devs domid devid ) cfg.pcis; (* add device model *)