• Jean Delvare's avatar
    hwmon: (k8temp) Bypass core swapping on single-core processors · cd4de21f
    Jean Delvare authored
    Commit a2e066bb introduced core
    swapping for CPU models 64 and later. I recently had a report about
    a Sempron 3200+, model 95, for which this patch broke temperature
    reading. It happens that this is a single-core processor, so the
    effect of the swapping was to read a temperature value for a core
    that didn't exist, leading to an incorrect value (-49 degrees C.)
    
    Disabling core swapping on singe-core processors should fix this.
    
    Additional comment from Andreas:
    
    The BKDG says
    
      Thermal Sensor Core Select (ThermSenseCoreSel)-Bit 2. This bit
      selects the CPU whose temperature is reported in the CurTemp
      field. This bit only applies to dual core processors. For
      single core processors CPU0 Thermal Sensor is always selected.
    
    k8temp_probe() correctly detected that SEL_CORE can't be used on single
    core CPU. Thus k8temp did never update the temperature values stored
    in temp[1][x] and -49 degrees was reported. For single core CPUs we
    must use the values read into temp[0][x].
    Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
    Tested-by: default avatarRick Moritz <rhavin@gmx.net>
    Acked-by: default avatarAndreas Herrmann <andreas.herrmann3@amd.com>
    Cc: stable@kernel.org
    cd4de21f
k8temp.c 8.88 KB