Skip to content
  • Borislav Petkov's avatar
    x86, msr: Add support for non-contiguous cpumasks · 50542251
    Borislav Petkov authored
    The current rd/wrmsr_on_cpus helpers assume that the supplied
    cpumasks are contiguous. However, there are machines out there
    like some K8 multinode Opterons which have a non-contiguous core
    enumeration on each node (e.g. cores 0,2 on node 0 instead of 0,1), see
    http://www.gossamer-threads.com/lists/linux/kernel/1160268
    
    .
    
    This patch fixes out-of-bounds writes (see URL above) by adding per-CPU
    msr structs which are used on the respective cores.
    
    Additionally, two helpers, msrs_{alloc,free}, are provided for use by
    the callers of the MSR accessors.
    
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
    Cc: Aristeu Rozanski <aris@redhat.com>
    Cc: Randy Dunlap <randy.dunlap@oracle.com>
    Cc: Doug Thompson <dougthompson@xmission.com>
    Signed-off-by: default avatarBorislav Petkov <borislav.petkov@amd.com>
    LKML-Reference: <20091211171440.GD31998@aftab>
    Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
    50542251