[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/7] x86/ucode/intel: Remove gratuitous memory allocations from cpu_request_microcode()
On 23.03.2020 11:17, Andrew Cooper wrote: > static struct microcode_patch *cpu_request_microcode(const void *buf, > size_t size) > { > - long offset = 0; > int error = 0; > - struct microcode_intel *mc, *saved = NULL; > + const struct microcode_intel *saved = NULL; > struct microcode_patch *patch = NULL; > > - while ( (offset = get_next_ucode_from_buffer(&mc, buf, size, offset)) > > 0 ) > + while ( size ) > { > - error = microcode_sanity_check(mc); > - if ( error ) > + const struct microcode_intel *mc; > + unsigned int blob_size; > + > + if ( size < MC_HEADER_SIZE || /* Insufficient space for > header? */ > + (mc = buf)->hdr.hdrver != 1 || /* Unrecognised header version? > */ > + mc->hdr.ldrver != 1 || /* Unrecognised loader version? > */ These two duplicate what microcode_sanity_check() does, plus the function issues a log message when either check fails. Since I think ... > + size < (blob_size = /* Insufficient space for patch? > */ > + get_totalsize(&mc->hdr)) ) ... this wants to come after the two version checks, how about lifting the printk() here? The other user of microcode_sanity_check() is an ASSERT(), where it's rather less relevant to have such a printk(). Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |