diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 1ce459f09a7d4a3e18fab33843e7d8ef6872ee67..658a50e3be0248c57faea865dd2e2fe2b8279c4c 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -1433,7 +1433,7 @@ qemuSetUnprivSGIO(virDomainDeviceDefPtr dev) virDomainHostdevDefPtr hostdev = NULL; char *sysfs_path = NULL; const char *path = NULL; - bool val; + int val = -1; int ret = -1; /* "sgio" is only valid for block disk; cdrom @@ -1475,12 +1475,8 @@ qemuSetUnprivSGIO(virDomainDeviceDefPtr dev) * whitelist is enabled. But if requesting unfiltered access, always call * virSetDeviceUnprivSGIO, to report an error for unsupported unpriv_sgio. */ - if (!val || !virFileExists(sysfs_path)) { - ret = 0; - goto cleanup; - } - - if (virSetDeviceUnprivSGIO(path, NULL, 1) < 0) + if ((virFileExists(sysfs_path) || val == 1) && + virSetDeviceUnprivSGIO(path, NULL, val) < 0) goto cleanup; ret = 0;