On 09/07/2015 04:21 PM, Cornelia Huck wrote:
> On Mon, 7 Sep 2015 15:39:59 +0800
> Jason Wang <jasow...@redhat.com> wrote:
>
>> > On 09/02/2015 07:06 PM, Cornelia Huck wrote:
>>> > > On Wed,  2 Sep 2015 11:25:21 +0800
>>> > > Jason Wang <jasow...@redhat.com> wrote:
>>>> > >> +static int get_extra_state(QEMUFile *f, void *pv, size_t size)
>>>> > >> +{
>>>> > >> +    VirtIODevice *vdev = pv;
>>>> > >> +    BusState *qbus = qdev_get_parent_bus(DEVICE(vdev));
>>>> > >> +    VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
>>>> > >> +    int ret = 0;
>>>> > >> +
>>>> > >> +    ret = k->load_extra_state(qbus->parent, f);
>>> > > Should we check for ->load_extra_state() and return failure if it does
>>> > > not exist?
>> > 
>> > I think checking the existence of has_extra_state() in
>> > virtio_extra_state_needed() is enough for this? Or is there anything I 
>> > miss?
> The has_extra_state() callback is called by the sender, not by the
> receiver.
>
> If the other side sent the extra state but we can't handle it, I think
> it would be better to fail the migration than to crash. Still broken
> code, but probably easier to debug :)
>

I see so it only happen when transport provides save_extra_state() but
not get_extra_sate(). I'm ok to add the check in next version .

Thanks

Reply via email to