[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 5/6] microcode: delete microcode pointer and size from microcode_info
On Wed, Nov 28, 2018 at 01:34:15PM +0800, Chao Gao wrote: > Microcode pointer and size is passed to other cpu to parse microcode > locally. Now, parsing microcode is done on one CPU. Others just > find a suitable microcode stored in microcode_cache. > > Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx> > --- > xen/arch/x86/microcode.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c > index cca7b2c..0b435f4 100644 > --- a/xen/arch/x86/microcode.c > +++ b/xen/arch/x86/microcode.c > @@ -190,9 +190,7 @@ DEFINE_PER_CPU(struct ucode_cpu_info, ucode_cpu_info); > > struct microcode_info { > unsigned int cpu; > - uint32_t buffer_size; > int error; > - char buffer[1]; > }; > > static void __microcode_fini_cpu(unsigned int cpu) > @@ -270,6 +268,7 @@ int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void) > buf, unsigned long len) > struct microcode_info *info; > unsigned int cpu = smp_processor_id(); > struct ucode_cpu_info *uci = &per_cpu(ucode_cpu_info, cpu); > + void * buffer; > > if ( len != (uint32_t)len ) > return -E2BIG; > @@ -277,11 +276,12 @@ int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void) > buf, unsigned long len) > if ( microcode_ops == NULL ) > return -EINVAL; > > - info = xmalloc_bytes(sizeof(*info) + len); > - if ( info == NULL ) > + info = xmalloc(struct microcode_info); > + buffer = xmalloc_bytes(len); > + if ( !info || !buffer ) You are again likely to leak memory with this construct. Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |