From f2fe8a3504ec7340c789dad53cb11bfca212048b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Tue, 20 Dec 2022 23:52:05 +0100 Subject: [PATCH] libxl: add validation if sound device is supported MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Xen supports only subset of libvirt's sound devices, and starting with Xen 4.17 it is enforced by libxl. Verify it early. Signed-off-by: Marek Marczykowski-Górecki Signed-off-by: Michal Privoznik Reviewed-by: Michal Privoznik --- src/libxl/libxl_domain.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index 2d53250895..66a82ca317 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -312,6 +312,28 @@ libxlDomainDefValidate(const virDomainDef *def, return -1; } + if (def->nsounds > 0) { + virDomainSoundDef *snd = def->sounds[0]; + + switch (snd->model) { + case VIR_DOMAIN_SOUND_MODEL_ICH6: + case VIR_DOMAIN_SOUND_MODEL_ES1370: + case VIR_DOMAIN_SOUND_MODEL_AC97: + case VIR_DOMAIN_SOUND_MODEL_SB16: + break; + default: + case VIR_DOMAIN_SOUND_MODEL_PCSPK: + case VIR_DOMAIN_SOUND_MODEL_ICH7: + case VIR_DOMAIN_SOUND_MODEL_USB: + case VIR_DOMAIN_SOUND_MODEL_ICH9: + case VIR_DOMAIN_SOUND_MODEL_LAST: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unsupported audio model %s"), + virDomainSoundModelTypeToString(snd->model)); + return -1; + } + } + return 0; }