Message ID | 20150709151004.GA4827@in.ibm.com |
---|---|
State | New |
Headers | show |
On 09/07/2015 17:10, Bharata B Rao wrote: > On Thu, Jul 09, 2015 at 04:12:09PM +0200, Paolo Bonzini wrote: >> >> >> On 03/07/2015 22:50, Eduardo Habkost wrote: >>> From: Bharata B Rao <bharata@linux.vnet.ibm.com> >>> >>> Store memory address range information of boot memory in address >>> range list of numa_info. >>> >>> This helps to have a common NUMA node lookup by address function that >>> works for both boot-time memory and hotplugged memory. >>> >>> Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com> >>> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> >>> Tested-by: Igor Mammedov <imammedo@redhat.com> >>> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> >>> --- >>> numa.c | 27 +++++++++++++++++++++++++++ >>> 1 file changed, 27 insertions(+) >>> >>> diff --git a/numa.c b/numa.c >>> index 116d1fb..a73f648 100644 >>> --- a/numa.c >>> +++ b/numa.c >>> @@ -56,6 +56,14 @@ void numa_set_mem_node_id(ram_addr_t addr, uint64_t size, uint32_t node) >>> { >>> struct numa_addr_range *range = g_malloc0(sizeof(*range)); >>> >>> + /* >>> + * Memory-less nodes can come here with 0 size in which case, >>> + * there is nothing to do. >>> + */ >>> + if (!size) { >>> + return; >> >> This leaks "range". > > Should I post this fix as an independent thread ? Yes, please. Paolo > > numa: Fix memory leak in numa_set_mem_node_id() > > From: Bharata B Rao <bharata@linux.vnet.ibm.com> > > Fix a memory leak in numa_set_mem_node_id(). > > Signed-off-by: Bharata B Rao <bharata@linux.vnet.com> > --- > numa.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/numa.c b/numa.c > index 3c80059..402804b 100644 > --- a/numa.c > +++ b/numa.c > @@ -54,7 +54,7 @@ NodeInfo numa_info[MAX_NODES]; > > void numa_set_mem_node_id(ram_addr_t addr, uint64_t size, uint32_t node) > { > - struct numa_addr_range *range = g_malloc0(sizeof(*range)); > + struct numa_addr_range *range; > > /* > * Memory-less nodes can come here with 0 size in which case, > @@ -64,6 +64,7 @@ void numa_set_mem_node_id(ram_addr_t addr, uint64_t size, uint32_t node) > return; > } > > + range = g_malloc0(sizeof(*range)); > range->mem_start = addr; > range->mem_end = addr + size - 1; > QLIST_INSERT_HEAD(&numa_info[node].addr, range, entry); >
diff --git a/numa.c b/numa.c index 3c80059..402804b 100644 --- a/numa.c +++ b/numa.c @@ -54,7 +54,7 @@ NodeInfo numa_info[MAX_NODES]; void numa_set_mem_node_id(ram_addr_t addr, uint64_t size, uint32_t node) { - struct numa_addr_range *range = g_malloc0(sizeof(*range)); + struct numa_addr_range *range; /* * Memory-less nodes can come here with 0 size in which case, @@ -64,6 +64,7 @@ void numa_set_mem_node_id(ram_addr_t addr, uint64_t size, uint32_t node) return; } + range = g_malloc0(sizeof(*range)); range->mem_start = addr; range->mem_end = addr + size - 1; QLIST_INSERT_HEAD(&numa_info[node].addr, range, entry);