aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* uninstall: do not remove kernels or modules on uninstall.Ian Campbell2012-08-312-4/+18
| | | | | | | | | | | | | | | | | The pattern used is very broad and will delete any kernel with xen in its filename, likewise modules, including those which come packages from the distribution etc. I don't think this was ever the right thing to do but it is doubly wrong now that Xen does not even build or install a kernel by default. Push cleanup of the installed hypervisor down into xen/Makefile so that it can cleanup exactly what it actually installs. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Looks-good: Jan Beulich <JBeulich@suse.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* hotplug/NetBSD: check type of file to attach from paramsRoger Pau Monne2012-08-311-1/+10
| | | | | | | | | | | | xend used to set the xenbus backend entry "type" to either "phy" or "file", but now libxl sets it to "phy" for both file and block device. We have to manually check for the type of the "param" field in order to detect if we are trying to attach a file or a block device. Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> Signed-off-by: Roger Pau Monne <roger.pau@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* hotplug/NetBSD: write error message to hotplug-errorRoger Pau Monne2012-08-311-1/+2
| | | | | | | | | As recommended by Ian Campbell, write the hotplug error to hotplug-error, just as the Linux hotplug script does. Signed-off-by: Roger Pau Monne <roger.pau@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* hotplug/NetBSD: fix xenstore_write usage in errorRoger Pau Monne2012-08-311-1/+1
| | | | | | | | | | xenstore_write doesn't exist, use xenstore-write instead. The error function is currently broken without this change. Signed-off-by: Roger Pau Monne <roger.pau@citrix.com> Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* xenconsoled: clean-up after all dead domainsDavid Vrabel2012-08-311-1/+11
| | | | | | | | | | | | | | | | | | | | | | | xenconsoled expected domains that are being shutdown to end up in the the DYING state and would only clean-up such domains. HVM domains either didn't enter the DYING state or weren't in long enough for xenconsoled to notice. For every shutdown HVM domain, xenconsoled would leak memory, grow its list of domains and (if guest console logging was enabled) leak the log file descriptor. If the file descriptors were leaked and enough HVM domains were shutdown, no more console connections would work as the evtchn device could not be opened. Guests would then block waiting to send console output. Fix this by tagging domains that exist in enum_domains(). Afterwards, all untagged domains are assumed to be dead and are shutdown and cleaned up. Signed-off-by: David Vrabel <david.vrabel@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* README: Update references to PyXML to lxmlIan Campbell2012-08-311-3/+3
| | | | | | Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* docs: improve documentation of Xen command line parametersMatt Wilson2012-08-311-28/+249
| | | | | | | | | | | | | | | | | | | This change improves documentation for several Xen command line parameters. Some of the Itanium-specific options are now removed. A more thorough check should be performed to remove any other remnants. I've reformatted some of the entries to fit in 80 column terminals. Options that are yet undocumented but accept standard boolean / integer values are now annotated as such. The size suffixes have been corrected to use the binary prefixes instead of decimal prefixes. Signed-off-by: Matt Wilson <msw@amazon.com> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* x86/i8259: Clean up _mask_and_ack_8259A_irq().Keir Fraser2012-08-301-39/+24
| | | | Signed-off-by: Keir Fraser <keir@xen.org>
* x86/i8259: Handle bogus spurious interrupts more quietlyAndrew Cooper2012-08-303-21/+25
| | | | | | | | | | | | | | | | | | | | | | c/s 25336:edd7c7ad1ad2 introduced the concept of a bogus vector, for in irqs delivered through the i8259 PIC after IO-APICs had been set up. However, if supurious PIC vectors are received, many "No irq handler for vector" log messages can be seen on the console. This patch adds to the bogus vector logic to detect spurious PIC vectors and simply ignore them. _mask_and_ack_8259A_irq() has been modified to return a boolean indicating whether the irq is real or not, and in the case of a spurious vector, the error in do_IRQ() is not printed. One complication is that now, _mask_and_ack_8259A_irq() can get called whatever the ack mode is, so has been altered to work out whether it should EOI the irq or not. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Committed-by: Keir Fraser <keir@xen.org>
* nvmx: fix unhandled nested XSETBV VMExitDongxiao Xu2012-08-301-0/+1
| | | | | | | | | | If the L2 guest issue a XSETBV instruction, we need to deliver to L1 guest. This could fix the Fedora 17 booting hang issue as a L2 guest. Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> Committed-by: Keir Fraser <keir@xen.org>
* docs: update xenpaging.txtOlaf Hering2012-08-301-23/+20
| | | | | Signed-off-by: Olaf Hering <olaf@aepfle.de> Committed-by: Keir Fraser <keir@xen.org>
* nvmx: fix resource relinquish for nested VMXDongxiao Xu2012-08-305-2/+24
| | | | | | | | | | | | | | | | | | | The previous order of relinquish resource is: relinquish_domain_resources() -> vcpu_destroy() -> nvmx_vcpu_destroy(). However some L1 resources like nv_vvmcx and io_bitmaps are free in nvmx_vcpu_destroy(), therefore the relinquish_domain_resources() will not reduce the refcnt of the domain to 0, therefore the latter vcpu release functions will not be called. To fix this issue, we need to release the nv_vvmcx and io_bitmaps in relinquish_domain_resources(). Besides, after destroy the nested vcpu, we need to switch the vmx->vmcs back to the L1 and let the vcpu_destroy() logic to free the L1 VMCS page. Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> Committed-by: Keir Fraser <keir@xen.org>
* x86: Prefer multiboot-provided e820 over bios-provided e801 memory info.Keir Fraser2012-08-281-11/+11
| | | | | | | | | | | | | Some UEFI systems do not provide e820 information. In this case we should take the detailed memory map provided by a multiboot-capable loader, rather than rely on very conservative values from the e801 bios call. Using the latter on any modern system really hardly makes good sense. [Excellent candidate for 4.1 backport] Signed-off-by: Keir Fraser <keir@xen.org> Tested-by: Jonathan Tripathy <jonnyt@abpni.co.uk>
* tools/xl: Fix uninitialized variable error.Andrew Cooper2012-08-281-4/+4
| | | | | | | | | | | | | | | | | | c/s 25779:4ca40e0559c3 introduced a compilation error for any build system using -Werror=uninitialized, such as the default CentOS 5.7 version of gcc. And with good reason, because if the global libxl default_output_format is neither OUTPUT_FORMAT_SXP nor OUTPUT_FORMAT_JSON, the variable hand will be used before being initialised. The attached patch fixes the warning, and futher fixes the logic to work correctly when a new OUTPUT_FORMAT is added to xl. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* libxl: Rerun bisonIan Jackson2012-08-242-192/+241
| | | | | | | | | | | | | This updates libxlu_cfg_y.[ch] to code generated by bison from Debian squeeze (1:2.4.1.dfsg-3 i386). There should be no functional change since there is no change to the source file, but we will inherit bugfixes and behavioural changes from the new version of bison. So this is more a matter of hope than knowledge. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* libxl: Rerun flexIan Jackson2012-08-242-56/+40
| | | | | | | | | | This undoes some systematic changes which were made to libxlu_cfg_l.[ch] along with manually-edited files (eg, whitespace changes, emacs local variables) and returns these two files to exactly the output of flex (Debian squeeze 2.5.35-10 i386). Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* libxl: provide "make realclean" targetIan Jackson2012-08-241-1/+3
| | | | | | | | This removes all the autogenerated files. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* nested vmx: Don't set bit 55 in IA32_VMX_BASIC_MSRZhang Xiantao2012-08-241-1/+1
| | | | | | | | | All related IA32_VMX_TRUE_*_MSR are not implemented, so set this bit to 0, otherwise system L1VMM may get incorrect default1 class settings. Signed-off-by: Zhang Xiantao <xiantao.zhang@intel.com> Committed-by: Keir Fraser <keir@xen.org>
* nested vmx: VM_ENTRY_IA32E_MODE shouldn't be in default1 classZhang Xiantao2012-08-241-1/+0
| | | | | | | | | | for IA32_VM_ENTRY_CTLS_MSR. If set to 1, L2 guest's paging mode maybe mis-judged and mis-set. Signed-off-by: Zhang Xiantao <xiantao.zhang@intel.com> Committed-by: Keir Fraser <keir@xen.org>
* xl: make "xl list -l" proper JSONIan Campbell2012-08-231-16/+71
| | | | | | | | | | | | | | | Bastian Blank reports that the output of this command is just multiple JSON objects concatenated and is not a single properly formed JSON object. Fix this by wrapping in an array. This turned out to be a bit more intrusive than I was expecting due to the requirement to keep supporting the SXP output mode. Python's json module is happy to parse the result... Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
* libxl: make domain resume API asynchronousIan Campbell2012-08-235-20/+27
| | | | | | | | | | | | | | | | | | Although the current implementation has no asynchromous parts I can envisage it needing to do bits of create/destroy like functionality which may need async support in the future. To do this make the meat into an internal libxl__domain_resume function in order to satisfy the no-internal-callers rule for the async function. Since I needed to touch the logging to s/ctx/CTX/ anyway switch to the LOG* helper macros. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Roger Pau Monne <roger.pau@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* Update Xen version to 4.2.0-rc4-preKeir Fraser2012-08-231-1/+1
|
* Added signature for changeset d44f290e81dfKeir Fraser2012-08-231-0/+1
|
* Added tag 4.2.0-rc3 for changeset d44f290e81dfKeir Fraser2012-08-231-0/+1
|
* Update Xen version to 4.2.0-rc34.2.0-rc3Keir Fraser2012-08-232-2/+2
|
* x86,cmdline: Fix setting skip_realmode boolean on no-real-mode and tboot optionsKeir Fraser2012-08-231-2/+4
| | | | | | ...effect should be cumulative. Signed-off-by: Keir Fraser <keir@xen.org>
* Dump IOMMU p2m tableSantosh Jodh2012-08-226-0/+176
| | | | | | | | | | | | | | | | | New key handler 'o' to dump the IOMMU p2m table for each domain. Skips dumping table for domain 0. Intel and AMD specific iommu_ops handler for dumping p2m table. Incorporated feedback from Jan Beulich and Wei Wang. Fixed indent printing with %*s. Removed superflous superpage and other attribute prints. Make next_level use consistent for AMD IOMMU dumps. Warn if found inconsistent. AMD IOMMU does not skip levels. Handle 2mb and 1gb IOMMU page size for AMD. Signed-off-by: Santosh Jodh <santosh.jodh@citrix.com> Committed-by: Keir Fraser <keir@xen.org>
* Fix shared entry status for grant copy operation on paged-out gfnAndres Lagar-Cavilla2012-08-221-11/+22
| | | | | | | | | | | | The unwind path was not clearing the shared entry status bits. This was BSOD-ing guests on network activity under certain configurations. Also: * sed the fixup method name to signal it's related to grant copy. * use atomic clear flag ops during fixup. Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org> Committed-by: Keir Fraser <keir@xen.org>
* hvm: Remove VM genearation ID device and incr_generationid from build_info.Paul Durrant2012-08-225-41/+1
| | | | | | | | | | | | | | | | Microsoft have now published their VM generation ID specification at https://www.microsoft.com/en-us/download/details.aspx?id=30707. It differs from the original specification upon which I based my implementation in several key areas. Particularly, it is no longer an incrementing 64-bit counter and so this patch is to remove the incr_generationid field from the build_info and also disable the ACPI device before 4.2 is released. I will follow up with further patches to implement the VM generation ID to the new specification. Signed-off-by: Paul Durrant <paul.durrant@citrix.com> Committed-by: Keir Fraser <keir@xen.org>
* libxc: Support save/restore of up to 4096 VCPUs (increase from 64 VCPUs).Keir Fraser2012-08-223-20/+24
| | | | Signed-off-by: Keir Fraser <keir@xen.org>
* flask/policy: add accesses used by newer dom0sDaniel De Graaf2012-08-222-3/+3
| | | | | Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Committed-by: Keir Fraser <keir@xen.org>
* xsm/flask: remove page-to-domain lookups from XSM hooksDaniel De Graaf2012-08-225-165/+80
| | | | | | | | | | | | | | | | | Doing a reverse lookup from MFN to its owning domain is redundant with the internal checks Xen does on pages. Change the checks to operate directly on the domain owning the pages for normal memory; MMIO areas are still checked with security_iomem_sid. This fixes a hypervisor crash when a domU attempts to map an MFN that is free in Xen's heap: the XSM hook is called before the validity check, and page_get_owner returns garbage when called on these pages. While explicitly checking for such pages using page_get_owner_and_reference is a possible solution, this ends up duplicating parts of get_page_from_l1e. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Committed-by: Keir Fraser <keir@xen.org>
* xsm: Add missing dummy hooksDaniel De Graaf2012-08-222-0/+36
| | | | | | | | | | A few XSM hooks have been defined without implementation in dummy.c; these will cause a null function pointer deference if called. Also implement the efi_call hook, which was incorrectly added without any implementations. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Committed-by: Keir Fraser <keir@xen.org>
* x86-64: refine the XSA-9 fixJan Beulich2012-08-203-2/+31
| | | | | | | | | | | | | | Our product management wasn't happy with the "solution" for XSA-9, and demanded that customer systems must continue to boot. Rather than having our and perhaps other distros carry non-trivial patches, allow for more fine grained control (panic on boot, deny guest creation, or merely warn) by means of a single line change. Also, as this was found to be a problem with remotely managed systems, don't default to boot denial (just deny guest creation). Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
* x86: don't expose SYSENTER on unknown CPUsJan Beulich2012-08-201-0/+1
| | | | | | | | | | So far we only ever set up the respective MSRs on Intel CPUs, yet we hide the feature only on a 32-bit hypervisor. That prevents booting of PV guests on top of a 64-bit hypervisor making use of the instruction on unknown CPUs (VIA in this case). Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
* docs: console: correct example console type definitionIan Campbell2012-08-171-1/+1
| | | | | | | | I think this is intended to be under the specific console's directory. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* tools/python: Clean python correctlyAndrew Cooper2012-08-173-20/+18
| | | | | | | | | | Cleaning the python directory should completely remove the build/ directory, otherwise subsequent builds may be short-circuited and a stale build installed. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* libxc/Linux: Add VM_DONTCOPY flag of the VMA of the hypercall bufferWangzhenguo2012-08-172-13/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids the hypercall buffer becoming CoW on fork. In multi-threads and multi-processes environment, e.g. the process has two threads, thread A may call hypercall, thread B may call fork() to create child process. After forking, all pages of the process including hypercall buffers are cow. It will cause a write protection and return EFAULT error if hypervisor calls copy_to_user in hypercall in thread A context, Fix: 1. Before hypercall: use MADV_DONTFORK of madvise syscall to make the hypercall buffer not to be copied to child process after fork. 2. After hypercall: undo the effect of MADV_DONTFORK for the hypercall buffer by using MADV_DOFORK of madvise syscall. 3. Use mmap/nunmap for memory alloc/free instead of malloc/free to bypass libc. Note: Child processes must not use the opened xc_{interface,evtchn,gnttab,gntshr} handle that inherits from parents. They should reopen the handle if they want to interact with xc. Otherwise, it may cause segment fault to access hypercall buffer caches of the handle. Signed-off-by: Zhenguo Wang <wangzhenguo@huawei.com> Signed-off-by: Xiaowei Yang <xiaowei.yang@huawei.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> [ ijc -- s/ptr/p/ to fix build & tweaked the wording of the comments slightly. ] Committed-by: Ian Campbell <ian.campbell@citrix.com>
* xend: Replace the use of XMLPrettyPrint from PyXML with stdlib functionality.M A Young2012-08-171-2/+1
| | | | | | | | | | | | This appears to have been missed by changeset 22235:b8cc53d22545 "Replace pyxml/xmlproc-based XML validator with lxml based one" This was reported by Toshio Ernie Kuratomi at https://bugzilla.redhat.com/show_bug.cgi?id=842843 Signed-off-by: Michael Young <m.a.young@durham.ac.uk> Acked-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
* fix typos in xen/arch/x86/hvm/vmx/vmcs.cYongjie Ren2012-08-171-2/+2
| | | | | Signed-off-by: Yongjie Ren <yongjie.ren@intel.com> Committed-by: Jan Beulich <jbeulich@suse.com>
* x86/ucode: don't crash during AP bringup on non-Intel, non-AMD CPUsJan Beulich2012-08-171-0/+3
| | | | | Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
* EPT/PoD: fix interaction with 1Gb pagesJan Beulich2012-08-161-3/+2
| | | | | | | | | | When PoD got enabled to support 1Gb pages, ept_get_entry() didn't get updated to match - the assertion in there triggered, indicating that the call to p2m_pod_demand_populate() needed adjustment. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Tim Deegan <tim@xen.org> Committed-by: Tim Deegan <tim@xen.org>
* x86/mm: update max_mapped_pfn on MMIO mappings too.Tim Deegan2012-08-162-2/+2
| | | | | | | | | | | max_mapped_pfn should reflect the highest mapping we've ever seen of any type, or the tests in the lookup functions will be wrong. As it happens, the highest mapping has always been a RAM one, but this is no longer the case when we allow 64-bit BARs. Reported-by: Xudong Hao <xudong.hao@intel.com> Signed-off-by: Tim Deegan <tim@xen.org> Committed-by: Tim Deegan <tim@xen.org>
* x86/PoD: clean up typesJan Beulich2012-08-163-17/+16
| | | | | | | | | | | | | | | | | | | GMFN values must undoubtedly be "unsigned long". "count" and "entry_count", since they are signed types, should also be "long" as otherwise they can't fit all values that can fit into "d->tot_pages" (which currently is "uint32_t"). Beyond that, the patch doesn't convert everything to "long" as in many places it is clear that "int" suffices. In places where "long" is being used partially already, the change is however being done. Furthermore, page order values have no use of being "long". Finally, in the course of updating a few printk messages anyway, some also get slightly shortened (to focus on the relevant information). Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
* x86/PoD: prevent guest from being destroyed upon early access to its memoryJan Beulich2012-08-162-19/+25
| | | | | | | | | | | | | | | | | | | | When an external agent (e.g. a monitoring daemon) happens to access the memory of a PoD guest prior to setting the PoD target, that access must fail for there not being any page in the PoD cache, and only the space above the low 2Mb gets scanned for victim pages (while only the low 2Mb got real pages populated so far). To accomodate for this - set the PoD target first - do all physmap population in PoD mode (i.e. not just large [2Mb or 1Gb] pages) - slightly lift the restrictions enforced by p2m_pod_set_mem_target() to accomodate for the changed tools behavior Tested-by: Jürgen Groß <juergen.gross@ts.fujitsu.com> (in a 4.0.x based incarnation) Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
* etherboot: Build fixes for gcc 4.7.Keir Fraser2012-08-154-0/+92
| | | | Signed-off-by: Keir Fraser <keir@xen.org>
* acpi: Make sure valid CPU is passed to do_pm_op()Boris Ostrovsky2012-08-151-19/+2
| | | | | | | | | | | | | | | Passing invalid CPU value to do_pm_op() will cause assertion in cpu_online(). Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com> Such checks would, at a first glance, then also be missing at the top of various helper functions, but these check really were already redundant with the check in do_pm_op(). Remove the redundant checks for clarity and brevity. Signed-off-by: Jan Beulich <jbeulich@suse.com> Committed-by: Jan Beulich <jbeulich@suse.com>
* x86-64/EFI: add CFLAGS to check compileDaniel De Graaf2012-08-151-1/+1
| | | | | | | | | | | | | | | | | Without this, the compilation of check.c could fail due to compiler features such as -fstack-protector being enabled, which causes a missing __stack_chk_fail symbol error. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Rather than using plain CFLAGS here, remove CFLAGS-y from them to particularly get rid of the -MF argument referencing (the undefined here) $(@F). The use of CFLAGS at once allows dropping the explicit use of -Werror. Signed-off-by: Jan Beulich <jbeulich@suse.com> Committed-by: Jan Beulich <jbeulich@suse.com>
* QEMU_TAG updateIan Jackson2012-08-141-3/+3
|
* x86/PoD: fix (un)locking after 24772:28edc2b31a9bJan Beulich2012-08-141-0/+1
| | | | | | | | | That c/s introduced a double unlock on the out-of-memory error path of p2m_pod_demand_populate(). Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: George Dunlap <george.dunlap@eu.citrix.com> Acked-by: Andres Lagar-Cavilla <andres@lagarcavilla.org>