X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fgeneric.c;h=8d329f524274a0bfcc6a34695e01aa49866d0ded;hp=11cad40d274647f3b716e24da5a6e1a4fd2c1bcb;hb=91259ca3e99284e623966a15cbef321e5cb1ffe0;hpb=06535b05abbca1ada6c3fd3c32db475b97539070 diff --git a/palacios/src/devices/generic.c b/palacios/src/devices/generic.c index 11cad40..8d329f5 100644 --- a/palacios/src/devices/generic.c +++ b/palacios/src/devices/generic.c @@ -326,20 +326,26 @@ struct vm_device *create_generic(generic_port_range_type port_ranges[], num_port_ranges=0; if (port_ranges!=NULL) { i=0; - while (port_ranges[i]!=NULL && port_ranges[i][0]!=0 && port_ranges[i][1]!=0 && port_ranges[i][2]!=0) { num_port_ranges++; i++; } + while (port_ranges[i]!=NULL && + !(port_ranges[i][0]==0 && port_ranges[i][1]==0 && port_ranges[i][2]==0)) + { num_port_ranges++; i++; } } num_address_ranges=0; if (address_ranges!=NULL) { i=0; - while (address_ranges[i]!=NULL && address_ranges[i][0]!=0 && address_ranges[i][1]!=0 && address_ranges[i][2]!=0) { num_address_ranges++; i++; } + while (address_ranges[i]!=NULL && + !(address_ranges[i][0]==0 && address_ranges[i][1]==0 && address_ranges[i][2]==0)) + { num_address_ranges++; i++; } } num_irq_ranges=0; if (irq_ranges!=NULL) { i=0; - while (irq_ranges[i]!=NULL && irq_ranges[i][0]!=0 && irq_ranges[i][1]!=0 && irq_ranges[i][2]!=0) { num_irq_ranges++; i++; } + while (irq_ranges[i]!=NULL && + !(irq_ranges[i][0]==0 && irq_ranges[i][1]==0 && irq_ranges[i][2]==0) ) + { num_irq_ranges++; i++; } }