|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [libvirt PATCH] libxl: Fix build with recent Xen that introduces new disk backend type
On 7/29/22 17:50, Oleksandr Tyshchenko wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
>
> Xen toolstack has gained basic Virtio support recently which becides
> adding various virtio related stuff introduces new disk backend type
> LIBXL_DISK_BACKEND_STANDALONE [1].
>
> Unfortunately, this caused a regression in libvirt build with Xen support
> enabled, reported by the osstest today [2]:
>
> CC libxl/libvirt_driver_libxl_impl_la-xen_xl.lo
> ../../src/libxl/xen_xl.c: In function 'xenParseXLDisk':
> ../../src/libxl/xen_xl.c:779:17: error: enumeration value
> 'LIBXL_DISK_BACKEND_STANDALONE'
> not handled in switch [-Werror=switch-enum]
> switch (libxldisk->backend) {
> ^~~~~~
> cc1: all warnings being treated as errors
>
> The interesting fact is that switch already has a default branch (which ought
> to cover such new addition), but the error is triggered as -Wswitch-enum
> gives a warning about an omitted enumeration code even if there is a default
> label.
>
> Also there is a similar issue in libxlUpdateDiskDef() which I have reproduced
> after fixing the first one, but it that case the corresponding switch doesn't
> have a default branch.
>
> Fix both issues by inserting required enumeration item to make the compiler
> happy and adding ifdef guard to be able to build against old Xen libraries
> as well (without LIBXL_HAVE_DEVICE_DISK_SPECIFICATION). Also add a default
> branch to switch in libxlUpdateDiskDef().
>
> Please note, that current patch doesn't implement the proper handling of
> LIBXL_DISK_BACKEND_STANDALONE and friends, it is just intended to fix
> the regression immediately to unblock the osstest. Also it worth mentioning
> that current patch won't solve the possible additions in the future.
>
> [1]
> https://lore.kernel.org/xen-devel/20220716163745.28712-1-olekstysh@xxxxxxxxx/
> [2]
> https://lore.kernel.org/xen-devel/E1oHEQO-0008GA-Uo@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/
>
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
> ---
> Cc: Julien Grall <julien@xxxxxxx>
> Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> Cc: Michal Privoznik <mprivozn@xxxxxxxxxx>
>
> Please note, the patch is tested on:
> https://xenbits.xen.org/gitweb/?p=libvirt.git;a=shortlog;h=refs/heads/xen-tested-master
> but should work on the master as well (as the same code is present here).
> ---
> src/libxl/libxl_conf.c | 4 ++++
> src/libxl/xen_xl.c | 3 +++
> 2 files changed, 7 insertions(+)
Now that the libxl patch is merged into the master:
https://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=66dd1c62b2a3c707bd5c55750d10a8223fbd577f
I can merge this.
Reviewed-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
Michal
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |