hw/xen: Use xs_node_read() from xen_netdev_get_name()

Now that xs_node_read() can construct a node path, no need to open-code it.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
David Woodhouse 2025-01-10 09:12:36 +00:00
parent b34729aca2
commit e4e113ecc2

View file

@ -510,23 +510,22 @@ static char *xen_netdev_get_name(XenDevice *xendev, Error **errp)
if (netdev->dev == -1) {
XenBus *xenbus = XEN_BUS(qdev_get_parent_bus(DEVICE(xendev)));
char fe_path[XENSTORE_ABS_PATH_MAX + 1];
int idx = (xen_mode == XEN_EMULATE) ? 0 : 1;
Error *local_err = NULL;
char *value;
/* Theoretically we could go up to INT_MAX here but that's overkill */
while (idx < 100) {
snprintf(fe_path, sizeof(fe_path),
"/local/domain/%u/device/vif/%u",
xendev->frontend_id, idx);
value = qemu_xen_xs_read(xenbus->xsh, XBT_NULL, fe_path, NULL);
value = xs_node_read(xenbus->xsh, XBT_NULL, NULL, &local_err,
"/local/domain/%u/device/vif/%u",
xendev->frontend_id, idx);
if (!value) {
if (errno == ENOENT) {
netdev->dev = idx;
error_free(local_err);
goto found;
}
error_setg(errp, "cannot read %s: %s", fe_path,
strerror(errno));
error_propagate(errp, local_err);
return NULL;
}
free(value);