[PATCH] drm/xe/pcode: Initialize data0 for pcode read routine
Summers, Stuart
stuart.summers at intel.com
Tue Aug 19 14:40:18 UTC 2025
On Sun, 2025-08-17 at 12:36 -0400, Rodrigo Vivi wrote:
> On Wed, Aug 13, 2025 at 07:54:28PM +0000, stuartsummers wrote:
> > There are two registers filled in when reading data from
> > pcode besides the mailbox itself. Currently, we allow a NULL
> > value for the second of these two (data1) and assume the first
> > is defined. However, many of the routines that are calling
> > this function assume that pcode will ignore the value being
> > passed in and so leave that first value (data0) defined but
> > uninitialized. To be safe, make sure this value is always
> > initialized to something (0 generally) in the event pcode
> > behavior changes and starts using this value.
> >
> > Signed-off-by: stuartsummers <stuart.summers at intel.com>
>
> I was about to merge this, but I noticed your name seems odd.
>
> (in both author and signed-off)
>
> I mean, I could go ahead with this, but it is not like the
> ones you used in the past:
> Stuart Summers <stuart.summers at intel.com
>
> so I'm wondering it is a missconfiguration with your git
> and you might want to change... so, just let me know if I should
> just move with this as is..
Hi Rodrigo, thanks for pointing this out. It looks like my local git
was in fact misconfigured somehow :(. Let me clean this up and repost
before we merge this. Looks like this is also impacting the other
series I have out. I'll repost there as well.
Thanks,
Stuart
>
> > Reviewed-by: Jonathan Cavitt <jonathan.cavitt at intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_device_sysfs.c | 8 ++++----
> > drivers/gpu/drm/xe/xe_hwmon.c | 8 ++++----
> > drivers/gpu/drm/xe/xe_vram_freq.c | 4 ++--
> > 3 files changed, 10 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_device_sysfs.c
> > b/drivers/gpu/drm/xe/xe_device_sysfs.c
> > index bd9015761aa0..6ee422594b56 100644
> > --- a/drivers/gpu/drm/xe/xe_device_sysfs.c
> > +++ b/drivers/gpu/drm/xe/xe_device_sysfs.c
> > @@ -76,7 +76,7 @@ lb_fan_control_version_show(struct device *dev,
> > struct device_attribute *attr, c
> > {
> > struct xe_device *xe = pdev_to_xe_device(to_pci_dev(dev));
> > struct xe_tile *root = xe_device_get_root_tile(xe);
> > - u32 cap, ver_low = FAN_TABLE, ver_high = FAN_TABLE;
> > + u32 cap = 0, ver_low = FAN_TABLE, ver_high = FAN_TABLE;
> > u16 major = 0, minor = 0, hotfix = 0, build = 0;
> > int ret;
> >
> > @@ -115,7 +115,7 @@ lb_voltage_regulator_version_show(struct device
> > *dev, struct device_attribute *a
> > {
> > struct xe_device *xe = pdev_to_xe_device(to_pci_dev(dev));
> > struct xe_tile *root = xe_device_get_root_tile(xe);
> > - u32 cap, ver_low = VR_CONFIG, ver_high = VR_CONFIG;
> > + u32 cap = 0, ver_low = VR_CONFIG, ver_high = VR_CONFIG;
> > u16 major = 0, minor = 0, hotfix = 0, build = 0;
> > int ret;
> >
> > @@ -153,7 +153,7 @@ static int late_bind_create_files(struct device
> > *dev)
> > {
> > struct xe_device *xe = pdev_to_xe_device(to_pci_dev(dev));
> > struct xe_tile *root = xe_device_get_root_tile(xe);
> > - u32 cap;
> > + u32 cap = 0;
> > int ret;
> >
> > xe_pm_runtime_get(xe);
> > @@ -186,7 +186,7 @@ static void late_bind_remove_files(struct
> > device *dev)
> > {
> > struct xe_device *xe = pdev_to_xe_device(to_pci_dev(dev));
> > struct xe_tile *root = xe_device_get_root_tile(xe);
> > - u32 cap;
> > + u32 cap = 0;
> > int ret;
> >
> > xe_pm_runtime_get(xe);
> > diff --git a/drivers/gpu/drm/xe/xe_hwmon.c
> > b/drivers/gpu/drm/xe/xe_hwmon.c
> > index c17ed1ae8649..32a76ae6e9dc 100644
> > --- a/drivers/gpu/drm/xe/xe_hwmon.c
> > +++ b/drivers/gpu/drm/xe/xe_hwmon.c
> > @@ -179,7 +179,7 @@ static int xe_hwmon_pcode_rmw_power_limit(const
> > struct xe_hwmon *hwmon, u32 attr
> > u32 clr, u32 set)
> > {
> > struct xe_tile *root_tile = xe_device_get_root_tile(hwmon-
> > >xe);
> > - u32 val0, val1;
> > + u32 val0 = 0, val1 = 0;
> > int ret = 0;
> >
> > ret = xe_pcode_read(root_tile,
> > PCODE_MBOX(PCODE_POWER_SETUP,
> > @@ -734,7 +734,7 @@ static int xe_hwmon_power_curr_crit_read(struct
> > xe_hwmon *hwmon, int channel,
> > long *value, u32
> > scale_factor)
> > {
> > int ret;
> > - u32 uval;
> > + u32 uval = 0;
> >
> > mutex_lock(&hwmon->hwmon_lock);
> >
> > @@ -918,7 +918,7 @@ xe_hwmon_power_write(struct xe_hwmon *hwmon,
> > u32 attr, int channel, long val)
> > static umode_t
> > xe_hwmon_curr_is_visible(const struct xe_hwmon *hwmon, u32 attr,
> > int channel)
> > {
> > - u32 uval;
> > + u32 uval = 0;
> >
> > /* hwmon sysfs attribute of current available only for
> > package */
> > if (channel != CHANNEL_PKG)
> > @@ -1020,7 +1020,7 @@ xe_hwmon_energy_read(struct xe_hwmon *hwmon,
> > u32 attr, int channel, long *val)
> > static umode_t
> > xe_hwmon_fan_is_visible(struct xe_hwmon *hwmon, u32 attr, int
> > channel)
> > {
> > - u32 uval;
> > + u32 uval = 0;
> >
> > if (!hwmon->xe->info.has_fan_control)
> > return 0;
> > diff --git a/drivers/gpu/drm/xe/xe_vram_freq.c
> > b/drivers/gpu/drm/xe/xe_vram_freq.c
> > index b26e26d73dae..17bc84da4cdc 100644
> > --- a/drivers/gpu/drm/xe/xe_vram_freq.c
> > +++ b/drivers/gpu/drm/xe/xe_vram_freq.c
> > @@ -34,7 +34,7 @@ static ssize_t max_freq_show(struct device *dev,
> > struct device_attribute *attr,
> > char *buf)
> > {
> > struct xe_tile *tile = dev_to_tile(dev);
> > - u32 val, mbox;
> > + u32 val = 0, mbox;
> > int err;
> >
> > mbox = REG_FIELD_PREP(PCODE_MB_COMMAND,
> > PCODE_FREQUENCY_CONFIG)
> > @@ -56,7 +56,7 @@ static ssize_t min_freq_show(struct device *dev,
> > struct device_attribute *attr,
> > char *buf)
> > {
> > struct xe_tile *tile = dev_to_tile(dev);
> > - u32 val, mbox;
> > + u32 val = 0, mbox;
> > int err;
> >
> > mbox = REG_FIELD_PREP(PCODE_MB_COMMAND,
> > PCODE_FREQUENCY_CONFIG)
> > --
> > 2.34.1
> >
More information about the Intel-xe
mailing list