lkml.org 
[lkml]   [2018]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v6 8/8] x86/microcode/AMD: Don't scan past the CPU equivalence table data
    From
    Date
    On 05.06.2018 10:55, Borislav Petkov wrote:
    > On Sun, May 20, 2018 at 12:07:22AM +0200, Maciej S. Szmigiero wrote:
    >> Currently, the code scanning a CPU equivalence table read from a microcode
    >> container file assumes that it actually contains a terminating zero entry,
    >> but if does not then the code will continue the scan past its valid data.
    >>
    >> For the late loader this can be improved by always appending a terminating
    >> zero entry to such table when loading it.
    >> This way we don't need an extra global variable for holding the table size
    >> and we don't have to reject such incomplete tables (for backward
    >> compatibility with the existing code which didn't do so).
    >>
    >> For the early loader, since we can't allocate memory and have to work
    >> in-place, let's pass an explicit size of this table to its scanning
    >> functions so they will know when to stop.
    >
    > I don't like the difference between early and late here. Just pass
    > explicit size to the late loader too.

    That was the solution before this patch series version (6) - there was
    a variable holding the CPU equivalence table size for the late loader,
    but you didn't like it:> Instead of adding yet another global var which needs handling too,
    > and touching so many places, just do all checks and preparations in
    > install_equiv_cpu_table() so that the rest of the code can get what it
    > expects: terminating zero entry and proper size.

    And we would need to hold this explicit size somewhere since the
    table scanning function in the late loader is on a different call
    path than microcode file parsing.

    Maciej

    \
     
     \ /
      Last update: 2018-06-12 23:08    [W:3.442 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site