On 31.08.2018 12:43, Dr. David Alan Gilbert wrote: > * David Hildenbrand (da...@redhat.com) wrote: >> >>>> static gint memory_device_addr_sort(gconstpointer a, gconstpointer b) >>>> { >>>> const MemoryDeviceState *md_a = MEMORY_DEVICE(a); >>>> @@ -168,6 +184,7 @@ static uint64_t >>>> memory_device_get_free_addr(MachineState *ms, >>>> for (item = list; item; item = g_slist_next(item)) { >>>> MemoryDeviceState *md = item->data; >>>> const MemoryDeviceClass *mdc = >>>> MEMORY_DEVICE_GET_CLASS(OBJECT(md)); >>>> + const char *id = memory_device_id(md); >>>> uint64_t md_size, md_addr; >>>> >>>> md_addr = mdc->get_addr(md); >>>> @@ -178,8 +195,8 @@ static uint64_t >>>> memory_device_get_free_addr(MachineState *ms, >>>> >>>> if (ranges_overlap(md_addr, md_size, new_addr, size)) { >>>> if (hint) { >>>> - const DeviceState *d = DEVICE(md); >>>> - error_setg(errp, "address range conflicts with '%s'", >>>> d->id); >>>> + error_setg(errp, "address range conflicts with '%s'", >>>> + id ? id : 0); >>> >>> What's that 'id ? id : 0' trick for? >> >> 0 -> "", then it actually makes sense :) >> >> I'll fix this up, thanks! > > Except that: > > address range conflicts with '' > isn't very helpful. > Why would you get a NULL id ?
This is easy: don't specify an id for a memory device: Unfortunately, if the user does not give ids to devices, there is no way of telling him what we are talking about. qemu-system-x86_64 -machine pc -m 4G,maxmem=20G,slots=4 \ -object memory-backend-ram,id=mem0,size=4G \ -object memory-backend-ram,id=mem1,size=4G \ -device pc-dimm,memdev=mem0,addr=0x140000000 \ -device pc-dimm,memdev=mem1,addr=0x140000000 qemu-system-x86_64: -device pc-dimm,memdev=mem1,addr=0x140000000: address range conflicts with '(null)' (I thought providing NULL would lead to a crash, but it is actually handled properly) So while not being able to indicate an id is not nice, I can simply forward the id directly here. Thanks! > > Dave > >> >> -- >> >> Thanks, >> >> David / dhildenb > -- > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK > -- Thanks, David / dhildenb