- 26 Mar, 2021 4 commits
-
-
Roger Pau Monné authored
The change to deny all accesses to MSRs indexes not explicitly handled prevents leaking unwanted data into guests. Signed-off-by:
Roger Pau Monné <roger.pau@citrix.com> Acked-by:
Jan Beulich <jbeulich@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Andrew Cooper authored
In hindsight, this was a poor move. Some of these MSRs require probing for, cause unhelpful spew into xl dmesg, or cause spew from unit tests explicitly checking behaviour. This restores behaviour close to that of Xen 4.14, meaning in particular that for all of the MSRs getting re-added explicitly a #GP fault will get raised irrespective of the new "msr_relaxed" setting. Signed-off-by:
Andrew Cooper <andrew.cooper3@citrix.com> Signed-off-by:
Jan Beulich <jbeulich@suse.com> Reviewed-by:
Jan Beulich <jbeulich@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org> Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Julien Grall authored
Commit 13dd3728 removed the documentation for XS_RESUME, however this command is still implemented (at least in C Xenstored) and used by libxl when resuming a domain. So re-instate the documentation for the XS_RESUME. Take the opportunity to update it as there is a user of the command. Fixes: 13dd3728 ("docs/designs: re-work the xenstore migration document...") Signed-off-by:
Julien Grall <jgrall@amazon.com> Reviewed-by:
Paul Durrant <paul@xen.org> Reviewed-by:
Juergen Gross <jgross@suse.com> Reviewed-by:
Ian Jackson <iwj@xenproject.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Julien Grall authored
It is not very clear the shared page adddress is not contained in the connection record. Additionally, it is misleading to say the grant will always point to the share paged as a domain is free to revoke the permission. The restore code would need to make sure it doesn't fail/crash if this is happening. The sentence is now replaced with a paragraph explaining why the GFN is not preserved and that the grant is not guarantee to exist during restore. Take the opportunity to replace "code" with "node" when description the permission. Reported-by:
Raphael Ning <raphning@amazon.com> Signed-off-by:
Julien Grall <jgrall@amazon.com> Reviewed-by:
Juergen Gross <jgross@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 25 Mar, 2021 1 commit
-
-
Andrew Cooper authored
Fixes: a04509d3 ("Branching: Update version files etc. for newly unstable") Signed-off-by:
Andrew Cooper <andrew.cooper3@citrix.com> Acked-by:
Jan Beulich <jbeulich@suse.com>
-
- 24 Mar, 2021 2 commits
-
-
Ian Jackson authored
Signed-off-by:
Ian Jackson <iwj@xenproject.org>
-
Ian Jackson authored
Signed-off-by:
Ian Jackson <iwj@xenproject.org>
-
- 23 Mar, 2021 1 commit
-
-
Jan Beulich authored
Otherwise, if we really run on a system with this many IOMMUs, entering/leaving S3 would overrun iommu_state[]. Signed-off-by:
Jan Beulich <jbeulich@suse.com> Reviewed-by:
Kevin Tian <kevin.tian@intel.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 22 Mar, 2021 1 commit
-
-
Julien Grall authored
Support to liveupdate C/OCaml xenstored daemon was added during the 4.15 development cycle. Add two new sections in SUPPORT.MD to explain what is the support state. For now, it is a tech preview. Signed-off-by:
Julien Grall <jgrall@amazon.com> Reviewed-by:
Juergen Gross <jgross@suse.com> Reviewed-by:
Andrew Cooper <andrew.cooper3@citrix.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 18 Mar, 2021 1 commit
-
-
Anthony PERARD authored
In do_domain_soft_reset(), a `libxl__domain_suspend_state' is used without been properly initialised and disposed of. This lead do a abort() in libxl due to the `dsps.qmp' state been used before been initialised: libxl__ev_qmp_send: Assertion `ev->state == qmp_state_disconnected || ev->state == qmp_state_connected' failed. Once initialised, `dsps' also needs to be disposed of as the `qmp' state might still be in the `Connected' state in the callback for libxl__domain_suspend_device_model(). So this patch adds libxl__domain_suspend_dispose() which can be called from the two places where we need to dispose of `dsps'. Reported-by:
Olaf Hering <olaf@aepfle.de> Signed-off-by:
Anthony PERARD <anthony.perard@citrix.com> Reviewed-by:
Ian Jackson <iwj@xenproject.org> Tested-by:
Olaf Hering <olaf@aepfle.de>
-
- 16 Mar, 2021 1 commit
-
-
Julien Grall authored
Compilers older than 4.8 have known codegen issues which can lead to silent miscompilation: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58145 Furthermore, pre-4.9 GCC have known bugs (including things like internal compiler errors on Arm) which would require workaround (I haven't checked if we have any in Xen). The minimum version of GCC to build the hypervisor on arm is now raised to 4.9. In addition to that, on arm64, GCC version >= 4.9 and < 5.1 have been shown to emit memory references beyond the stack pointer, resulting in memory corruption if an interrupt is taken after the stack pointer has been adjusted but before the reference has been executed. Therefore, the minimum for arm64 is raised to 5.1. Signed-off-by:
Julien Grall <jgrall@amazon.com> Reviewed-by:
Bertrand Marquis <bertrand.marquis@arm.com> Reviewed-by:
Stefano Stabellini <sstabellini@kernel.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 15 Mar, 2021 1 commit
-
-
Jan Beulich authored
The first thing the "xen-dir" rule does is delete the entire xen/ subtree. Obviously this includes deleting xen/lib/x86/*autogen.h. As a result there's no original version for $(move-if-changed ...) to compare against, and hence the file and all its consumers would get rebuilt every time. Instead only find and delete all the symlinks. Fixes: eddf9559 ("libx86: generate cpuid-autogen.h in the libx86 include dir") Signed-off-by:
Jan Beulich <jbeulich@suse.com> Reviewed-by:
Ian Jackson <iwj@xenproject.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 12 Mar, 2021 6 commits
-
-
Jan Beulich authored
Linux has been warning ("firmware bug") about this bit being clear for a long time. While writable in older hardware it has been readonly on more than just most recent hardware. For simplicitly report it always set (if anything we may want to log the issue ourselves if it turns out to be clear on older hardware) on CPU families 10h and up (in family 0fh the bit is part of a larger field of different purpose). Signed-off-by:
Jan Beulich <jbeulich@suse.com> Reviewed-by:
Roger Pau Monné <roger.pau@citrix.com> Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Jan Beulich authored
Prior to 4.15 Linux, when running in PV mode, did not install a #GP handler early enough to cover for example the rdmsrl_safe() of MSR_K8_TSEG_ADDR in bsp_init_amd() (not to speak of the unguarded read of MSR_K7_HWCR later in the same function). The respective change (42b3a4cb5609 "x86/xen: Support early interrupts in xen pv guests") was backported to 4.14, but no further - presumably since it wasn't really easy because of other dependencies. Therefore, to prevent our change in the handling of guest MSR accesses to render PV Linux 4.13 and older unusable on at least AMD systems, make the raising of #GP on this paths conditional upon the guest having installed a handler, provided of course the MSR can be read in the first place (we would have raised #GP in that case even before). Producing zero for reads isn't necessarily correct and may trip code trying to detect presence of MSRs early, but since such detection logic won't work without a #GP handler anyway, this ought to be a fair workaround. Signed-off-by:
Jan Beulich <jbeulich@suse.com> Reviewed-by:
Roger Pau Monné <roger.pau@citrix.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org> Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Jan Beulich authored
Sadly I was wrong to suggest dropping vaddrs' initializer during review of v2 of the patch introducing this code. gcc 4.3 can't cope. Fixes: 52531c73 ("xen/gnttab: Rework resource acquisition") Signed-off-by:
Jan Beulich <jbeulich@suse.com> Acked-by:
Andrew Cooper <andrew.cooper3@citrix.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Dario Faggioli authored
When running an hypervisor build with NR_CPUS=1 for_each_cpu does not take into account whether the bit of the CPU is set or not in the provided mask. This means that whatever we have in the bodies of these loops is always done once, even if the mask was empty and it should never be done. This is clearly a bug and was in fact causing an assert to trigger in credit2 code. Removing the special casing of NR_CPUS == 1 makes things work again. Reported-by:
Roger Pau Monné <roger.pau@citrix.com> Signed-off-by:
Dario Faggioli <dfaggioli@suse.com> Reviewed-by:
Jan Beulich <jbeulich@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Igor Druzhinin authored
BIOS might pass control to Xen leaving QI and/or IR in enabled and/or partially configured state. In case of x2APIC code path where EIM is enabled early in boot - those are correctly disabled by Xen before any attempt to configure. But for xAPIC that step is missing which was proven to cause QI initialization failures on some ICX based platforms where QI is left pre-enabled and partially configured by BIOS. That problem becomes hard to avoid since those platforms are shipped with x2APIC opt out being advertised by default at the same time by firmware. Unify the behaviour between x2APIC and xAPIC code paths keeping that in line with what Linux does. Signed-off-by:
Igor Druzhinin <igor.druzhinin@citrix.com> Reviewed-by:
Jan Beulich <jbeulich@suse.com> Reviewed-by:
Kevin Tian <kevin.tian@intel.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Roger Pau Monné authored
Introduce an option to allow selecting a behavior similar to the pre Xen 4.15 one for accesses to MSRs not explicitly handled. Since commit 84e848fd and 322ec7c8 accesses to MSRs not explicitly handled by Xen result in the injection of a #GP to the guest. This is a behavior change since previously a #GP was only injected if accessing the MSR on the real hardware would also trigger a #GP, or if the attempted to be set bits wouldn't match the hardware values (for PV). The reasons for not leaking hardware MSR values and injecting a #GP are fully valid, so the solution proposed here should be considered a temporary workaround until all the required MSRs are properly handled. This seems to be problematic for some guests, so introduce an option to fallback to this kind of legacy behavior without leaking the underlying MSR values to the guest. When the option is set, for both PV and HVM don't inject a #GP to the guest on MSR read if reading the underlying MSR doesn't result in a #GP, do the same for writes and simply discard the value to be written on that case. Note that for guests restored or migrated from previous Xen versions the option is enabled by default, in order to keep a compatible MSR behavior. Such compatibility is done at the libxl layer, to avoid higher-level toolstacks from having to know the details about this flag. Signed-off-by:
Roger Pau Monné <roger.pau@citrix.com> Acked-by:
Christian Lindig <christian.lindig@citrix.com> Reviewed-by:
Ian Jackson <iwj@xenproject.org> Reviewed-by:
Andrew Cooper <andrew.cooper3@citrix.com> Tested-by:
Boris Ostrovsky <boris.ostrovsky@oracle.com> Reviewed-by:
Kevin Tian <kevin.tian@intel.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 11 Mar, 2021 7 commits
-
-
Andrew Cooper authored
c/s 4664034c dropped the $(LIBHEADERSGLOB) dependency for the headers.chk rule, without replacing it. As headers.chk uses $^, a typical build looks like: andrewcoop@andrewcoop:/local/xen.git$ make -C tools/libs/devicemodel/ make: Entering directory '/local/xen.git/tools/libs/devicemodel' for i in ; do \ gcc -x c -ansi -Wall -Werror -I/local/xen.git/tools/libs/devicemodel/../../../tools/include \ -S -o /dev/null $i || exit 1; \ echo $i; \ done >headers.chk.new mv headers.chk.new headers.chk i.e. with an empty for loop. Reinsert a $(LIBHEADERS) dependency, so more than just the $(AUTOINCS) get checked. Fixes: 4664034c ("tools/libs: move official headers to common directory") Signed-off-by:
Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by:
Juergen Gross <jgross@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Andrew Cooper authored
__XEN_TOOLS__ is really there to separate the unstable from stable hypercalls. Exactly as with c/s f40e1c52, stable interfaces shouldn't contain this guard. That change actually broke the build with: include/xendevicemodel.h:52:5: error: unknown type name 'ioservid_t' ioservid_t *id); ^ as libxendevicemodel.h now uses a type it can't see a typedef for. However, nothing noticed because the header.chk logic is also broken (fixed subsequently). Strip the guard from the public header, and remove compensation from devicemodel's private.h. Fix the dmop design doc to discuss both reasons behind the the ABI design. Signed-off-by:
Andrew Cooper <andrew.cooper3@citrix.com> Acked-by:
Jan Beulich <jbeulich@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Andrew Cooper authored
c/s 4664034c replaced a glob over include/*.h with an expectation that LIBHEADER was suitably set for libraries which didn't have a single, consistently named, header file. This wasn't true for xentoolcore, which lost xentoolcore_internal.h as a consequence, and failed an API/ABI check vs 4.14 Fixes: 4664034c ("tools/libs: move official headers to common directory") Signed-off-by:
Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by:
Juergen Gross <jgross@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Roger Pau Monne authored
For things like randconfig there's no need to do a full Xen build, a hypervisor build only will be much faster and will achieve the same level of testing, as randconfig only changes the hypervisor build options. Signed-off-by:
Roger Pau Monné <roger.pau@citrix.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org> Acked-by:
Doug Goldstein <cardoe@cardoe.com>
-
Elliott Mitchell authored
typeof() is available in Xen's build environment, which uses Xen's compiler. As these headers are public, they need strict standards conformance. Only __typeof__() is officially standardized. A compiler in standards conformance mode should report: warning: implicit declaration of function 'typeof' is invalid in C99 [-Wimplicit-function-declaration] (this has been observed with FreeBSD's kernel build environment) Based-on-patch-by: Julien Grall <julien@xen.org>, Sun Oct 4 20:33:04 2015 +0100 Signed-off-by:
Elliott Mitchell <ehem+xen@m5p.com> Acked-by:
Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by:
Stefano Stabellini <sstabellini@kernel.org> Reviewed-by:
Juergen Gross <jgross@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Julien Grall authored
Allow GCC to analyze the format printf for xprintf() and barf{,_perror}(). Take the opportunity to define __noreturn to make the prototype for barf{,_perror})() easier to read. Also document why 'extern' is used for xprintf(). Signed-off-by:
Julien Grall <jgrall@amazon.com> Reviewed-by:
Juergen Gross <jgross@suse.com> Reviewed-by:
Ian Jackson <iwj@xenproject.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Julien Grall authored
At the moment PRINTF_ATTRIBUTE() is defined in two places: - tdb.h: Defined as a NOP - talloc.h: Defined as a NOP for GCC older than 3.0 otherwise will add the attribute to check the printf format Xen requires to build with minimum GCC 4.1 and we want to check the printf format for all the printf-like functions. Only implement PRINTF_ATTRIBUTE() once in utils.h and drop the conditional check for GCC < 3.0. Signed-off-by:
Julien Grall <jgrall@amazon.com> Reviewed-by:
Juergen Gross <jgross@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 10 Mar, 2021 4 commits
-
-
Ian Jackson authored
Signed-off-by:
Ian Jackson <iwj@xenproject.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Ian Jackson authored
And update the release technician checklist to mention to edit it. Signed-off-by:
Ian Jackson <iwj@xenproject.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Ian Jackson authored
Signed-off-by:
Ian Jackson <iwj@xenproject.org> Acked-by:
Jan Beulich <jbeulich@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Roger Pau Monne authored
It's now safe to enable the build of rombios on Alpine systems, as hvmloader already builds fine there. Signed-off-by:
Roger Pau Monné <roger.pau@citrix.com> Acked-by:
Wei Liu <wl@xen.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 09 Mar, 2021 3 commits
-
-
Jan Beulich authored
Just like all other object files - wherever *.o is mentioned, *.opic also needs mentioning to yield consistent behavior. Otherwise make may decide to (re)build the object before recursion into $(ACPI_PATH)/ (to update $(DSDT_FILES-y) and ssdt_*.h) was actually finished. Signed-off-by:
Jan Beulich <jbeulich@suse.com> Acked-by:
Andrew Cooper <andrew.cooper3@citrix.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Andrew Cooper authored
Looks like a copy&paste error. Fixes: f6e1d851 ("automation: add alpine linux x86 build jobs") Signed-off-by:
Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by:
Stefano Stabellini <sstabellini@kernel.org> Reviewed-by:
Roger Pau Monné <roger.pau@citrix.com>
-
Roger Pau Monne authored
clang++ relies on the C++ headers installed by g++, or else a clang build will hit the following error: <built-in>:3:10: fatal error: 'cstring' file not found #include "cstring" ^~~~~~~~~ 1 error generated. make[10]: *** [Makefile:120: headers++.chk] Error 1 Link: https://gitlab.alpinelinux.org/alpine/aports/-/issues/12492Reported-by:
Stefano Stabellini <sstabellini@kernel.org> Signed-off-by:
Roger Pau Monné <roger.pau@citrix.com> Reviewed-by:
Stefano Stabellini <sstabellini@kernel.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 08 Mar, 2021 1 commit
-
-
Jan Beulich authored
We can't make correctness of our own behavior dependent upon a hypervisor underneath us correctly telling us the true physical address with hardware uses. Without knowing this, we can't be certain reserved bit faults can actually be observed. Therefore, besides evaluating the number of address bits when deciding whether to use the optimization, also check whether we're running virtualized ourselves. (Note that since we may get migrated when running virtualized, the number of address bits may also change.) Requested-by:
Andrew Cooper <andrew.cooper3@citrix.com> Signed-off-by:
Jan Beulich <jbeulich@suse.com> Acked-by:
Andrew Cooper <andrew.cooper3@citrix.com> Acked-by:
Tim Deegan <tim@xen.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 06 Mar, 2021 1 commit
-
-
Julien Grall authored
The longest possible command line for LiveUpdate is: liveupdate -s -t <timeout> -F This is 5 parameters. However, the maximum is currently specified to 4. This means the some of the parameters will get ignored. Update the field max_pars to 5 so and admin can specify the timeout and force at the same time. Signed-off-by:
Julien Grall <jgrall@amazon.com> Reviewed-by:
Juergen Gross <jgross@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 05 Mar, 2021 1 commit
-
-
Jan Beulich authored
When none of the physical address bits in PTEs are reserved, we can't create any 4k (leaf) PTEs which would trigger reserved bit faults. Hence the present SHOPT_FAST_FAULT_PATH machinery needs to be suppressed in this case, which is most easily achieved by never creating any magic entries. To compensate a little, eliminate sh_write_p2m_entry_post()'s impact on such hardware. While at it, also avoid using an MMIO magic entry when that would truncate the incoming GFN. Requested-by:
Andrew Cooper <andrew.cooper3@citrix.com> Signed-off-by:
Jan Beulich <jbeulich@suse.com> Acked-by:
Tim Deegan <tim@xen.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
- 04 Mar, 2021 5 commits
-
-
Andrew Cooper authored
This is inappropriate for the header file of a standalone library with stable API and ABI. Signed-off-by:
Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by:
Ian Jackson <iwj@xenproject.org> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Andrew Cooper authored
The const_op boolean needs clobbering to cause data to be written back to the caller. Fixes: c4441ab1 ("dmop: Add XEN_DMOP_nr_vcpus") Signed-off-by:
Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by:
Roger Pau Monné <roger.pau@citrix.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Roger Pau Monné authored
The current build of the firmware relies on having 32bit compatible headers installed in order to build some of the 32bit firmware. Usually this can be solved by using the -ffreestanding compiler option which drops the usage of the system headers in favor of a private set of freestanding headers provided by the compiler itself that are not tied to libc. However such option is broken at least in the gcc compiler provided in Alpine Linux, as the system include path (ie: /usr/include) takes precedence over the gcc private include path: #include <...> search starts here: /usr/include /usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/include And the headers in /usr/include are exclusively 64bit. Since -ffreestanding is currently broken on at least that distro, and for resilience against future compilers also having the option broken provide a set of stand alone 32bit headers required for the firmware build. Signed-off-by:
Roger Pau Monné <roger.pau@citrix.com> Reviewed-by:
Jan Beulich <jbeulich@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Jan Beulich authored
The upcoming release complains, not entirely unreasonably: In file included from rijndael.c:33: .../xen/include/crypto/rijndael.h:55:53: note: previously declared as 'const unsigned char[]' 55 | void rijndaelEncrypt(const unsigned int [], int, const unsigned char [], | ^~~~~~~~~~~~~~~~~~~~~~ rijndael.c:865:8: error: argument 4 of type 'u8[16]' {aka 'unsigned char[16]'} with mismatched bound [-Werror=array-parameter=] 865 | u8 ct[16]) | ~~~^~~~~~ In file included from rijndael.c:33: .../xen/include/crypto/rijndael.h:56:13: note: previously declared as 'unsigned char[]' 56 | unsigned char []); | ^~~~~~~~~~~~~~~~ Simply declare the correct array dimensions right away. This then allows compilers to apply checking at call sites, which seems desirable anyway. For the moment I'm leaving untouched the disagreement between u8/u32 used in the function definition and unsigned {char,int} used in the declaration, as making this consistent would call for touching further functions. Reported-by:
Charles Arnold <carnold@suse.com> Signed-off-by:
Jan Beulich <jbeulich@suse.com> Reviewed-by:
Julien Grall <jgrall@amazon.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-
Julien Grall authored
As XenStored is single-threaded, conn->ta_start_time will always be smaller than now. As we substract the latter from the former, it means a transaction will never be considered long running. Invert the two operands of the substraction in both lu_reject_reason() and lu_check_allowed(). In addition to that, the former also needs to check that conn->ta_start_time is not 0 (i.e the transaction is not active). Take the opportunity to document the return condition of lu_check_allowed(). Fixes: e04e53a5 ("tools/xenstore: allow live update only with no transaction active") Reported-by:
Bjoern Doebel <doebel@amazon.de> Signed-off-by:
Julien Grall <jgrall@amazon.com> Reviewed-by:
Juergen Gross <jgross@suse.com> Release-Acked-by:
Ian Jackson <iwj@xenproject.org>
-