]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
drm/xe/hwmon: Prevent unintended VRAM channel creation
authorKarthik Poosa <karthik.poosa@intel.com>
Fri, 6 Feb 2026 08:16:55 +0000 (13:46 +0530)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 18 Feb 2026 00:39:50 +0000 (19:39 -0500)
Remove the unnecessary VRAM channel entry introduced in xe_hwmon_channel.
Without this, adding any new hwmon channel causes extra VRAM channel
to appear. This remained unnoticed earlier because VRAM was the
final xe hwmon channel.

v2: Use MAX_VRAM_CHANNELS with in_range() instead of
    CHANNEL_VRAM_N_MAX. (Raag)

Fixes: 49a498338417 ("drm/xe/hwmon: Expose individual VRAM channel temperature")
Signed-off-by: Karthik Poosa <karthik.poosa@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
Link: https://patch.msgid.link/20260206081655.2115439-1-karthik.poosa@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
(cherry picked from commit 48eb073c7d95883eca2789447f94e1e8cafbabe5)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_hwmon.c

index baf277955b33174f5b189192fb8bfce4bd35da16..0fd4d4f1014afee8cb7e35e6fae4816ce6a6ec61 100644 (file)
@@ -48,7 +48,7 @@ enum xe_hwmon_channel {
        CHANNEL_MCTRL,
        CHANNEL_PCIE,
        CHANNEL_VRAM_N,
-       CHANNEL_VRAM_N_MAX = CHANNEL_VRAM_N + MAX_VRAM_CHANNELS,
+       CHANNEL_VRAM_N_MAX = CHANNEL_VRAM_N + MAX_VRAM_CHANNELS - 1,
        CHANNEL_MAX,
 };
 
@@ -264,7 +264,7 @@ static struct xe_reg xe_hwmon_get_reg(struct xe_hwmon *hwmon, enum xe_hwmon_reg
                                return BMG_PACKAGE_TEMPERATURE;
                        else if (channel == CHANNEL_VRAM)
                                return BMG_VRAM_TEMPERATURE;
-                       else if (in_range(channel, CHANNEL_VRAM_N, CHANNEL_VRAM_N_MAX))
+                       else if (in_range(channel, CHANNEL_VRAM_N, MAX_VRAM_CHANNELS))
                                return BMG_VRAM_TEMPERATURE_N(channel - CHANNEL_VRAM_N);
                } else if (xe->info.platform == XE_DG2) {
                        if (channel == CHANNEL_PKG)
@@ -1427,7 +1427,7 @@ static int xe_hwmon_read_label(struct device *dev,
                        *str = "mctrl";
                else if (channel == CHANNEL_PCIE)
                        *str = "pcie";
-               else if (in_range(channel, CHANNEL_VRAM_N, CHANNEL_VRAM_N_MAX))
+               else if (in_range(channel, CHANNEL_VRAM_N, MAX_VRAM_CHANNELS))
                        *str = hwmon->temp.vram_label[channel - CHANNEL_VRAM_N];
                return 0;
        case hwmon_power: