• Sudeep Holla's avatar
    x86/cpu/cacheinfo: Fix cache_get_priv_group() for Intel processors · 37dea8c5
    Sudeep Holla authored
    The private pointer provided by the cacheinfo code is used to implement
    the AMD L3 cache-specific attributes using a pointer to the northbridge
    descriptor. It is needed for performing L3-specific operations and for
    that we need a couple of PCI devices and other service information, all
    contained in the northbridge descriptor.
    
    This results in failure of cacheinfo setup as shown below as
    cache_get_priv_group() returns the uninitialised private attributes which
    are not valid for Intel processors.
    
      ------------[ cut here ]------------
      WARNING: CPU: 3 PID: 1 at fs/sysfs/group.c:102
      internal_create_group+0x151/0x280()
      sysfs: (bin_)attrs not set by subsystem for group: index3/
      Modules linked in:
      CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.0.0-rc3+ #1
      Hardware name: Dell Inc. Precision T3600/0PTTT9, BIOS A13 05/11/2014
      ...
      Call Trace:
        dump_stack
        warn_slowpath_common
        warn_slowpath_fmt
        internal_create_group
        sysfs_create_groups
        device_add
        cpu_device_create
        ? __kmalloc
        cache_add_dev
        cacheinfo_sysfs_init
        ? container_dev_init
        do_one_initcall
        kernel_init_freeable
        ? rest_init
        kernel_init
        ret_from_fork
        ? rest_init
    
    This patch fixes the issue by checking if the L3 cache indices are
    populated correctly (AMD-specific) before initializing the private
    attributes.
    Reported-by: default avatarBorislav Petkov <bp@suse.de>
    Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    37dea8c5
intel_cacheinfo.c 25.8 KB