On Wed, 6 Feb 2019 23:55:15 +0000 Wei Yang <richard.weiy...@gmail.com> wrote:
> On Wed, Feb 06, 2019 at 12:59:49PM +0100, Igor Mammedov wrote: > >On Fri, 1 Feb 2019 09:08:37 +0800 > >Wei Yang <richardw.y...@linux.intel.com> wrote: > > > >> [get|set]_addr are two counterpart to access PCDIMMDevice.addr. > >> > >> Since we have already set up a property PC_DIMM_ADDR_PROP for this > >> field and use this mechanism in set_addr, it would be more proper to use > >> the same mechanism in set_addr. > >> > >> This patch uses object_property_get_uint() to replace the direct memory > >> access to make [get|set]_addr with the same mechanism. > >> > >> Signed-off-by: Wei Yang <richardw.y...@linux.intel.com> > >> --- > >> hw/mem/pc-dimm.c | 4 +--- > >> 1 file changed, 1 insertion(+), 3 deletions(-) > >> > >> diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c > >> index 0c9b9e8292..c0658b9b88 100644 > >> --- a/hw/mem/pc-dimm.c > >> +++ b/hw/mem/pc-dimm.c > >> @@ -204,9 +204,7 @@ static MemoryRegion > >> *pc_dimm_get_memory_region(PCDIMMDevice *dimm, Error **errp) > >> > >> static uint64_t pc_dimm_md_get_addr(const MemoryDeviceState *md) > >> { > >> - const PCDIMMDevice *dimm = PC_DIMM(md); > >> - > >> - return dimm->addr; > >> + return object_property_get_uint(OBJECT(md), PC_DIMM_ADDR_PROP, NULL); > >it's not good to ignore errors > > > >s/NULL/error_abort/ > > > >so we would notice if error ever happened. > > You mean something like this? > > Error *err; > uint64_t addr; > > addr = object_property_get_uint(OBJECT(md), PC_DIMM_ADDR_PROP, &err); see how error_abort is used in QEMU, point is if there is a error that should never happen it is programming error so QEMU should crash and we should fix it. > > if (err) { > warn_report_err(&err); > return 0; > } > > return addr; > > > > >> } > >> > >> static void pc_dimm_md_set_addr(MemoryDeviceState *md, uint64_t addr, > > >