ide: add calling add_boot_device_patch in bootindex setter function
On this way, we can assure the new bootindex take effect during vm rebooting. Meanwhile set the initial value of bootindex to -1. Because ide devcies's unit property maybe do not initialize when set_bootindex function is called, so that we don't know its suffix. So we have to save the call add_boot_device_path() on ide realize/init function. When we want to change bootindex during vm rebooting, we can call it in setter function. Signed-off-by: Gonglei <arei.gonglei@huawei.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
33739c7129
commit
d2b186f96d
|
@ -219,6 +219,10 @@ static void ide_dev_set_bootindex(Object *obj, Visitor *v, void *opaque,
|
||||||
/* change bootindex to a new one */
|
/* change bootindex to a new one */
|
||||||
d->conf.bootindex = boot_index;
|
d->conf.bootindex = boot_index;
|
||||||
|
|
||||||
|
if (d->unit != -1) {
|
||||||
|
add_boot_device_path(d->conf.bootindex, &d->qdev,
|
||||||
|
d->unit ? "/disk@1" : "/disk@0");
|
||||||
|
}
|
||||||
out:
|
out:
|
||||||
if (local_err) {
|
if (local_err) {
|
||||||
error_propagate(errp, local_err);
|
error_propagate(errp, local_err);
|
||||||
|
@ -230,6 +234,7 @@ static void ide_dev_instance_init(Object *obj)
|
||||||
object_property_add(obj, "bootindex", "int32",
|
object_property_add(obj, "bootindex", "int32",
|
||||||
ide_dev_get_bootindex,
|
ide_dev_get_bootindex,
|
||||||
ide_dev_set_bootindex, NULL, NULL, NULL);
|
ide_dev_set_bootindex, NULL, NULL, NULL);
|
||||||
|
object_property_set_int(obj, -1, "bootindex", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ide_hd_initfn(IDEDevice *dev)
|
static int ide_hd_initfn(IDEDevice *dev)
|
||||||
|
|
Loading…
Reference in a new issue