"Dr. David Alan Gilbert" <dgilb...@redhat.com> wrote:
> * Juan Quintela (quint...@redhat.com) wrote:
>> We just send the address through the alternate channels and test that it
>> is ok.
>> 
>> Signed-off-by: Juan Quintela <quint...@redhat.com>
>> ---
>>  migration/ram.c | 36 ++++++++++++++++++++++++++++++++++++
>>  1 file changed, 36 insertions(+)
>> 
>> diff --git a/migration/ram.c b/migration/ram.c
>> index 4e530ea..95af694 100644
>> --- a/migration/ram.c
>> +++ b/migration/ram.c
>> @@ -432,8 +432,22 @@ static void *multifd_send_thread(void *opaque)
>>      qemu_mutex_lock(&params->mutex);
>>      while (!params->quit){
>>          if (params->pages.num) {
>> +            int i;
>> +            int num;
>> +
>> +            num = params->pages.num;
>>              params->pages.num = 0;
>>              qemu_mutex_unlock(&params->mutex);
>> +
>> +            for(i=0; i < num; i++) {
>> +                if (qio_channel_write(params->c,
>> +                                      (const char 
>> *)&params->pages.address[i],
>> +                                      sizeof(uint8_t *), &error_abort)
>> +                    != sizeof(uint8_t*)) {
>> +                    /* Shuoudn't ever happen */
>> +                    exit(-1);
>> +                }
>
> Nope, need to find a way to cleanly find the migration; that
> might actually be tricky from one of these threads?

It is tricky, but the error handling is wrong in the callers of this
already.  Will try to improve it on next series, but the problem is
already there.

Reply via email to