Hi, > +static bool is_same_fw_dev_path(DeviceState *src, DeviceState *dst) > +{ > + bool ret = false; > + char *devpath_src = qdev_get_fw_dev_path(src); > + char *devpath_dst = qdev_get_fw_dev_path(dst); > + > + if (!strcmp(devpath_src, devpath_dst)) { > + ret = true; > + } > + > + g_free(devpath_src); > + g_free(devpath_dst); > + return ret; > +} > + > +void del_boot_device_path(DeviceState *dev) > +{ > + FWBootEntry *i; > + > + assert(dev != NULL); > + > + /* remove all entries of the assigned device */ > + QTAILQ_FOREACH(i, &fw_boot_order, link) { > + if (i->dev == NULL) { > + continue; > + } > + if ((i->dev == dev || is_same_fw_dev_path(i->dev, dev))) {
Why this is needed? Is there any case where i-->dev != dev but is_same_fw_dev_path() returns true? cheers, Gerd